如何计算.txt文件中整数(或任何其他类型)元素的数量?

时间:2019-03-07 16:56:23

标签: fortran gfortran intel-fortran

我是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

有可能吗?如果是该怎么做?有这样做的内在功能吗?

0 个答案:

没有答案