File: N:\mfix\model\ambm_mod.f

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