Directory: | ./ |
---|---|
File: | phy_common/ioipsl_getin_p_mod.f90 |
Date: | 2022-01-11 19:19:34 |
Exec | Total | Coverage | |
---|---|---|---|
Lines: | 20 | 50 | 40.0% |
Branches: | 8 | 52 | 15.4% |
Line | Branch | Exec | Source |
---|---|---|---|
1 | ! | ||
2 | ! $Id$ | ||
3 | ! | ||
4 | MODULE ioipsl_getin_p_mod | ||
5 | ! To use getin in a parallel context | ||
6 | !--------------------------------------------------------------------- | ||
7 | USE ioipsl, ONLY: getin | ||
8 | USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_root | ||
9 | USE mod_phys_lmdz_omp_data, ONLY : is_omp_root | ||
10 | USE mod_phys_lmdz_transfert_para, ONLY : bcast | ||
11 | !- | ||
12 | IMPLICIT NONE | ||
13 | !- | ||
14 | PRIVATE | ||
15 | PUBLIC :: getin_p | ||
16 | !- | ||
17 | INTERFACE getin_p | ||
18 | |||
19 | MODULE PROCEDURE getinrs_p, getinr1d_p, getinr2d_p, & | ||
20 | & getinis_p, getini1d_p, getini2d_p, & | ||
21 | & getincs_p, & | ||
22 | & getinls_p, getinl1d_p, getinl2d_p | ||
23 | END INTERFACE | ||
24 | !- | ||
25 | CONTAINS | ||
26 | |||
27 | |||
28 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
29 | !! Definition des getin -> bcast !! | ||
30 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
31 | |||
32 | !! -- Les chaines de caracteres -- !! | ||
33 | |||
34 | 2 | SUBROUTINE getincs_p(VarIn,VarOut) | |
35 | IMPLICIT NONE | ||
36 | CHARACTER(LEN=*),INTENT(IN) :: VarIn | ||
37 | CHARACTER(LEN=*),INTENT(INOUT) :: VarOut | ||
38 | |||
39 | !$OMP BARRIER | ||
40 |
2/4✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
|
2 | IF (is_mpi_root .AND. is_omp_root) THEN |
41 | 2 | CALL getin(VarIn,VarOut) | |
42 | ENDIF | ||
43 | 2 | CALL bcast(VarOut) | |
44 | 2 | END SUBROUTINE getincs_p | |
45 | |||
46 | !! -- Les entiers -- !! | ||
47 | |||
48 | 748 | SUBROUTINE getinis_p(VarIn,VarOut) | |
49 | IMPLICIT NONE | ||
50 | CHARACTER(LEN=*),INTENT(IN) :: VarIn | ||
51 | INTEGER,INTENT(INOUT) :: VarOut | ||
52 | |||
53 | !$OMP BARRIER | ||
54 |
2/4✓ Branch 0 taken 748 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 748 times.
✗ Branch 3 not taken.
|
748 | IF (is_mpi_root .AND. is_omp_root) THEN |
55 | 748 | CALL getin(VarIn,VarOut) | |
56 | ENDIF | ||
57 | 748 | CALL bcast(VarOut) | |
58 | 748 | END SUBROUTINE getinis_p | |
59 | |||
60 | ✗ | SUBROUTINE getini1d_p(VarIn,VarOut) | |
61 | IMPLICIT NONE | ||
62 | CHARACTER(LEN=*),INTENT(IN) :: VarIn | ||
63 | INTEGER,INTENT(INOUT) :: VarOut(:) | ||
64 | |||
65 | !$OMP BARRIER | ||
66 | ✗ | IF (is_mpi_root .AND. is_omp_root) THEN | |
67 | ✗ | CALL getin(VarIn,VarOut) | |
68 | ENDIF | ||
69 | ✗ | CALL bcast(VarOut) | |
70 | ✗ | END SUBROUTINE getini1d_p | |
71 | |||
72 | ✗ | SUBROUTINE getini2d_p(VarIn,VarOut) | |
73 | IMPLICIT NONE | ||
74 | CHARACTER(LEN=*),INTENT(IN) :: VarIn | ||
75 | INTEGER,INTENT(INOUT) :: VarOut(:,:) | ||
76 | |||
77 | !$OMP BARRIER | ||
78 | ✗ | IF (is_mpi_root .AND. is_omp_root) THEN | |
79 | ✗ | CALL getin(VarIn,VarOut) | |
80 | ENDIF | ||
81 | ✗ | CALL bcast(VarOut) | |
82 | ✗ | END SUBROUTINE getini2d_p | |
83 | |||
84 | !! -- Les flottants -- !! | ||
85 | |||
86 | 537 | SUBROUTINE getinrs_p(VarIn,VarOut) | |
87 | IMPLICIT NONE | ||
88 | CHARACTER(LEN=*),INTENT(IN) :: VarIn | ||
89 | REAL,INTENT(INOUT) :: VarOut | ||
90 | |||
91 | !$OMP BARRIER | ||
92 |
2/4✓ Branch 0 taken 537 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 537 times.
✗ Branch 3 not taken.
|
537 | IF (is_mpi_root .AND. is_omp_root) THEN |
93 | 537 | CALL getin(VarIn,VarOut) | |
94 | ENDIF | ||
95 | 537 | CALL bcast(VarOut) | |
96 | 537 | END SUBROUTINE getinrs_p | |
97 | |||
98 | ✗ | SUBROUTINE getinr1d_p(VarIn,VarOut) | |
99 | IMPLICIT NONE | ||
100 | CHARACTER(LEN=*),INTENT(IN) :: VarIn | ||
101 | REAL,INTENT(INOUT) :: VarOut(:) | ||
102 | |||
103 | !$OMP BARRIER | ||
104 | ✗ | IF (is_mpi_root .AND. is_omp_root) THEN | |
105 | ✗ | CALL getin(VarIn,VarOut) | |
106 | ENDIF | ||
107 | ✗ | CALL bcast(VarOut) | |
108 | ✗ | END SUBROUTINE getinr1d_p | |
109 | |||
110 | ✗ | SUBROUTINE getinr2d_p(VarIn,VarOut) | |
111 | IMPLICIT NONE | ||
112 | CHARACTER(LEN=*),INTENT(IN) :: VarIn | ||
113 | REAL,INTENT(INOUT) :: VarOut(:,:) | ||
114 | |||
115 | !$OMP BARRIER | ||
116 | ✗ | IF (is_mpi_root .AND. is_omp_root) THEN | |
117 | ✗ | CALL getin(VarIn,VarOut) | |
118 | ENDIF | ||
119 | ✗ | CALL bcast(VarOut) | |
120 | ✗ | END SUBROUTINE getinr2d_p | |
121 | |||
122 | !! -- Les Booleens -- !! | ||
123 | |||
124 | 500 | SUBROUTINE getinls_p(VarIn,VarOut) | |
125 | IMPLICIT NONE | ||
126 | CHARACTER(LEN=*),INTENT(IN) :: VarIn | ||
127 | LOGICAL,INTENT(INOUT) :: VarOut | ||
128 | |||
129 | !$OMP BARRIER | ||
130 |
2/4✓ Branch 0 taken 500 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 500 times.
✗ Branch 3 not taken.
|
500 | IF (is_mpi_root .AND. is_omp_root) THEN |
131 | 500 | CALL getin(VarIn,VarOut) | |
132 | ENDIF | ||
133 | 500 | CALL bcast(VarOut) | |
134 | 500 | END SUBROUTINE getinls_p | |
135 | |||
136 | ✗ | SUBROUTINE getinl1d_p(VarIn,VarOut) | |
137 | IMPLICIT NONE | ||
138 | CHARACTER(LEN=*),INTENT(IN) :: VarIn | ||
139 | LOGICAL,INTENT(INOUT) :: VarOut(:) | ||
140 | |||
141 | !$OMP BARRIER | ||
142 | ✗ | IF (is_mpi_root .AND. is_omp_root) THEN | |
143 | ✗ | CALL getin(VarIn,VarOut) | |
144 | ENDIF | ||
145 | ✗ | CALL bcast(VarOut) | |
146 | ✗ | END SUBROUTINE getinl1d_p | |
147 | |||
148 | ✗ | SUBROUTINE getinl2d_p(VarIn,VarOut) | |
149 | IMPLICIT NONE | ||
150 | CHARACTER(LEN=*),INTENT(IN) :: VarIn | ||
151 | LOGICAL,INTENT(INOUT) :: VarOut(:,:) | ||
152 | |||
153 | !$OMP BARRIER | ||
154 | ✗ | IF (is_mpi_root .AND. is_omp_root) THEN | |
155 | ✗ | CALL getin(VarIn,VarOut) | |
156 | ENDIF | ||
157 | ✗ | CALL bcast(VarOut) | |
158 | ✗ | END SUBROUTINE getinl2d_p | |
159 | !- | ||
160 | !----------------------------- | ||
161 | !----------------------------- | ||
162 | !----------------------------- | ||
163 | |||
164 | END MODULE ioipsl_getin_p_mod | ||
165 | |||
166 |