MODULE DYNA IMPLICIT NONE REAL, DIMENSION(:), ALLOCATABLE, SAVE :: ARBETE END MODULE DYNA PROGRAM TEST_AV_DYNAMIK USE DYNA IMPLICIT NONE PRINT *, 'MAIN' CALL SUB1 CALL SUB2 PRINT *, 'MAIN' END PROGRAM TEST_AV_DYNAMIK SUBROUTINE SUB1 USE DYNA IMPLICIT NONE ! Storleken av vektorn ARBETE bestäms här INTEGER :: I REAL, DIMENSION(5) :: A, B PRINT *, 'SUB1' A = 1.0 B = (/ (3.0, I = 1, 5) /) ALLOCATE ( ARBETE(SIZE(B)) ) ARBETE = A WRITE(*,*) A WRITE(*,*) B WRITE(*,*) ARBETE END SUBROUTINE SUB1 SUBROUTINE SUB2 USE DYNA IMPLICIT NONE ! Vektorn ARBETE används här REAL :: B REAL, DIMENSION(:), ALLOCATABLE :: A PRINT *, 'SUB2' ALLOCATE ( A(SIZE(ARBETE)) ) A = 2.*ARBETE B = SUM(ARBETE) ARBETE = A WRITE(*,*) A WRITE(*,*) B WRITE(*,*) ARBETE END SUBROUTINE SUB2