1 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv! 2 ! ! 3 ! Module: tmp_array1 ! 4 ! Purpose: ! 5 ! IMPORTANT: For using these arrays in a subroutine ! 6 ! -lock the module in the beginning of the subroutine ! 7 ! call lock_tmp_array1 ! 8 ! -and unlock the module at the end of the subroutine ! 9 ! call unlock_tmp_array1 ! 10 ! Contains the following subroutines: ! 11 ! lock_tmp_array1, unlock_tmp_array1 ! 12 ! ! 13 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^! 14 15 MODULE tmp_array1 16 17 ! temporary storage of dimension_3, dimension_m 18 DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: & 19 ARRAYm1 20 21 LOGICAL :: tmp_array1_locked = .false. 22 23 CONTAINS 24 25 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv! 26 ! ! 27 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^! 28 SUBROUTINE lock_tmp_array1 29 USE compar, only: myPE 30 USE funits, only: dmp_log 31 IMPLICIT NONE 32 IF(tmp_array1_locked) THEN 33 IF(DMP_LOG) WRITE(*,*) & 34 'Error: Multiple use of tmp_array1 (tmp_array1_mod.f)' 35 CALL MFIX_EXIT(myPE) 36 ELSE 37 tmp_array1_locked = .true. 38 ENDIF 39 END SUBROUTINE lock_tmp_array1 40 41 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv! 42 ! ! 43 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^! 44 SUBROUTINE unlock_tmp_array1 45 IMPLICIT NONE 46 tmp_array1_locked = .false. 47 END SUBROUTINE unlock_tmp_array1 48 49 END MODULE tmp_array1 50