我是Fortran编程的新手,因此我需要一些有关编码过程中棘手问题的帮助。
在这种情况下,我想学习如何计算.txt文件中的元素数量,然后再将该数字分配给整数变量(在即将到来的测试代码中为N_TMP
)。
这是我的简单-测试代码:
PROGRAM COUNTING_ELEMENTS
IMPLICIT NONE
INTEGER :: I, N_TMP, iERR, ALLOC_ERR, DEALLOC_ERR
INTEGER, ALLOCATABLE :: P_POT(:)
OPEN( UNIT = 15, FILE = 'DATA.TXT', ACTION = 'READ', STATUS = 'OLD', IOSTAT = iERR )
IF ( iERR .NE. 0 ) STOP "ERROR - NO SUCH FILE !!!"
READ( 15, * , IOSTAT = iERR ) N_TMP
IF ( iERR .NE. 0 ) STOP "ERROR - WRONG FMT N_TMP !!!"
IF ( .NOT. ALLOCATED ( P_POT ) ) ALLOCATE( P_POT( N_TMP), STAT = ALLOC_ERR )
IF ( ALLOC_ERR .NE. 0 ) STOP "ERROR - MEMORY ALLOCATION P_POT !!!"
DO I = 1, N_TMP
READ( 15, * , IOSTAT = iERR ) P_POT(I)
IF ( iERR .NE. 0 ) STOP "ERROR - WRONG FMT P_POT !!!"
END DO
CLOSE( UNIT = 15, STATUS = 'KEEP' )
DO I = 1, N_TMP
WRITE( *,* ) P_POT(I)
END DO
IF ( ALLOCATED ( P_POT ) ) DEALLOCATE( P_POT, STAT = DEALLOC_ERR )
IF ( DEALLOC_ERR .NE. 0 ) STOP "ERROR - MEMORY DEALLOCATION P_POT !!!"
END PROGRAM COUNTING_ELEMENTS
DATA
文件的内容为:
3
2
5
7
在这种情况下,我的测试代码确实以正确的方式从文件读取,而没有任何警告或任何错误消息。
如果我打算计算DATA
中的元素数量,该情况下该怎么办?
2
5
7
有可能吗?如果是该怎么做?有这样做的内在功能吗?