继续将字符串插入Fortran 77中的下一行

时间:2017-11-19 04:38:18

标签: fortran fortran77 intel-fortran

我在FORTRAN 77中有这个代码(我必须使用它,因为它用作我的Abaqus程序的子程序),我要求子程序打印我的应力和应变结果,每个元素和每个时间增量后,在某个特定的地方。现在,我的目录路径很长(由于几个原因)。因此,我必须在两行中写入目录的路径,因为FORTRAN 77只能识别第6到77列之间的任何内容(我相信!)。

现在,我尝试了很多东西!

我放了&下一行第6列的符号,下一行第6列的数字(如1),甚至是同一地方的星号(*)!

然而,我一直收到错误#5082!

以下是ifort编译器中未接受的代码部分:

     subroutine uvarm(uvar,direct,t,time,dtime,cmname,orname,
    1 nuvarm,noel,npt,layer,kspt,kstep,kinc,ndi,nshr,coord,
    2 jmac,jmatyp,matlayo,laccfla)

     include 'aba_param.inc'

     character*80 cmname, orname
     character*3 flgray(15)
     character*80 file1, file2

     dimension uvar(nuvarm),direct(3,3),t(3,3),time(2)
     dimension array(15),jarray(15),jmac(*),jmatyp(*),coord(*)

C      integer i

     call getvrm('E',array,jarray,flgray,jrcd,jmac,jmatyp,
   1 matlayo,laccfla)

     uvar(1) = array(1)
     uvar(2) = array(2)
     uvar(3) = array(4)

     call getvrm('S',array,jarray,flgray,jrcd,jmac,jmatyp,
   1 matlayo,laccfla)

     uvar(4) = array(1)
     uvar(5) = array(2)
     uvar(6) = array(4)

    file1 = '/gpfs/work/m/mfg5310/fracture/ResearchWork'
  1 '/fracture_subroutines/frac_in_mid_Mode2_case1_strains.txt'
    file2 = '/gpfs/work/m/mfg5310/fracture/ResearchWork'
  2 '/fracture_subroutines/frac_in_mid_Mode2_case1_stress.txt'

    open(unit=101,file=file1)
    open(unit=103,file=file2)

    write(101,350) uvar(1),uvar(2),uvar(3),coord(1),coord(2)

    write(103,350) uvar(4),uvar(5),uvar(6),coord(1),coord(2)

350 format(e12.5,6x,e12.5,6x,e12.5,6x,e12.5,6x,e12.5)


C      close(unit=101)
C      close(unit=103)

    return
    end    

我该怎么办?

我知道我总是可以缩短路径,以便整个目录适合一行。但由于两个原因,我想知道如何将字符串继续到Fortran 77中的下一行:

原因1:我真的很想知道这一点。 原因2:打印的文件更加井井有条!我将能够将文件命名为我想要的名称。

1 个答案:

答案 0 :(得分:2)

只需使用Fortran字符串连接运算符//就像这样

      file1 = '/gpfs/work/m/mfg5310/fracture/ResearchWork'//
     & '/fracture_subroutines/frac_in_mid_Mode2_case1_strains.txt'