将数据写入循环中的列

时间:2016-03-08 18:54:36

标签: fortran

我想为一个代码创建一个输入文件。看起来像这样

SITE   FREQ   DATA TYPE      DATUM              ERROR
     1     1     1    2.01562    0.217000E-01
     1     1     2    44.8114     2.86600    
     1     1     5    2.02486    0.217000E-01
     1     1     6    44.0423     2.86600    
     1     2     1    2.03421    0.217000E-01
     1     2     2    53.5181     2.86600    
     1     2     5    2.01103    0.217000E-01
     1     2     6    43.6452     2.86600    
     1     3     1    1.88711    0.217000E-01
     1     3     2    51.5582     2.86600    
     1     3     5    2.00536    0.217000E-01
     1     3     6    43.4296     2.86600    
     1     4     1    1.85939    0.217000E-01
     1     4     2    49.8675     2.86600    
     1     4     5    2.04246    0.217000E-01
     1     4     6    41.5948     2.86600    
     1     5     1    1.86721    0.217000E-01
     1     5     2    42.6603     2.86600    
     1     5     5    2.02059    0.217000E-01
     1     5     6    44.6032     2.86600    
     1     6     1    1.90233    0.217000E-01
     1     6     2    34.9367     2.86600    
     1     6     5    2.02904    0.217000E-01
     1     6     6    45.5312     2.86600    
     2     1     1    2.02998    0.217000E-01
     2     1     2    46.3565     2.86600    
     2     1     5    2.07089    0.217000E-01
     2     1     6    47.8481     2.86600    
     2     2     1    1.94406    0.217000E-01
     2     2     2    52.9107     2.86600    
     2     2     5    1.94073    0.217000E-01
     2     2     6    47.7353     2.86600    
     2     3     1    1.77228    0.217000E-01
     2     3     2    53.3664     2.86600    
     2     3     5    1.93717    0.217000E-01

我想过这样的事情

do i=1,74
  do j=1,4
    write(50,)num1,s1(i),dt(j),v1(i),er1
  end do
end do

但是数据类型取值1,2,5,6而不是1到4.如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我不确定我是否完全理解这个问题,但除非我的标记很广泛,否则我会按照以下方式构建解决方案:

integer, dimension(4) :: aux = [1,2,5,6]
...
do i=1,74
  do j=1,4
    write(50,)num1,s1(i),dt(aux(j)),v1(i),er1
  end do
end do