У меня есть следующий модуль с размещаемой переменной, которая определена в модуле, размещена в подпрограмме, а затем также используется во второй подпрограмме, вызываемой первой подпрограммой.В этой ситуации я должен передать переменную второй подпрограмме и объявить INTENT(inout)
?Или, поскольку это глобальная переменная, ее не нужно передавать в качестве аргумента?
MODULE test
IMPLICIT NONE
SAVE
REAL,ALLOCATABLE,DIMENSION(:,:,:) :: total
CONTAINS
!--- 1st subroutine
SUBROUTINE my_subr1(n,m,z)
IMPLICIT NONE
INTEGER,INTENT(in) :: n,m,z
ALLOCATE(total (n,m,z))
total=.9
CALL my_subr2(n)
END SUBROUTINE my_subr1
!-- 2nd subroutine
SUBROUTINE my_subr2(n)
IMPLICIT NONE
INTEGER,INTENT(in) :: n
total(n,:,:)=total(n-1,:,:)
END SUBROUTINE my_subr2
END MODULE test