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 !----------------------------------------------- 18 ! Modules 19 !----------------------------------------------- 20 USE compar 21 USE funits 22 !----------------------------------------------- 23 24 ! temporary storage 25 DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: & 26 ARRAYm1 27 28 LOGICAL :: tmp_array1_locked = .false. 29 30 CONTAINS 31 32 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv! 33 ! ! 34 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^! 35 SUBROUTINE lock_tmp_array1 36 IF(tmp_array1_locked) THEN 37 IF(DMP_LOG) WRITE(*,*) & 38 'Error: Multiple use of tmp_array1 (tmp_array1_mod.f)' 39 CALL MFIX_EXIT(myPE) 40 ELSE 41 tmp_array1_locked = .true. 42 ENDIF 43 END SUBROUTINE lock_tmp_array1 44 45 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv! 46 ! ! 47 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^! 48 SUBROUTINE unlock_tmp_array1 49 tmp_array1_locked = .false. 50 END SUBROUTINE unlock_tmp_array1 51 52 END MODULE tmp_array1 53