通过Fortran中的do循环动态分配内存

时间:2019-02-12 18:30:27

标签: fortran gfortran

我的IDE是MinGW编译器6.3.0的Code :: Blocks 17.12

我是使用Fortran进行编码的新手,所以我需要有关学习过程中特定事项和技巧的帮助,所以这是我的简单程序:

PROGRAM DO_LOOP_ALLOCATION

IMPLICIT NONE

INTEGER              :: I, ALLOC_ERR
INTEGER,   PARAMETER :: N_NN_DM = 5
INTEGER,   PARAMETER :: AN_NN_DM( N_NN_DM ) = [ 3, 3, 3, 3, 3 ]
INTEGER, ALLOCATABLE :: ARRAY_DM( :, : )

DO I = 1, N_NN_DM

   IF ( .NOT. ALLOCATED( ARRAY_DM( I, AN_NN_DM( I ) ) ) ) THEN

         ALLOCATE( ARRAY_DM( I,  AN_NN_DM( I ) ), STAT = ALLOC_ERR )


   END IF

   IF ( ALLOC_ERR .NE. 0 ) STOP ( "ERROR - MEMEORY ALLOCATION ISSUE !!!" )

END DO

END PROGRAM DO_LOOP_ALLOCATION

在编译过程中,我收到以下错误消息:

Error: 'array' argument of 'allocated' intrinsic  must be ALLOCATABLE

此简单代码有什么问题?

0 个答案:

没有答案