用fortran打印两个一维数组

用fortran打印两个一维数组,fortran,Fortran,我有两个一维数组。 我想打印以下内容 阵列1:-姓名年龄国家 a 12中国b 13智利c 14印度 输出 name = a age =12 country = china name = b age =13 country = chile name = c age =14 country = india 如果设计为使用结构数组而不是数组结构,则此问题可能更容易解决。数组的结构方法看起来有点像 program nml1 implicit none type info(length)

我有两个一维数组。
我想打印以下内容

阵列1:-姓名年龄国家
a 12中国b 13智利c 14印度

输出

name = a age =12 country = china name = b age =13 country = chile name = c age =14 country = india

如果设计为使用结构数组而不是数组结构,则此问题可能更容易解决。数组的结构方法看起来有点像

program nml1
   implicit none
   type info(length)
      integer, len :: length
      character(20) name(length)
      integer age(length)
      character(20) country(length)
   end type info
   type(info(:)), allocatable :: class
   namelist /my_data/ class
   class = info(3)([character(20)::'a','b','c'],[12,13,14], &
      [character(20)::'china','chile','india'])
   write(*,nml=my_data)
end program nml1
或许

program nml2
   implicit none
   type info(length)
      integer, len :: length
      character(20) name(length)
      integer age(length)
      character(20) country(length)
   end type info
   type(info(:)), allocatable :: class
   namelist /my_data/ class
   allocate(info(3)::class)
   class%name = [character(20)::'a','b','c']
   class%age = [12,13,14]
   class%country = [character(20)::'china','chile','india']
   write(*,nml=my_data)
end program nml2
但我似乎无法用gfortran或ifort编译这两个函数。是我的错还是编译器的错误

但这不是一个大问题,因为我无论如何都会推荐结构数组方法。在这种情况下,我们将每个学生的所有相关数据打包到一个结构中,并创建一个这样的结构数组,而不是将3个标量数据数组打包到一个结构中(或者仅免费)。下面是它的样子:

program nml
   implicit none
   type info
      character(20) name
      integer age
      character(20) country
   end type info
   type(info), allocatable :: class(:)
   namelist /my_data/ class
   class = [info('a',12,'china'),info('b',13,'chile'),info('c',14,'india')]
   write(*,nml=my_data)
end program nml
现在,这种方法的好处在于,它不仅可以编译,而且数据会以正确的顺序自动返回,并通过“名称列表”I/O使用标签,这样,如果这种格式足够好,我们就不必编写任何花哨的输出代码。gfortran的输出为:

&MY_DATA
 CLASS(1)%NAME="a                   ",
 CLASS(1)%AGE=12         ,
 CLASS(1)%COUNTRY="china               ",
 CLASS(2)%NAME="b                   ",
 CLASS(2)%AGE=13         ,
 CLASS(2)%COUNTRY="chile               ",
 CLASS(3)%NAME="c                   ",
 CLASS(3)%AGE=14         ,
 CLASS(3)%COUNTRY="india               ",
 /

欢迎来到堆栈溢出。请拿着这本书学习。然后,给我们一个清晰的描述,你想做什么,你错了什么,你期望得到什么,以及一个简单的答案。