String Fortran中比较字符串的问题?
我试图将字符串与读入字符数组的一组值进行比较。但是这个比较并没有按照预期的方式工作。我已经附上了下面的代码用于检查String Fortran中比较字符串的问题?,string,fortran,String,Fortran,我试图将字符串与读入字符数组的一组值进行比较。但是这个比较并没有按照预期的方式工作。我已经附上了下面的代码用于检查 PROGRAM MWE CHARACTER(LEN=80) :: FILENAME,HEADER,REMARKS CHARACTER*6,ALLOCATABLE :: RESNAME(:) INTEGER :: NHEADER,NATOMS,I ALLOCATE(RESNAME(10)) FILENAME =
PROGRAM MWE
CHARACTER(LEN=80) :: FILENAME,HEADER,REMARKS
CHARACTER*6,ALLOCATABLE :: RESNAME(:)
INTEGER :: NHEADER,NATOMS,I
ALLOCATE(RESNAME(10))
FILENAME = "./thy_thy_wat.psf"
OPEN(10,FILE=FILENAME,STATUS='OLD',FORM='FORMATTED')
READ(10,'(A4)') HEADER
READ(10,'(B10)')
READ(10,'(T6,I4)') NHEADER
DO I=1,NHEADER
READ(10,'(A50)') REMARKS
END DO
READ(10,'(B10)')
READ(10,'(T5,I4)') NATOMS
DO I=1,10
READ(10,'(T19,A5)') RESNAME(I)
END DO
WRITE(*,*) RESNAME
IF (RESNAME(1) == "THY") THEN
WRITE(*,*) "YES"
END IF
END PROGRAM MWE
我可以直观地检查这些值是否匹配,但代码没有给出。任何帮助都将不胜感激 是指向使用上述代码读入的文件的链接
编辑:我可以通过玩标签来解决这个问题。谢谢大家的帮助。
RESNAME.EQ。“abc”
Hello@JoopEggen,谢谢你的回答,但我想我应该进一步澄清一下这个用例。我已经将2500个长度为6的字符串读入数组RESNAME(我可以通过打印内容来验证)。我的问题是如何将这些元素与给定字符串进行比较。谢谢对不起,没有MWE。我将更新代码以显示这一点。@HighPerformanceMark@evets我已经用MWE更新了问题,包括您使用trim
的建议。查看trim
的引用时,我发现它们无法分配给变量,因为一旦分配,它们就会返回到原始状态。@HighPerformanceMark我已更新MWE,重新生成失败代码的基本部分。我试着使用trim
,但没用。RESNAME.EQ。“abc”
Hello@JoopEggen,谢谢你的回答,但我想我应该进一步澄清一下这个用例。我已经将2500个长度为6的字符串读入数组RESNAME(我可以通过打印内容来验证)。我的问题是如何将这些元素与给定字符串进行比较。谢谢对不起,没有MWE。我将更新代码以显示这一点。@HighPerformanceMark@evets我已经用MWE更新了问题,包括您使用trim
的建议。查看trim
的引用时,我发现它们无法分配给变量,因为一旦分配,它们就会返回到原始状态。@HighPerformanceMark我已更新MWE,重新生成失败代码的基本部分。我试着使用trim
,但没用。