2016-03-04 151 views
0

是否可以在Fortran中创建动态变量名称? (ft1,ft2,ft3正在从文件输入中读取,全部相同)(现在的deg = 10)。创建动态名称

我在这里给片断,以及:

call RKUTTA(h,TX,X,Y,ft1,ft2,ft3,kglobal,cglobal,invmass,Xout1,Yout1) 

write(20,*) " TIME STEP VALUES " 
write(20,*) "  Xout1 Yout1 " 

do num = 1,deg 
write(20,'(30f20.5)') Xout(deg) , Yout(deg) 
end do 

我有2个问题:

  1. 我需要创建FT1到FTN(任意数量)是可以循环或动态创建没有可变定义?
  2. 在上述子程序ft1中,ft2,ft3被用作输入来获得输出Xout和Yout。必须使用不同的输入组再次调用子程序才能获得不同的输出。

    call RKUTTA(h,TX,Xout1,Yout1,ft4,ft5,ft6,kglobal,cglobal,invmass,Xout2,Yout2) 
    
    write(20,*) " TIME STEP VALUES " 
    write(20,*) "  Xout2 Yout2 " 
    
    do num = 1,deg 
    write(20,'(30f20.5)') Xout2(deg) , Yout2(deg) 
    

同样,FT4,FT5,FT6 ...将扩大到FTN,FTN + 1,FTN + 2中得到Xoutn和Youtn。

希望你明白我的问题。如果不是,请耐心等待我的任何需要改变的地方。

谢谢

回答

1

不,这是不可能的。

使用数组来保存ft1 ... ftn和类似变量的值。

+0

好的,谢谢你IanH。 –