GCC Code Coverage Report | |||||||||||||||||||||
|
|||||||||||||||||||||
Line | Branch | Exec | Source |
1 |
! |
||
2 |
! phys_local_var_mod.F90 1327 2010-03-17 15:33:56Z idelkadi $ |
||
3 |
|||
4 |
MODULE phys_output_var_mod |
||
5 |
|||
6 |
USE dimphy |
||
7 |
USE strings_mod, ONLY: maxlen |
||
8 |
! Variables outputs pour les ecritures des sorties |
||
9 |
!====================================================================== |
||
10 |
! |
||
11 |
! |
||
12 |
!====================================================================== |
||
13 |
! Declaration des variables |
||
14 |
|||
15 |
REAL, SAVE, ALLOCATABLE :: snow_o(:), zfra_o(:) |
||
16 |
!$OMP THREADPRIVATE(snow_o, zfra_o) |
||
17 |
REAL, SAVE, ALLOCATABLE :: sza_o(:) ! solar zenithal angle |
||
18 |
!$OMP THREADPRIVATE(sza_o) |
||
19 |
INTEGER, SAVE, ALLOCATABLE :: itau_con(:) ! Nombre de pas ou rflag <= 1 |
||
20 |
!$OMP THREADPRIVATE(itau_con) |
||
21 |
REAL, SAVE, ALLOCATABLE :: bils_ec(:) ! Contribution of energy conservation |
||
22 |
REAL, SAVE, ALLOCATABLE :: bils_ech(:) ! Contribution of energy conservation |
||
23 |
REAL, SAVE, ALLOCATABLE :: bils_tke(:) ! Contribution of energy conservation |
||
24 |
REAL, SAVE, ALLOCATABLE :: bils_diss(:) ! Contribution of energy conservation |
||
25 |
REAL, SAVE, ALLOCATABLE :: bils_kinetic(:) ! bilan de chaleur au sol, kinetic |
||
26 |
REAL, SAVE, ALLOCATABLE :: bils_enthalp(:) ! bilan de chaleur au sol |
||
27 |
REAL, SAVE, ALLOCATABLE :: bils_latent(:) ! bilan de chaleur au sol |
||
28 |
!$OMP THREADPRIVATE(bils_ec,bils_ech,bils_tke,bils_diss,bils_kinetic,bils_enthalp,bils_latent) |
||
29 |
! output variables for energy conservation tests, computed in add_phys_tend |
||
30 |
REAL, SAVE, ALLOCATABLE :: d_qw_col(:) ! watter vapour mass budget for each column (kg/m2/s) |
||
31 |
REAL, SAVE, ALLOCATABLE :: d_ql_col(:) ! liquid watter mass budget for each column (kg/m2/s) |
||
32 |
REAL, SAVE, ALLOCATABLE :: d_qs_col(:) ! cloud ice mass budget for each column (kg/m2/s) |
||
33 |
REAL, SAVE, ALLOCATABLE :: d_qbs_col(:) ! blowing snow mass budget for each column (kg/m2/s) |
||
34 |
REAL, SAVE, ALLOCATABLE :: d_qt_col(:) ! total watter mass budget for each column (kg/m2/s) |
||
35 |
REAL, SAVE, ALLOCATABLE :: d_ek_col(:) ! kinetic energy budget for each column (W/m2) |
||
36 |
REAL, SAVE, ALLOCATABLE :: d_h_dair_col(:) ! enthalpy budget of dry air for each column (W/m2) |
||
37 |
REAL, SAVE, ALLOCATABLE :: d_h_qw_col(:) ! enthalpy budget of watter vapour for each column (W/m2) |
||
38 |
REAL, SAVE, ALLOCATABLE :: d_h_ql_col(:) ! enthalpy budget of liquid watter for each column (W/m2) |
||
39 |
REAL, SAVE, ALLOCATABLE :: d_h_qs_col(:) ! enthalpy budget of cloud ice for each column (W/m2) |
||
40 |
REAL, SAVE, ALLOCATABLE :: d_h_qbs_col(:) ! enthalpy budget of blowing snow for each column (W/m2) |
||
41 |
REAL, SAVE, ALLOCATABLE :: d_h_col(:) ! total enthalpy budget for each column (W/m2) |
||
42 |
!$OMP THREADPRIVATE(d_qw_col, d_ql_col, d_qs_col, d_qbs_col, d_qt_col, d_ek_col, d_h_dair_col) |
||
43 |
!$OMP THREADPRIVATE(d_h_qw_col, d_h_ql_col, d_h_qs_col, d_h_qbs_col, d_h_col) |
||
44 |
|||
45 |
! Outputs used in cloudth_vert to extract the moments of the horizontal and |
||
46 |
! vertical PDFs |
||
47 |
REAL, SAVE, ALLOCATABLE :: cloudth_sth(:,:),cloudth_senv(:,:) |
||
48 |
!$OMP THREADPRIVATE(cloudth_sth,cloudth_senv) |
||
49 |
REAL, SAVE, ALLOCATABLE :: cloudth_sigmath(:,:),cloudth_sigmaenv(:,:) |
||
50 |
!$OMP THREADPRIVATE(cloudth_sigmath,cloudth_sigmaenv) |
||
51 |
|||
52 |
! Marine |
||
53 |
! Variables de sortie du simulateur AIRS |
||
54 |
|||
55 |
REAL, SAVE, ALLOCATABLE :: map_prop_hc(:),map_prop_hist(:),alt_tropo(:) |
||
56 |
!$OMP THREADPRIVATE(map_prop_hc,map_prop_hist,alt_tropo) |
||
57 |
REAL, SAVE, ALLOCATABLE :: map_emis_hc(:),map_iwp_hc(:),map_deltaz_hc(:), & |
||
58 |
map_pcld_hc(:),map_tcld_hc(:) |
||
59 |
!$OMP THREADPRIVATE(map_emis_hc,map_iwp_hc,map_deltaz_hc,map_pcld_hc,map_tcld_hc) |
||
60 |
REAL, SAVE, ALLOCATABLE :: map_emis_hist(:),map_iwp_hist(:),map_deltaz_hist(:),map_rad_hist(:) |
||
61 |
!$OMP THREADPRIVATE(map_emis_hist,map_iwp_hist,map_deltaz_hist,map_rad_hist) |
||
62 |
REAL, SAVE, ALLOCATABLE :: map_ntot(:),map_hc(:),map_hist(:) |
||
63 |
REAL, SAVE, ALLOCATABLE :: map_Cb(:),map_ThCi(:),map_Anv(:) |
||
64 |
!$OMP THREADPRIVATE(map_ntot,map_hc,map_hist,map_Cb,map_ThCi,map_Anv) |
||
65 |
REAL, SAVE, ALLOCATABLE :: map_emis_Cb(:),map_pcld_Cb(:),map_tcld_Cb(:) |
||
66 |
REAL, SAVE, ALLOCATABLE :: map_emis_ThCi(:),map_pcld_ThCi(:),map_tcld_ThCi(:) |
||
67 |
!$OMP THREADPRIVATE(map_emis_Cb,map_pcld_Cb,map_tcld_Cb,map_emis_ThCi) |
||
68 |
REAL, SAVE, ALLOCATABLE :: map_emis_Anv(:),map_pcld_Anv(:),map_tcld_Anv(:) |
||
69 |
!$OMP THREADPRIVATE(map_pcld_ThCi,map_tcld_ThCi,map_emis_Anv,map_pcld_Anv,map_tcld_Anv) |
||
70 |
|||
71 |
|||
72 |
! ug Plein de variables venues de phys_output_mod |
||
73 |
INTEGER, PARAMETER :: nfiles = 10 |
||
74 |
LOGICAL, DIMENSION(nfiles), SAVE :: clef_files |
||
75 |
LOGICAL, DIMENSION(nfiles), SAVE :: clef_stations |
||
76 |
INTEGER, DIMENSION(nfiles), SAVE :: lev_files |
||
77 |
INTEGER, DIMENSION(nfiles), SAVE :: nid_files |
||
78 |
INTEGER, DIMENSION(nfiles), SAVE :: nnid_files |
||
79 |
!$OMP THREADPRIVATE(clef_files, clef_stations, lev_files,nid_files,nnid_files) |
||
80 |
INTEGER, DIMENSION(nfiles), SAVE :: nnhorim |
||
81 |
|||
82 |
INTEGER, DIMENSION(nfiles), SAVE :: nhorim, nvertm |
||
83 |
INTEGER, DIMENSION(nfiles), SAVE :: nvertap, nvertbp, nvertAlt |
||
84 |
REAL, DIMENSION(nfiles), SAVE :: zoutm |
||
85 |
CHARACTER(LEN=20), DIMENSION(nfiles), SAVE :: type_ecri |
||
86 |
!$OMP THREADPRIVATE(nnhorim, nhorim, nvertm, zoutm,type_ecri) |
||
87 |
CHARACTER(LEN=20), DIMENSION(nfiles), SAVE :: type_ecri_files, phys_out_filetypes |
||
88 |
!$OMP THREADPRIVATE(type_ecri_files, phys_out_filetypes) |
||
89 |
CHARACTER(LEN=20), DIMENSION(nfiles), SAVE :: phys_out_filenames |
||
90 |
!$OMP THREADPRIVATE(phys_out_filenames) |
||
91 |
|||
92 |
! swaero_diag : flag indicates if it is necessary to do calculation for some aerosol diagnostics |
||
93 |
! swaerofree_diag : flag indicates if it is necessary to do calculation for some aerosol diagnostics |
||
94 |
! dryaod_diag : flag indicates if it is necessary to do calculation for some aerosol diagnostics |
||
95 |
!--OB: this needs to be set to FALSE by default and changed back to TRUE based on output requests |
||
96 |
LOGICAL, SAVE :: swaerofree_diag=.FALSE. |
||
97 |
LOGICAL, SAVE :: swaero_diag=.FALSE. |
||
98 |
LOGICAL, SAVE :: dryaod_diag=.FALSE. |
||
99 |
!$OMP THREADPRIVATE(swaerofree_diag, swaero_diag, dryaod_diag) |
||
100 |
|||
101 |
! ok_4xCO2atm : flag indicates if it is necessary to do a second call of |
||
102 |
! radiation code with a 4xCO2 or another different GES to assess SW/LW |
||
103 |
! in this case |
||
104 |
!--IM: as for swaero_diag this needs to be set to FALSE by default and |
||
105 |
! changed back to TRUE based on output requests |
||
106 |
LOGICAL, SAVE :: ok_4xCO2atm=.FALSE. |
||
107 |
!$OMP THREADPRIVATE(ok_4xCO2atm) |
||
108 |
|||
109 |
INTEGER, SAVE:: levmin(nfiles) = 1 |
||
110 |
INTEGER, SAVE:: levmax(nfiles) |
||
111 |
!$OMP THREADPRIVATE(levmin, levmax) |
||
112 |
|||
113 |
REAL, SAVE :: zdtime_moy |
||
114 |
!$OMP THREADPRIVATE(zdtime_moy) |
||
115 |
|||
116 |
LOGICAL, SAVE :: vars_defined = .FALSE. ! ug PAS THREADPRIVATE ET C'EST NORMAL |
||
117 |
|||
118 |
REAL, allocatable:: zustr_gwd_hines(:), zvstr_gwd_hines(:) ! (klon) |
||
119 |
REAL, allocatable:: zustr_gwd_front(:), zvstr_gwd_front(:) ! (klon) |
||
120 |
REAL, allocatable:: zustr_gwd_rando(:), zvstr_gwd_rando(:) ! (klon) |
||
121 |
!$OMP THREADPRIVATE(zustr_gwd_hines, zvstr_gwd_hines) |
||
122 |
!$OMP THREADPRIVATE(zustr_gwd_front, zvstr_gwd_front) |
||
123 |
!$OMP THREADPRIVATE(zustr_gwd_rando, zvstr_gwd_rando) |
||
124 |
|||
125 |
TYPE ctrl_out |
||
126 |
INTEGER :: flag(nfiles) |
||
127 |
CHARACTER(len=maxlen) :: name |
||
128 |
CHARACTER(len=maxlen) :: description |
||
129 |
CHARACTER(len=maxlen) :: unit |
||
130 |
CHARACTER(len=maxlen) :: type_ecrit(nfiles) |
||
131 |
END TYPE ctrl_out |
||
132 |
|||
133 |
REAL, SAVE, ALLOCATABLE :: sens_prec_liq_o(:,:), sens_prec_sol_o(:,:) |
||
134 |
REAL, SAVE, ALLOCATABLE :: lat_prec_liq_o(:,:), lat_prec_sol_o(:,:) |
||
135 |
!$OMP THREADPRIVATE(sens_prec_liq_o, sens_prec_sol_o,lat_prec_liq_o,lat_prec_sol_o) |
||
136 |
|||
137 |
! Ocean-atmosphere interface, subskin ocean and near-surface ocean: |
||
138 |
|||
139 |
REAL, SAVE, ALLOCATABLE:: tkt(:) ! (klon) |
||
140 |
! �paisseur (m) de la couche de diffusion thermique (microlayer) |
||
141 |
! cool skin thickness |
||
142 |
|||
143 |
REAL, SAVE, ALLOCATABLE:: tks(:) ! (klon) |
||
144 |
! �paisseur (m) de la couche de diffusion de masse (microlayer) |
||
145 |
|||
146 |
REAL, SAVE, ALLOCATABLE:: taur(:) ! (klon) momentum flux due to rain, in Pa |
||
147 |
|||
148 |
REAL, SAVE, ALLOCATABLE:: sss(:) ! (klon) |
||
149 |
! bulk salinity of the surface layer of the ocean, in ppt |
||
150 |
|||
151 |
!$OMP THREADPRIVATE(tkt, tks, taur, sss) |
||
152 |
|||
153 |
CONTAINS |
||
154 |
|||
155 |
!====================================================================== |
||
156 |
1 |
SUBROUTINE phys_output_var_init |
|
157 |
use dimphy |
||
158 |
use config_ocean_skin_m, only: activate_ocean_skin |
||
159 |
|||
160 |
IMPLICIT NONE |
||
161 |
|||
162 |
include "clesphys.h" |
||
163 |
|||
164 |
!------------------------------------------------ |
||
165 |
|||
166 |
✓✗✗✓ ✗✓✗✓ ✗✓ |
1 |
allocate(snow_o(klon), zfra_o(klon)) |
167 |
✗✓✗✓ |
1 |
allocate(sza_o(klon) ) |
168 |
✓✗✗✓ ✗✓ |
1 |
allocate(itau_con(klon)) |
169 |
✓✗✗✓ ✗✓ |
1 |
allocate(sens_prec_liq_o(klon,2)) |
170 |
✗✓✗✓ |
1 |
allocate(sens_prec_sol_o(klon,2)) |
171 |
✗✓✗✓ |
1 |
allocate(lat_prec_liq_o(klon,2)) |
172 |
✗✓✗✓ |
1 |
allocate(lat_prec_sol_o(klon,2)) |
173 |
✓✓✓✓ ✓✓✓✓ |
3982 |
sens_prec_liq_o = 0.0 ; sens_prec_sol_o = 0.0 |
174 |
✓✓✓✓ ✓✓✓✓ |
3982 |
lat_prec_liq_o = 0.0 ; lat_prec_sol_o = 0.0 |
175 |
|||
176 |
✗✓✗✓ ✗✓✗✓ ✗✓✗✓ ✗✓✗✓ ✗✓✗✓ ✗✓✗✓ ✗✓✗✓ |
1 |
allocate (bils_ec(klon),bils_ech(klon),bils_tke(klon),bils_diss(klon),bils_kinetic(klon),bils_enthalp(klon),bils_latent(klon)) |
177 |
allocate (d_qw_col(klon), d_ql_col(klon), d_qs_col(klon), d_qbs_col(klon), d_qt_col(klon), d_ek_col(klon), d_h_dair_col(klon) & |
||
178 |
✗✓✗✓ ✗✓✗✓ ✗✓✗✓ ✗✓✗✓ ✗✓✗✓ ✗✓✗✓ ✗✓✗✓ ✗✓✗✓ ✗✓✗✓ ✗✓✗✓ ✗✓✗✓ ✗✓✗✓ |
1 |
& , d_h_qw_col(klon), d_h_ql_col(klon), d_h_qs_col(klon), d_h_qbs_col(klon), d_h_col(klon)) |
179 |
✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓ |
6965 |
d_qw_col=0. ; d_ql_col=0. ; d_qs_col=0. ; d_qbs_col=0. ; d_qt_col=0. ; d_ek_col=0. ; d_h_dair_col =0. |
180 |
✓✓✓✓ ✓✓✓✓ ✓✓ |
4975 |
d_h_qw_col=0. ; d_h_ql_col=0. ; d_h_qs_col=0. ; d_h_qbs_col=0. ; d_h_col=0. |
181 |
|||
182 |
! Outputs used in cloudth_vert |
||
183 |
✓✗✓✗ ✗✓✗✓ ✗✓ |
2 |
allocate(cloudth_sth(klon,klev)) |
184 |
✓✗✗✓ ✗✓✗✓ |
2 |
allocate(cloudth_senv(klon,klev)) |
185 |
✓✓✓✓ ✓✓✓✓ |
77612 |
cloudth_sth = 0. ; cloudth_senv = 0. |
186 |
✓✗✗✓ ✗✓✗✓ |
2 |
allocate(cloudth_sigmath(klon,klev)) |
187 |
✓✗✗✓ ✗✓✗✓ |
2 |
allocate(cloudth_sigmaenv(klon,klev)) |
188 |
✓✓✓✓ ✓✓✓✓ |
77612 |
cloudth_sigmath = 0. ; cloudth_sigmaenv = 0. |
189 |
|||
190 |
! Marine |
||
191 |
! Variables de sortie simulateur AIRS |
||
192 |
|||
193 |
! if (ok_airs) then |
||
194 |
✗✓✗✓ ✗✓✗✓ |
1 |
allocate (map_prop_hc(klon),map_prop_hist(klon)) |
195 |
✗✓✗✓ |
1 |
allocate (alt_tropo(klon)) |
196 |
✗✓✗✓ ✗✓✗✓ ✗✓✗✓ |
1 |
allocate (map_emis_hc(klon),map_iwp_hc(klon),map_deltaz_hc(klon)) |
197 |
✗✓✗✓ ✗✓✗✓ |
1 |
allocate (map_pcld_hc(klon),map_tcld_hc(klon)) |
198 |
✗✓✗✓ ✗✓✗✓ ✗✓✗✓ |
1 |
allocate (map_emis_hist(klon),map_iwp_hist(klon),map_deltaz_hist(klon)) |
199 |
✗✓✗✓ |
1 |
allocate (map_rad_hist(klon)) |
200 |
✗✓✗✓ ✗✓✗✓ ✗✓✗✓ |
1 |
allocate (map_ntot(klon),map_hc(klon),map_hist(klon)) |
201 |
✗✓✗✓ ✗✓✗✓ ✗✓✗✓ |
1 |
allocate (map_Cb(klon),map_ThCi(klon),map_Anv(klon)) |
202 |
✗✓✗✓ ✗✓✗✓ ✗✓✗✓ |
1 |
allocate (map_emis_Cb(klon),map_pcld_Cb(klon),map_tcld_Cb(klon)) |
203 |
✗✓✗✓ ✗✓✗✓ ✗✓✗✓ |
1 |
allocate (map_emis_ThCi(klon),map_pcld_ThCi(klon),map_tcld_ThCi(klon)) |
204 |
✗✓✗✓ ✗✓✗✓ ✗✓✗✓ |
1 |
allocate (map_emis_Anv(klon),map_pcld_Anv(klon),map_tcld_Anv(klon)) |
205 |
! endif |
||
206 |
|||
207 |
IF (ok_hines) allocate(zustr_gwd_hines(klon), zvstr_gwd_hines(klon)) |
||
208 |
✓✗ | 1 |
IF (.not.ok_hines.and.ok_gwd_rando) & |
209 |
✗✓✗✓ ✗✓✗✓ |
1 |
allocate(zustr_gwd_front(klon), zvstr_gwd_front(klon)) |
210 |
✗✓✗✓ ✗✓✗✓ |
1 |
IF (ok_gwd_rando) allocate(zustr_gwd_rando(klon), zvstr_gwd_rando(klon)) |
211 |
|||
212 |
✗✓ | 1 |
if (activate_ocean_skin >= 1) allocate(tkt(klon), tks(klon), taur(klon), & |
213 |
sss(klon)) |
||
214 |
|||
215 |
1 |
END SUBROUTINE phys_output_var_init |
|
216 |
|||
217 |
!====================================================================== |
||
218 |
SUBROUTINE phys_output_var_end |
||
219 |
✗✓✓✗ ✓✗ |
3 |
USE dimphy |
220 |
IMPLICIT NONE |
||
221 |
|||
222 |
include "clesphys.h" |
||
223 |
|||
224 |
deallocate(snow_o,zfra_o,itau_con) |
||
225 |
deallocate(sza_o) |
||
226 |
deallocate (bils_ec,bils_ech,bils_tke,bils_diss,bils_kinetic,bils_enthalp,bils_latent) |
||
227 |
deallocate (d_qw_col, d_ql_col, d_qs_col, d_qbs_col, d_qt_col, d_ek_col, d_h_dair_col & |
||
228 |
& , d_h_qw_col, d_h_ql_col, d_h_qs_col, d_h_qbs_col, d_h_col) |
||
229 |
|||
230 |
! Outputs used in cloudth_vert |
||
231 |
deallocate(cloudth_sth) |
||
232 |
deallocate(cloudth_senv) |
||
233 |
deallocate(cloudth_sigmath) |
||
234 |
deallocate(cloudth_sigmaenv) |
||
235 |
|||
236 |
! Marine |
||
237 |
! Variables de sortie simulateur AIRS |
||
238 |
|||
239 |
! if (ok_airs) then |
||
240 |
deallocate (map_prop_hc,map_prop_hist) |
||
241 |
deallocate (alt_tropo) |
||
242 |
deallocate (map_emis_hc,map_iwp_hc,map_deltaz_hc) |
||
243 |
deallocate (map_pcld_hc,map_tcld_hc) |
||
244 |
deallocate (map_emis_hist,map_iwp_hist,map_deltaz_hist) |
||
245 |
deallocate (map_rad_hist) |
||
246 |
deallocate (map_ntot,map_hc,map_hist) |
||
247 |
deallocate (map_Cb,map_ThCi,map_Anv) |
||
248 |
deallocate (map_emis_Cb,map_pcld_Cb,map_tcld_Cb) |
||
249 |
deallocate (map_emis_ThCi,map_pcld_ThCi,map_tcld_ThCi) |
||
250 |
deallocate (map_emis_Anv,map_pcld_Anv,map_tcld_Anv) |
||
251 |
! endif |
||
252 |
|||
253 |
END SUBROUTINE phys_output_var_end |
||
254 |
|||
255 |
END MODULE phys_output_var_mod |
Generated by: GCOVR (Version 4.2) |