1 | ! inca SUBROUTINE wrappers |
---|
2 | |
---|
3 | #ifndef INCA |
---|
4 | |
---|
5 | SUBROUTINE lmdz_inca_wrapper_abort |
---|
6 | STOP 'INCA key undefined, must not enter in INCA wrappers ==> aborting' |
---|
7 | END SUBROUTINE lmdz_inca_wrapper_abort |
---|
8 | |
---|
9 | SUBROUTINE init_chem_inca_trac(nbtr) |
---|
10 | IMPLICIT NONE |
---|
11 | INTEGER, INTENT(OUT) :: nbtr |
---|
12 | |
---|
13 | CALL lmdz_inca_wrapper_abort |
---|
14 | END SUBROUTINE init_chem_inca_trac |
---|
15 | |
---|
16 | SUBROUTINE init_transport(& |
---|
17 | tracnam_lmdz, & |
---|
18 | conv_flg_lmdz, & |
---|
19 | pbl_flg_lmdz, & |
---|
20 | hadv_flg_lmdz, & |
---|
21 | vadv_flg_lmdz) |
---|
22 | IMPLICIT NONE |
---|
23 | INTEGER, DIMENSION(:), INTENT(OUT) :: hadv_flg_lmdz |
---|
24 | INTEGER, DIMENSION(:), INTENT(OUT) :: vadv_flg_lmdz |
---|
25 | |
---|
26 | INTEGER, DIMENSION(:), INTENT(OUT) :: conv_flg_lmdz |
---|
27 | INTEGER, DIMENSION(:), INTENT(OUT) :: pbl_flg_lmdz |
---|
28 | CHARACTER(len = 8), DIMENSION(:), INTENT(OUT) :: tracnam_lmdz |
---|
29 | |
---|
30 | CALL lmdz_inca_wrapper_abort |
---|
31 | END SUBROUTINE init_transport |
---|
32 | |
---|
33 | SUBROUTINE finalize_inca |
---|
34 | IMPLICIT NONE |
---|
35 | CALL lmdz_inca_wrapper_abort |
---|
36 | END SUBROUTINE finalize_inca |
---|
37 | |
---|
38 | SUBROUTINE CHEMHOOK_BEGIN(& |
---|
39 | calday, & |
---|
40 | ijour, & |
---|
41 | gmtime, & |
---|
42 | oro, & |
---|
43 | lat, & |
---|
44 | lon, & |
---|
45 | area, & |
---|
46 | pfull, & |
---|
47 | pmid, & |
---|
48 | coefh, & |
---|
49 | zma, & |
---|
50 | temp, & |
---|
51 | u, & |
---|
52 | v, & |
---|
53 | rot, & |
---|
54 | ozrad, & |
---|
55 | sh, & |
---|
56 | ts, & |
---|
57 | t_air_2m, & |
---|
58 | dpth_snow, & |
---|
59 | sws, & |
---|
60 | albs, & |
---|
61 | rain_fall, & |
---|
62 | snow_fall, & |
---|
63 | ctop, & |
---|
64 | cbot, & |
---|
65 | cldfr, & |
---|
66 | nx, & |
---|
67 | ny, & |
---|
68 | mmr, & |
---|
69 | ftsol, & |
---|
70 | paprs, & |
---|
71 | cdragh, & |
---|
72 | cdragm, & |
---|
73 | pctsrf, & |
---|
74 | delt, & |
---|
75 | nstep) |
---|
76 | IMPLICIT NONE |
---|
77 | REAL, INTENT(IN) :: calday |
---|
78 | INTEGER, INTENT(IN) :: ijour ! jour julien |
---|
79 | REAL, INTENT(IN) :: gmtime ! input-R-temps universel dans la journee (0 a 86400 s) |
---|
80 | INTEGER, INTENT(IN) :: ctop(:) |
---|
81 | INTEGER, INTENT(IN) :: cbot(:) |
---|
82 | INTEGER, INTENT(IN) :: nx, ny |
---|
83 | REAL, INTENT(IN) :: pmid(:, :) |
---|
84 | REAL, INTENT(IN) :: pfull(:, :) |
---|
85 | REAL, INTENT(IN) :: coefh(:, :) |
---|
86 | REAL, INTENT(IN) :: zma(:, :) |
---|
87 | REAL, INTENT(IN) :: temp(:, :) |
---|
88 | REAL, INTENT(IN) :: u(:, :) |
---|
89 | REAL, INTENT(IN) :: v(:, :) |
---|
90 | REAL, INTENT(IN) :: rot(:, :) |
---|
91 | REAL, INTENT(IN) :: ozrad(:, :) |
---|
92 | REAL, INTENT(IN) :: sh(:, :) |
---|
93 | REAL, INTENT(IN) :: lat(:) |
---|
94 | REAL, INTENT(IN) :: lon(:) |
---|
95 | REAL, INTENT(IN) :: oro(:) |
---|
96 | REAL, INTENT(IN) :: area(:) |
---|
97 | REAL, INTENT(IN) :: ts(:) |
---|
98 | REAL, INTENT(IN) :: t_air_2m(:) ! air temperature near surface |
---|
99 | REAL, INTENT(IN) :: dpth_snow(:) |
---|
100 | REAL, INTENT(IN) :: sws(:) |
---|
101 | REAL, INTENT(IN) :: albs(:) |
---|
102 | REAL, INTENT(IN) :: rain_fall(:) |
---|
103 | REAL, INTENT(IN) :: snow_fall(:) |
---|
104 | REAL, INTENT(IN) :: mmr(:, :, :) |
---|
105 | REAL, INTENT(IN) :: cldfr (:, :) |
---|
106 | ! variables used in nightingale |
---|
107 | REAL, INTENT(IN) :: ftsol(:, :) |
---|
108 | REAL, INTENT(IN) :: paprs(:, :) |
---|
109 | REAL, INTENT(IN) :: cdragh(:), cdragm(:) |
---|
110 | REAL, INTENT(IN) :: pctsrf(:, :) |
---|
111 | REAL, INTENT(IN) :: delt ! timestep in seconds of physics |
---|
112 | INTEGER, INTENT(IN) :: nstep ! model time step |
---|
113 | |
---|
114 | CALL lmdz_inca_wrapper_abort |
---|
115 | END SUBROUTINE CHEMHOOK_BEGIN |
---|
116 | |
---|
117 | SUBROUTINE CHEMHOOK_END(& |
---|
118 | dt, & |
---|
119 | pmid, & |
---|
120 | temp, & |
---|
121 | mmr, & |
---|
122 | nbtr, & |
---|
123 | paprs, & |
---|
124 | sh, & |
---|
125 | area, & |
---|
126 | zma, & |
---|
127 | phis, & |
---|
128 | rh, aps, bps, ap, bp, lafin) |
---|
129 | IMPLICIT NONE |
---|
130 | INTEGER, INTENT(IN) :: nbtr |
---|
131 | REAL, INTENT(IN) :: dt |
---|
132 | REAL, INTENT(IN) :: pmid(:, :) |
---|
133 | REAL, INTENT(IN) :: area(:) |
---|
134 | REAL, INTENT(IN) :: temp(:, :) |
---|
135 | REAL, INTENT(IN) :: paprs(:, :) |
---|
136 | REAL, INTENT(IN) :: sh(:, :) |
---|
137 | REAL, INTENT(INOUT) :: mmr(:, :, :) |
---|
138 | REAL, INTENT(IN) :: zma(:, :) |
---|
139 | REAL, INTENT(IN) :: phis(:) |
---|
140 | REAL, INTENT(IN) :: rh(:, :) |
---|
141 | REAL, INTENT(IN), DIMENSION(:) :: aps, bps |
---|
142 | REAL, INTENT(IN), DIMENSION(:) :: ap, bp |
---|
143 | LOGICAL, INTENT(IN) :: lafin |
---|
144 | |
---|
145 | CALL lmdz_inca_wrapper_abort |
---|
146 | END SUBROUTINE chemhook_end |
---|
147 | |
---|
148 | SUBROUTINE chemtime(istp, date0, dt, itap) |
---|
149 | IMPLICIT NONE |
---|
150 | INTEGER, INTENT(IN) :: istp ! time step of the restart file |
---|
151 | REAL, INTENT(IN) :: date0 ! the date at which itau = 0 |
---|
152 | REAL, INTENT(IN) :: dt ! time step |
---|
153 | INTEGER, INTENT(IN) :: itap |
---|
154 | CALL lmdz_inca_wrapper_abort |
---|
155 | END SUBROUTINE chemtime |
---|
156 | |
---|
157 | SUBROUTINE INIT_CONST_LMDZ(& |
---|
158 | nday_l, & |
---|
159 | nbsrf_l, & |
---|
160 | is_oce_l, & |
---|
161 | is_sic_l, & |
---|
162 | is_ter_l, & |
---|
163 | is_lic_l, & |
---|
164 | calend_l, & |
---|
165 | config_inca_l) |
---|
166 | IMPLICIT NONE |
---|
167 | INTEGER, INTENT(IN) :: nday_l |
---|
168 | INTEGER, INTENT(IN) :: nbsrf_l |
---|
169 | INTEGER, INTENT(IN) :: is_oce_l, is_sic_l, is_lic_l, is_ter_l |
---|
170 | CHARACTER (len = 10), INTENT(IN) :: calend_l |
---|
171 | CHARACTER(len = 4), INTENT(IN) :: config_inca_l |
---|
172 | |
---|
173 | CALL lmdz_inca_wrapper_abort |
---|
174 | END SUBROUTINE init_const_lmdz |
---|
175 | |
---|
176 | SUBROUTINE init_inca_geometry(& |
---|
177 | longitude_lmdz, latitude_lmdz, & |
---|
178 | boundslon_lmdz, boundslat_lmdz, & |
---|
179 | cell_area_lmdz, & |
---|
180 | ind_cell_glo_lmdz) |
---|
181 | IMPLICIT NONE |
---|
182 | REAL, INTENT(IN) :: longitude_lmdz(:) |
---|
183 | REAL, INTENT(IN) :: latitude_lmdz(:) |
---|
184 | REAL, INTENT(IN) :: boundslon_lmdz(:, :) |
---|
185 | REAL, INTENT(IN) :: boundslat_lmdz(:, :) |
---|
186 | REAL, INTENT(IN) :: cell_area_lmdz(:) |
---|
187 | INTEGER, OPTIONAL, INTENT(IN) :: ind_cell_glo_lmdz(:) |
---|
188 | |
---|
189 | CALL lmdz_inca_wrapper_abort |
---|
190 | END SUBROUTINE init_inca_geometry |
---|
191 | |
---|
192 | SUBROUTINE CHEMINI(pmid, & |
---|
193 | nbp_lon_lmdz, nbp_lat_lmdz, & |
---|
194 | latgcm, & |
---|
195 | longcm, & |
---|
196 | presnivs, & |
---|
197 | calday, & |
---|
198 | klon, & |
---|
199 | nqmax, & |
---|
200 | nqo, & |
---|
201 | pdtphys, & |
---|
202 | annee_ref, & |
---|
203 | year_cur, & |
---|
204 | day_ref, & |
---|
205 | day_ini, & |
---|
206 | start_time, & |
---|
207 | itau_phy, & |
---|
208 | date0, & |
---|
209 | chemistry_couple, & |
---|
210 | init_source, & |
---|
211 | init_tauinca, & |
---|
212 | init_pizinca, & |
---|
213 | init_cginca, & |
---|
214 | init_ccm, & |
---|
215 | io_lon, & |
---|
216 | io_lat) |
---|
217 | IMPLICIT NONE |
---|
218 | REAL, INTENT(IN) :: pmid(:, :) |
---|
219 | INTEGER, INTENT(IN) :: nbp_lon_lmdz, nbp_lat_lmdz |
---|
220 | REAL, INTENT(IN) :: calday |
---|
221 | REAL, INTENT(IN) :: latgcm(:) |
---|
222 | REAL, INTENT(IN) :: longcm(:) |
---|
223 | REAL, INTENT(IN) :: presnivs(:) |
---|
224 | INTEGER, INTENT(IN) :: klon |
---|
225 | INTEGER, INTENT(IN) :: nqmax ! nombre total de traceurs = inca + lmdz |
---|
226 | INTEGER, INTENT(IN) :: nqo ! nombre de traceurs lus dans traceur.def |
---|
227 | REAL, INTENT(IN) :: pdtphys |
---|
228 | INTEGER, INTENT(IN) :: annee_ref, year_cur |
---|
229 | INTEGER, INTENT(IN) :: day_ref, day_ini |
---|
230 | REAL, INTENT(IN) :: start_time |
---|
231 | INTEGER, INTENT(IN) :: itau_phy |
---|
232 | REAL, OPTIONAL, INTENT(IN) :: io_lat(nbp_lat_lmdz) ! latitudes (of global grid) |
---|
233 | REAL, OPTIONAL, INTENT(IN) :: io_lon(nbp_lon_lmdz) ! longitudes (of global grid) |
---|
234 | REAL, INTENT(IN) :: date0 |
---|
235 | LOGICAL, INTENT(IN) :: chemistry_couple |
---|
236 | REAL, DIMENSION(:, :), INTENT(OUT) :: init_source |
---|
237 | REAL, DIMENSION(:, :, :, :), INTENT(OUT) :: init_tauinca |
---|
238 | REAL, DIMENSION(:, :, :, :), INTENT(OUT) :: init_pizinca |
---|
239 | REAL, DIMENSION(:, :, :, :), INTENT(OUT) :: init_cginca |
---|
240 | REAL, DIMENSION(:, :, :), INTENT(OUT) :: init_ccm |
---|
241 | |
---|
242 | CALL lmdz_inca_wrapper_abort |
---|
243 | END SUBROUTINE chemini |
---|
244 | |
---|
245 | SUBROUTINE radlwsw_inca(chemistry_couple, kdlon, kflev, dist, rmu0, fract, & |
---|
246 | solaire, paprs, pplay, tsol, albedo, alblw, t, q, size_wo, wo, & |
---|
247 | cldfra, cldemi, cldtaupd, & |
---|
248 | heat, heat0, cool, cool0, albpla, & |
---|
249 | topsw, toplw, solsw, sollw, & |
---|
250 | sollwdown, & |
---|
251 | topsw0, toplw0, solsw0, sollw0, & |
---|
252 | lwdn0, lwdn, lwup0, lwup, & |
---|
253 | swdn0, swdn, swup0, swup, & |
---|
254 | ok_ade, ok_aie, & |
---|
255 | tau_inca, piz_inca, cg_inca, & |
---|
256 | topswad_inca, solswad_inca, & |
---|
257 | topswad0_inca, solswad0_inca, & |
---|
258 | topsw_inca, topsw0_inca, & |
---|
259 | solsw_inca, solsw0_inca, & |
---|
260 | cldtaupi, topswai_inca, solswai_inca) |
---|
261 | IMPLICIT NONE |
---|
262 | LOGICAL, INTENT(IN) :: chemistry_couple |
---|
263 | INTEGER, INTENT(IN) :: kdlon, kflev |
---|
264 | REAL, INTENT(IN) :: solaire |
---|
265 | REAL, INTENT(IN) :: dist |
---|
266 | REAL, INTENT(IN) :: rmu0(:), fract(:) |
---|
267 | REAL, INTENT(IN) :: paprs(:, :), pplay(:, :) |
---|
268 | REAL, INTENT(IN) :: albedo(:), alblw(:), tsol(:) |
---|
269 | REAL, INTENT(IN) :: t(:, :), q(:, :) |
---|
270 | INTEGER, INTENT(IN) :: size_wo |
---|
271 | REAL, INTENT(IN) :: wo(:, :, :) ! column-density of ozone in a layer, in kilo-Dobsons |
---|
272 | LOGICAL, INTENT(IN) :: ok_ade, ok_aie ! switches whether to use aerosol direct (indirect) effects or not |
---|
273 | REAL, INTENT(IN) :: cldfra(:, :), cldemi(:, :), cldtaupd(:, :) |
---|
274 | REAL, INTENT(IN) :: tau_inca(:, :, :, :) ! aerosol optical properties (see aeropt.F) |
---|
275 | REAL, INTENT(IN) :: piz_inca(:, :, :, :) ! aerosol optical properties (see aeropt.F) |
---|
276 | REAL, INTENT(IN) :: cg_inca(:, :, :, :) ! aerosol optical properties (see aeropt.F) |
---|
277 | REAL, INTENT(IN) :: cldtaupi(:, :) ! cloud optical thickness for pre-industrial aerosol concentrations |
---|
278 | REAL, INTENT(OUT) :: heat(:, :), cool(:, :) |
---|
279 | REAL, INTENT(OUT) :: heat0(:, :), cool0(:, :) |
---|
280 | REAL, INTENT(OUT) :: topsw(:), toplw(:) |
---|
281 | REAL, INTENT(OUT) :: solsw(:), sollw(:), albpla(:) |
---|
282 | REAL, INTENT(OUT) :: topsw0(:), toplw0(:), solsw0(:), sollw0(:) |
---|
283 | REAL, INTENT(OUT) :: sollwdown(:) |
---|
284 | REAL, INTENT(OUT) :: swdn(:, :), swdn0(:, :) |
---|
285 | REAL, INTENT(OUT) :: swup(:, :), swup0(:, :) |
---|
286 | REAL, INTENT(OUT) :: lwdn(:, :), lwdn0(:, :) |
---|
287 | REAL, INTENT(OUT) :: lwup(:, :), lwup0(:, :) |
---|
288 | REAL, INTENT(OUT) :: topswad_inca(:), solswad_inca(:) ! output: aerosol direct forcing at TOA and surface |
---|
289 | REAL, INTENT(OUT) :: topswad0_inca(:), solswad0_inca(:) ! output: aerosol direct forcing at TOA and surface |
---|
290 | REAL, INTENT(OUT) :: topswai_inca(:), solswai_inca(:) ! output: aerosol indirect forcing atTOA and surface |
---|
291 | REAL(kind = 8), INTENT(OUT) :: topsw_inca(:, :), topsw0_inca(:, :) |
---|
292 | REAL(kind = 8), INTENT(OUT) :: solsw_inca(:, :), solsw0_inca(:, :) |
---|
293 | |
---|
294 | CALL lmdz_inca_wrapper_abort |
---|
295 | END SUBROUTINE radlwsw_inca |
---|
296 | |
---|
297 | SUBROUTINE INIT_INCA_DIM_REG(& |
---|
298 | iim, & |
---|
299 | jjm, & |
---|
300 | rlonu_l, & |
---|
301 | rlatu_l, & |
---|
302 | rlonv_l, & |
---|
303 | rlatv_l) |
---|
304 | |
---|
305 | IMPLICIT NONE |
---|
306 | INTEGER, INTENT(IN) :: iim |
---|
307 | INTEGER, INTENT(IN) :: jjm |
---|
308 | REAL, INTENT(IN) :: rlonu_l(:) |
---|
309 | REAL, INTENT(IN) :: rlatu_l(:) |
---|
310 | REAL, INTENT(IN) :: rlonv_l(:) |
---|
311 | REAL, INTENT(IN) :: rlatv_l(:) |
---|
312 | |
---|
313 | CALL lmdz_inca_wrapper_abort |
---|
314 | END SUBROUTINE INIT_INCA_DIM_REG |
---|
315 | |
---|
316 | SUBROUTINE INIT_INCA_DIM(nlon, nlev) |
---|
317 | IMPLICIT NONE |
---|
318 | INTEGER :: nlon, nlev |
---|
319 | CALL lmdz_inca_wrapper_abort |
---|
320 | END SUBROUTINE INIT_INCA_DIM |
---|
321 | |
---|
322 | SUBROUTINE AEROSOL_METEO_CALC(& |
---|
323 | calday, delt, pmid, pfull, t_seri, & |
---|
324 | flxrcv, flxscv, flxrst, flxsst, pctsrf, & |
---|
325 | area, rlat, rlon, u10m, v10m) |
---|
326 | IMPLICIT NONE |
---|
327 | REAL, INTENT(IN) :: calday |
---|
328 | REAL, INTENT(IN) :: delt ! [s] |
---|
329 | REAL, INTENT(IN) :: pmid(:, :) ! [Pa] |
---|
330 | REAL, INTENT(IN) :: pfull(:, :) ! [Pa] |
---|
331 | REAL, INTENT(IN) :: t_seri(:, :) ! [K] |
---|
332 | REAL, INTENT(IN) :: flxrst(:, :) ! liquid water flux (stratiform) kgH2O/m2/s |
---|
333 | REAL, INTENT(IN) :: flxrcv(:, :) ! liquid water flux (convection ) kgH2O/m2/s |
---|
334 | REAL, INTENT(IN) :: flxsst(:, :) ! solid water flux (stratiform) kgH2O/m2/s |
---|
335 | REAL, INTENT(IN) :: flxscv(:, :) ! solid water flux (convection) kgH2O/m2/s |
---|
336 | REAL, INTENT(IN) :: pctsrf(:, :) ! subsurface fraction (0..1) |
---|
337 | REAL, INTENT(IN) :: area(:) ! surface area of grid box [m2] |
---|
338 | REAL, INTENT(IN) :: rlon(:) ! longitude |
---|
339 | REAL, INTENT(IN) :: rlat(:) ! latitude |
---|
340 | REAL, INTENT(IN) :: u10m(:, :) ! vents a 10m |
---|
341 | REAL, INTENT(IN) :: v10m(:, :) ! vents a 10m |
---|
342 | |
---|
343 | CALL lmdz_inca_wrapper_abort |
---|
344 | END SUBROUTINE AEROSOL_METEO_CALC |
---|
345 | |
---|
346 | SUBROUTINE init_inca_para(nlon, nlat, nlev, klon, mpi_size, distrib_phys, nvertex, grid_type, communicator) |
---|
347 | INTEGER :: nlon, nlat, nlev, klon, mpi_size, distrib_phys(:), communicator, nvertex, grid_type |
---|
348 | CALL lmdz_inca_wrapper_abort |
---|
349 | END SUBROUTINE init_inca_para |
---|
350 | |
---|
351 | SUBROUTINE aerosolmain(aerosol_couple,tr_seri,pdtphys, & |
---|
352 | pplay,pdel,prfl,pmflxr,psfl, & |
---|
353 | pmflxs,zpmfu,itop_con,ibas_con, & |
---|
354 | pphi,cell_area,nstep,rneb,t_seri, & |
---|
355 | rh,tau_aero,piz_aero,cg_aero, & |
---|
356 | rfname,ccm,lafin) |
---|
357 | REAL :: aerosol_couple,tr_seri,pdtphys, & |
---|
358 | pplay,pdel,prfl,pmflxr,psfl, & |
---|
359 | pmflxs,zpmfu,itop_con,ibas_con, & |
---|
360 | pphi,cell_area,rneb,t_seri, & |
---|
361 | rh,tau_aero,piz_aero,cg_aero, & |
---|
362 | rfname,ccm,lafin |
---|
363 | INTEGER :: nstep |
---|
364 | CALL lmdz_inca_wrapper_abort |
---|
365 | END SUBROUTINE aerosolmain |
---|
366 | |
---|
367 | SUBROUTINE chemmain(tr_seri, xlon, xlat, t_seri, pplay, paprs, pphi, pphis, presnivs, sh, debutphy) |
---|
368 | REAL :: tr_seri(:,:,:), xlon(:), xlat(:), t_seri(:,:), pplay(:,:), paprs(:,:), pphi(:,:), pphis(:), presnivs(:), sh(:,:) |
---|
369 | LOGICAL :: debutphy |
---|
370 | CALL lmdz_inca_wrapper_abort |
---|
371 | END SUBROUTINE chemmain |
---|
372 | |
---|
373 | #endif |
---|