SURFEX v8.1
General documentation of Surfex
coml_binding.F90
Go to the documentation of this file.
1 SUBROUTINE coml_set_debug(KONOFF, KRET)
2 USE oml_mod, ONLY : oml_debug
3 USE parkind1, ONLY : jpim
4 IMPLICIT NONE
5 INTEGER(KIND=JPIM), INTENT(IN) :: KONOFF
6 INTEGER(KIND=JPIM), INTENT(OUT) :: KRET
7 kret = 0
8 IF (oml_debug) kret = 1
9 IF (konoff == 0) THEN
10  oml_debug = .false.
11 ELSE
12  oml_debug = .true.
13 ENDIF
14 END SUBROUTINE coml_set_debug
15 
16 SUBROUTINE coml_init_lockid_with_name(KMYLOCK,CDLOCKNAME)
18 USE parkind1, ONLY : jpib
19 IMPLICIT NONE
20 INTEGER(KIND=OML_LOCK_KIND), INTENT(INOUT) :: KMYLOCK
21 CHARACTER(LEN=*), INTENT(IN) :: CDLOCKNAME
22 INTEGER(KIND=JPIB), EXTERNAL :: LOC_ADDR
23 CALL oml_init_lock(kmylock)
24 IF (oml_debug) WRITE(0,'(1x,a,2i20)') &
25  & 'coml_init_lockid_with_name "'//cdlockname//'" :',kmylock,loc_addr(kmylock)
26 END SUBROUTINE coml_init_lockid_with_name
27 
28 SUBROUTINE coml_init_lockid(KMYLOCK)
30 USE parkind1, ONLY : jpib
31 IMPLICIT NONE
32 INTEGER(KIND=OML_LOCK_KIND), INTENT(INOUT) :: KMYLOCK
33 INTEGER(KIND=JPIB), EXTERNAL :: LOC_ADDR
34 CALL oml_init_lock(kmylock)
35 IF (oml_debug) WRITE(0,'(1x,2i20)') &
36  & 'coml_init_lockid :',kmylock,loc_addr(kmylock)
37 END SUBROUTINE coml_init_lockid
38 
39 SUBROUTINE coml_init_lock()
41 IMPLICIT NONE
42 CALL oml_init_lock()
43 END SUBROUTINE coml_init_lock
44 
45 SUBROUTINE coml_test_lockid(KISSET,KMYLOCK)
46 USE parkind1, ONLY : jpim
48 IMPLICIT NONE
49 INTEGER(KIND=JPIM), INTENT(OUT) :: KISSET
50 INTEGER(KIND=OML_LOCK_KIND), INTENT(INOUT) :: KMYLOCK
51 kisset = 1
52 IF (.NOT.oml_test_lock(kmylock)) kisset = 0
53 END SUBROUTINE coml_test_lockid
54 
55 SUBROUTINE coml_test_lock(KISSET)
56 USE parkind1, ONLY : jpim
57 USE oml_mod, ONLY : oml_test_lock
58 IMPLICIT NONE
59 INTEGER(KIND=JPIM), INTENT(OUT) :: KISSET
60 kisset = 1
61 IF (.NOT.oml_test_lock()) kisset = 0
62 END SUBROUTINE coml_test_lock
63 
64 SUBROUTINE coml_set_lockid(KMYLOCK)
66 USE parkind1, ONLY : jprd, jpib
67 IMPLICIT NONE
68 INTEGER(KIND=OML_LOCK_KIND), INTENT(INOUT) :: KMYLOCK
69 INTEGER(KIND=JPIB), EXTERNAL :: LOC_ADDR
70 REAL(KIND=JPRD), EXTERNAL :: UTIL_WALLTIME
71 IF (oml_debug) WRITE(0,'(1x,f20.6,1x,i3,a,2i20)') &
72  & util_walltime(),oml_my_thread(),': coml_SET_lockid >>',kmylock,loc_addr(kmylock)
73 CALL oml_set_lock(kmylock)
74 IF (oml_debug) WRITE(0,'(1x,f20.6,1x,i3,a,2i20)') &
75  & util_walltime(),oml_my_thread(),': coml_SET_lockid <<',kmylock,loc_addr(kmylock)
76 END SUBROUTINE coml_set_lockid
77 
78 SUBROUTINE coml_set_lock()
79 USE oml_mod, ONLY : oml_set_lock
80 IMPLICIT NONE
81 CALL oml_set_lock()
82 END SUBROUTINE coml_set_lock
83 
84 SUBROUTINE coml_unset_lockid(KMYLOCK)
86 USE parkind1, ONLY : jprd, jpib
87 IMPLICIT NONE
88 INTEGER(KIND=OML_LOCK_KIND), INTENT(INOUT) :: KMYLOCK
89 INTEGER(KIND=JPIB), EXTERNAL :: LOC_ADDR
90 REAL(KIND=JPRD), EXTERNAL :: UTIL_WALLTIME
91 IF (oml_debug) WRITE(0,'(1x,f20.6,1x,i3,a,2i20)') &
92  & util_walltime(),oml_my_thread(),': coml_UNSET_lockid >>',kmylock,loc_addr(kmylock)
93 CALL oml_unset_lock(kmylock)
94 IF (oml_debug) WRITE(0,'(1x,f20.6,1x,i3,a,2i20)') &
95  & util_walltime(),oml_my_thread(),': coml_UNSET_lockid <<',kmylock,loc_addr(kmylock)
96 END SUBROUTINE coml_unset_lockid
97 
98 SUBROUTINE coml_unset_lock()
100 IMPLICIT NONE
101 CALL oml_unset_lock()
102 END SUBROUTINE coml_unset_lock
103 
104 SUBROUTINE coml_in_parallel(KISPAR_REGION)
105 USE parkind1, ONLY : jpim
106 USE oml_mod, ONLY : oml_in_parallel
107 IMPLICIT NONE
108 INTEGER(KIND=JPIM), INTENT(OUT) :: KISPAR_REGION
109 kispar_region = 0
110 IF (oml_in_parallel()) kispar_region = 1
111 END SUBROUTINE coml_in_parallel
subroutine, public oml_set_lock(MYLOCK)
Definition: oml_mod.F90:160
integer, parameter jpim
Definition: parkind1.F90:13
integer, parameter jprd
Definition: parkind1.F90:39
subroutine coml_in_parallel(KISPAR_REGION)
subroutine coml_init_lockid_with_name(KMYLOCK, CDLOCKNAME)
subroutine, public oml_init_lock(MYLOCK)
Definition: oml_mod.F90:172
subroutine coml_test_lockid(KISSET, KMYLOCK)
subroutine coml_set_lockid(KMYLOCK)
subroutine, public oml_unset_lock(MYLOCK)
Definition: oml_mod.F90:148
subroutine coml_set_lock()
logical function, public oml_in_parallel()
Definition: oml_mod.F90:125
logical, public oml_debug
Definition: oml_mod.F90:77
integer(kind=jpim), parameter, public oml_lock_kind
Definition: oml_mod.F90:97
subroutine coml_init_lockid(KMYLOCK)
logical function, public oml_test_lock(MYLOCK)
Definition: oml_mod.F90:133
subroutine coml_set_debug(KONOFF, KRET)
Definition: coml_binding.F90:2
integer(kind=jpim) function, public oml_my_thread()
Definition: oml_mod.F90:249
subroutine coml_init_lock()
subroutine coml_test_lock(KISSET)
subroutine coml_unset_lock()
integer, parameter jpib
Definition: parkind1.F90:14
subroutine coml_unset_lockid(KMYLOCK)