File: RELATIVE:/../../../mfix.git/model/ambm_mod.f

1     !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv!
2     !                                                                      !
3     !  Module: ambm                                                        !
4     !  Purpose:                                                            !
5     !     IMPORTANT:  For using these arrays in a subroutine               !
6     !     -lock the module in the beginning of the subroutine              !
7     !      call lock_ambm                                                  !
8     !     -and unlock the module at the end of the subroutine              !
9     !      call unlock_ambm                                                !
10     ! Contains the following subroutines:                                  !
11     !      lock_ambm, unlock_ambm                                          !
12     !                                                                      !
13     !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^!
14     
15           MODULE ambm
16     
17     !-----------------------------------------------
18     ! Modules
19     !-----------------------------------------------
20           USE compar
21           USE funits
22     !-----------------------------------------------
23     
24     ! linear equation matrix and vector
25           DOUBLE PRECISION, DIMENSION(:, :, :), ALLOCATABLE :: A_m
26           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: B_m
27     
28           LOGICAL :: ambm_locked = .false.
29     
30           CONTAINS
31     
32     !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv!
33     !                                                                      !
34     !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^!
35           SUBROUTINE lock_ambm
36           IF(ambm_locked) THEN
37              IF (DMP_LOG) WRITE(*,*) &
38                 'Error:  Multiple use of ambm (ambm_mod.f)'
39              CALL MFIX_EXIT(myPE)
40           ELSE
41              ambm_locked = .true.
42           ENDIF
43           END SUBROUTINE lock_ambm
44     
45     
46     !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv!
47     !                                                                      !
48     !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^!
49           SUBROUTINE unlock_ambm
50           ambm_locked = .false.
51           END SUBROUTINE unlock_ambm
52     
53           END MODULE ambm
54     
55     
56