File: RELATIVE:/../../../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           IMPLICIT NONE
19     
20     ! temporary storage of dimension_3
21           DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: &
22              ARRAY1, ARRAY2, ARRAY3, ARRAY4
23     
24     ! temporary storage array of dimension_3, dimension_lm
25           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: &
26              ArrayLM
27     
28     ! temporary storage for 4th order scheme of dimension_4
29           DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: TMP4
30     
31     ! temporary storage of dimension of dimension_3
32           INTEGER, DIMENSION(:), ALLOCATABLE :: ARRAY1I
33     
34           character(LEN=3), dimension(:), pointer :: ARRAY1C
35     
36           LOGICAL :: tmp_array_locked = .false.
37           LOGICAL :: tmp_array2_locked = .FALSE.
38           LOGICAL :: tmp4_array_locked = .false.
39     
40           CONTAINS
41     
42     !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv!
43     !                                                                      !
44     !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^!
45           SUBROUTINE lock_tmp_array
46           USE compar, only: myPE
47           USE funits, only: dmp_log
48           IMPLICIT NONE
49           IF(tmp_array_locked) THEN
50              IF (DMP_LOG) WRITE(*,*) &
51                 'Error:  Multiple use of tmp_array (tmp_array_mod.f)'
52              CALL MFIX_EXIT(myPE)
53           ELSE
54              tmp_array_locked = .true.
55           ENDIF
56           END SUBROUTINE lock_tmp_array
57     
58     !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv!
59     !                                                                      !
60     !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^!
61           SUBROUTINE unlock_tmp_array
62           IMPLICIT NONE
63           tmp_array_locked = .false.
64           END SUBROUTINE unlock_tmp_array
65     
66     !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv!
67     !                                                                      !
68     !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^!
69           SUBROUTINE lock_tmp_array2
70           USE compar, only: myPE
71           USE funits, only: dmp_log
72           IMPLICIT NONE
73           IF(tmp_array2_locked) THEN
74              IF(DMP_LOG) WRITE(*,*) &
75                 'Error:  Multiple use of tmp_array2 (tmp_array_mod.f)'
76              CALL MFIX_EXIT(myPE)
77           ELSE
78              tmp_array2_locked = .true.
79           ENDIF
80           END SUBROUTINE lock_tmp_array2
81     
82     !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv!
83     !                                                                      !
84     !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^!
85           SUBROUTINE unlock_tmp_array2
86           IMPLICIT NONE
87           tmp_array2_locked = .false.
88           END SUBROUTINE unlock_tmp_array2
89     
90     !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv!
91     !                                                                      !
92     !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^!
93           SUBROUTINE lock_tmp4_array
94           USE compar, only: myPE
95           USE funits, only: dmp_log
96           IMPLICIT NONE
97           IF(tmp4_array_locked) THEN
98              IF(DMP_LOG) WRITE(*,*) &
99                 'Error:  Multiple use of tmp_array4 (tmp_array_mod.f)'
100              CALL MFIX_EXIT(myPE)
101           ELSE
102              tmp4_array_locked = .true.
103           ENDIF
104           END SUBROUTINE lock_tmp4_array
105     
106     !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv!
107     !                                                                      !
108     !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^!
109           SUBROUTINE unlock_tmp4_array
110           IMPLICIT NONE
111           tmp4_array_locked = .false.
112           END SUBROUTINE unlock_tmp4_array
113     
114     
115           END MODULE tmp_array
116     
117     
118     
119