如何在fortran程序中创建多个目录

时间:2015-07-01 19:41:54

标签: unix fortran fortran77

我正在尝试设计一个fortran77程序,在unix中创建17个目录,然后执行各种其他操作,但创建目录一直是最大的问题,所以我现在只想关注它。

例如:

do i=1,17
cmd="mkdir" ,i
call system(cmd)

call chdir("i")
end do

从代码部分开始,我希望命令“mkdir”在unix中创建17个独立的目录,命名为1-17,但是当我尝试编译程序时,我得到一个错误,上面写着“无效的基数说明符”,侧重于我列出的第二行代码。

另一个错误也集中在同一行代码上。 “(^)处的连接运算符必须对两个字符类型的子表达式进行操作,但(^)处的子表达式不是字符类型。

有没有办法将整数转换为字符串?

感谢所有帮助。

1 个答案:

答案 0 :(得分:0)

要回答您的一个问题,您可以通过写入将整数转换为字符串。考虑示例代码:

program main
integer :: i
character(len=80) :: cmd

do i=1,4
   write(cmd,'(a,i0.2)') 'mkdir Directory_', i
   write(*,*) 'calling "', trim(cmd), '"'
   call system(cmd)
enddo

end program main

给出输出

mach5% pgfortran main.f90; ./a.out 
 calling "mkdir Directory_01"
 calling "mkdir Directory_02"
 calling "mkdir Directory_03"
 calling "mkdir Directory_04"
mach5% ls
total 860
-rwx------ 1 chaud106 806765 Jul  1 15:37 a.out*
drwx------ 2 chaud106   4096 Jul  1 15:37 Directory_01/
drwx------ 2 chaud106   4096 Jul  1 15:37 Directory_02/
drwx------ 2 chaud106   4096 Jul  1 15:37 Directory_03/
drwx------ 2 chaud106   4096 Jul  1 15:37 Directory_04/
-rw------- 1 chaud106    195 Jul  1 15:37 main.f90