Arrays 我想在Fortran 95中用混合变量生成一个数组

Arrays 我想在Fortran 95中用混合变量生成一个数组,arrays,variables,fortran,Arrays,Variables,Fortran,我是Fortran新手,我想创建一个既有实数又有字符的数组。我尝试创建一个类型,使数组的第一列有实数变量,另一列有字符,但没有成功。我的变量来自一个.txt文件。 在将变量放入数组之前,是否有读取变量的选项,或者自定义类型是唯一的选择?提前谢谢 示例程序是 PROGRAM HOMEWORK IMPLICIT NONE integer::i type custom real :: data character :: name end type typ

我是Fortran新手,我想创建一个既有实数又有字符的数组。我尝试创建一个类型,使数组的第一列有实数变量,另一列有字符,但没有成功。我的变量来自一个.txt文件。 在将变量放入数组之前,是否有读取变量的选项,或者自定义类型是唯一的选择?提前谢谢

示例程序是

PROGRAM HOMEWORK 
  IMPLICIT NONE 
  integer::i 
  type custom
    real :: data 
    character :: name 
  end type 
  type (custom), dimension (4) :: AA 

  OPEN(5,FILE="askhsh_fortran.dat") 
  do i=1,4 
    read(5,*) AA(i) % data , AA(i) % name 
  end do 
  WRITE(*,*)AA 
  close (5) 
END PROGRAM HOMEWORK

如果希望变量同时包含实数和字符,则需要创建自定义类型,例如,一些代码片段:

type MyType
   real :: data
   character (len=20) :: name
end MyType 

type (MyType), dimension (10) :: table

do i=1, 10
   read (5, *) table (i) % data, table (i) % name
end do

我修复了错误57,但当.txt中有字符时,程序会在字段中显示错误52无效字符。。再次提前感谢!!这是一个很好的例子。如果您想了解更多,关键短语是“派生数据类型”,这是我的代码中的一部分,遵循以下说明
程序作业隐式非整数::i类型自定义实数::数据字符::名称结束类型类型(自定义),维度(4)::AA OPEN(5,FILE=“askhsh_fortran.dat”)do i=1,4读取(5,*)AA(i)%data,AA(i)%name end do WRITE(*,*)AA close(5)end程序作业
尽管.txt中有4个real,但当我尝试运行程序时,它显示错误57@硕士,马克S@NikosPapanikolaou我对您的问题进行了编辑,以包括此示例(注释不是扩展代码块的好位置)。您是否也可以编辑该问题,以包含文件askhsh_fortran.dat的示例,目前还不清楚4个real是否都在一行上,每行一个,每行两个等。注意错误57通常与消息“尝试读取文件末尾”一起给出这应该可以解释问题所在。@d_1999从对现有问题的正确答案实施解决方案后出现的新错误,追求新错误并不总是最好的做法