File: /nfs/home/0/users/jenkins/mfix.git/model/tmp_array_mod.f

1     !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv!
2     !                                                                      !
3     !  Module: tmp_array                                                   !
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_array                                             !
8     !     -and unlock the module at the end of the subroutine              !
9     !      call unlock_tmp_array                                           !
10     ! Contains the following subroutines:                                  !
11     !      lock_tmp_array, unlock_tmp_array                                !
12     !      lock_tmp_array2, unlock_tmp_array2                              !
13     !      lock_tmp4_array, unlock_tmp4_array                              !
14     !                                                                      !
15     !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^!
16     
17           MODULE tmp_array
18     
19     !-----------------------------------------------
20     ! Modules
21     !-----------------------------------------------
22           USE compar
23           USE funits
24     !-----------------------------------------------
25     
26     ! temporary storage of dimension (IJK)
27           DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: &
28              ARRAY1, ARRAY2, ARRAY3, ARRAY4
29     
30     ! temporary storage array of dimension (IJK, LM)
31           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: &
32              ArrayLM
33     
34     ! temporary storage for 4th order scheme
35           DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: TMP4
36     
37     ! temporary storage of dimension (ijk)
38           INTEGER, DIMENSION(:), ALLOCATABLE :: ARRAY1I
39     
40           character(LEN=3), dimension(:), pointer :: ARRAY1C
41     
42           LOGICAL :: tmp_array_locked = .false.
43           LOGICAL :: tmp_array2_locked = .FALSE.
44           LOGICAL :: tmp4_array_locked = .false.
45     
46           CONTAINS
47     
48     !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv!
49     !                                                                      !
50     !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^!
51           SUBROUTINE lock_tmp_array
52           IF(tmp_array_locked) THEN
53              IF (DMP_LOG) WRITE(*,*) &
54                 'Error:  Multiple use of tmp_array (tmp_array_mod.f)'
55              CALL MFIX_EXIT(myPE)
56           ELSE
57              tmp_array_locked = .true.
58           ENDIF
59           END SUBROUTINE lock_tmp_array
60     
61     !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv!
62     !                                                                      !
63     !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^!
64           SUBROUTINE unlock_tmp_array
65           tmp_array_locked = .false.
66           END SUBROUTINE unlock_tmp_array
67     
68     !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv!
69     !                                                                      !
70     !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^!
71           SUBROUTINE lock_tmp_array2
72           IF(tmp_array2_locked) THEN
73              IF(DMP_LOG) WRITE(*,*) &
74                 'Error:  Multiple use of tmp_array2 (tmp_array_mod.f)'
75              CALL MFIX_EXIT(myPE)
76           ELSE
77              tmp_array2_locked = .true.
78           ENDIF
79           END SUBROUTINE lock_tmp_array2
80     
81     !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv!
82     !                                                                      !
83     !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^!
84           SUBROUTINE unlock_tmp_array2
85           tmp_array2_locked = .false.
86           END SUBROUTINE unlock_tmp_array2
87     
88     !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv!
89     !                                                                      !
90     !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^!
91           SUBROUTINE lock_tmp4_array
92           IF(tmp4_array_locked) THEN
93              IF(DMP_LOG) WRITE(*,*) &
94                 'Error:  Multiple use of tmp_array4 (tmp_array_mod.f)'
95              CALL MFIX_EXIT(myPE)
96           ELSE
97              tmp4_array_locked = .true.
98           ENDIF
99           END SUBROUTINE lock_tmp4_array
100     
101     !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv!
102     !                                                                      !
103     !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^!
104           SUBROUTINE unlock_tmp4_array
105           tmp4_array_locked = .false.
106           END SUBROUTINE unlock_tmp4_array
107     
108     
109           END MODULE tmp_array
110     
111     
112     
113