[5103] | 1 | ! inca SUBROUTINE wrappers |
---|
[4600] | 2 | |
---|
[5103] | 3 | #ifndef INCA |
---|
[4600] | 4 | |
---|
[5103] | 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 |
---|
[4600] | 8 | |
---|
[5182] | 9 | SUBROUTINE init_chem_inca_trac(nbtr) |
---|
[5103] | 10 | IMPLICIT NONE |
---|
[5117] | 11 | INTEGER, INTENT(OUT) :: nbtr |
---|
[4600] | 12 | |
---|
[5103] | 13 | CALL lmdz_inca_wrapper_abort |
---|
[5182] | 14 | END SUBROUTINE init_chem_inca_trac |
---|
[4600] | 15 | |
---|
[5103] | 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 |
---|
[5117] | 23 | INTEGER, DIMENSION(:), INTENT(OUT) :: hadv_flg_lmdz |
---|
| 24 | INTEGER, DIMENSION(:), INTENT(OUT) :: vadv_flg_lmdz |
---|
[4600] | 25 | |
---|
[5117] | 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 |
---|
[4600] | 29 | |
---|
[5103] | 30 | CALL lmdz_inca_wrapper_abort |
---|
| 31 | END SUBROUTINE init_transport |
---|
[4600] | 32 | |
---|
[5103] | 33 | SUBROUTINE finalize_inca |
---|
| 34 | IMPLICIT NONE |
---|
| 35 | CALL lmdz_inca_wrapper_abort |
---|
| 36 | END SUBROUTINE finalize_inca |
---|
[4600] | 37 | |
---|
[5103] | 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 |
---|
[5117] | 78 | INTEGER, INTENT(IN) :: ijour ! jour julien |
---|
| 79 | REAL, INTENT(IN) :: gmtime ! input-R-temps universel dans la journee (0 a 86400 s) |
---|
[5103] | 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 |
---|
[5117] | 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 |
---|
[5103] | 112 | INTEGER, INTENT(IN) :: nstep ! model time step |
---|
[4600] | 113 | |
---|
[5103] | 114 | CALL lmdz_inca_wrapper_abort |
---|
| 115 | END SUBROUTINE CHEMHOOK_BEGIN |
---|
[4600] | 116 | |
---|
[5103] | 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 |
---|
[4600] | 144 | |
---|
[5103] | 145 | CALL lmdz_inca_wrapper_abort |
---|
| 146 | END SUBROUTINE chemhook_end |
---|
[4600] | 147 | |
---|
[5103] | 148 | SUBROUTINE chemtime(istp, date0, dt, itap) |
---|
| 149 | IMPLICIT NONE |
---|
[5117] | 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 |
---|
[5103] | 154 | CALL lmdz_inca_wrapper_abort |
---|
| 155 | END SUBROUTINE chemtime |
---|
[4600] | 156 | |
---|
[5103] | 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 |
---|
[5117] | 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 |
---|
[4600] | 172 | |
---|
[5103] | 173 | CALL lmdz_inca_wrapper_abort |
---|
| 174 | END SUBROUTINE init_const_lmdz |
---|
[4600] | 175 | |
---|
[5103] | 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(:) |
---|
[4600] | 188 | |
---|
[5103] | 189 | CALL lmdz_inca_wrapper_abort |
---|
| 190 | END SUBROUTINE init_inca_geometry |
---|
[4600] | 191 | |
---|
[5103] | 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(:, :) |
---|
[5117] | 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 |
---|
[5103] | 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 |
---|
[4600] | 241 | |
---|
[5103] | 242 | CALL lmdz_inca_wrapper_abort |
---|
| 243 | END SUBROUTINE chemini |
---|
[4600] | 244 | |
---|
[5103] | 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 |
---|
[5117] | 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(:, :) |
---|
[4600] | 293 | |
---|
[5103] | 294 | CALL lmdz_inca_wrapper_abort |
---|
| 295 | END SUBROUTINE radlwsw_inca |
---|
[4600] | 296 | |
---|
[5103] | 297 | SUBROUTINE INIT_INCA_DIM_REG(& |
---|
| 298 | iim, & |
---|
| 299 | jjm, & |
---|
| 300 | rlonu_l, & |
---|
| 301 | rlatu_l, & |
---|
| 302 | rlonv_l, & |
---|
| 303 | rlatv_l) |
---|
[4600] | 304 | |
---|
[5103] | 305 | IMPLICIT NONE |
---|
[5117] | 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(:) |
---|
[4600] | 312 | |
---|
[5103] | 313 | CALL lmdz_inca_wrapper_abort |
---|
| 314 | END SUBROUTINE INIT_INCA_DIM_REG |
---|
| 315 | |
---|
[5106] | 316 | SUBROUTINE AEROSOL_METEO_CALC(& |
---|
[5103] | 317 | calday, delt, pmid, pfull, t_seri, & |
---|
| 318 | flxrcv, flxscv, flxrst, flxsst, pctsrf, & |
---|
| 319 | area, rlat, rlon, u10m, v10m) |
---|
| 320 | IMPLICIT NONE |
---|
[5117] | 321 | REAL, INTENT(IN) :: calday |
---|
| 322 | REAL, INTENT(IN) :: delt ! [s] |
---|
| 323 | REAL, INTENT(IN) :: pmid(:, :) ! [Pa] |
---|
| 324 | REAL, INTENT(IN) :: pfull(:, :) ! [Pa] |
---|
| 325 | REAL, INTENT(IN) :: t_seri(:, :) ! [K] |
---|
| 326 | REAL, INTENT(IN) :: flxrst(:, :) ! liquid water flux (stratiform) kgH2O/m2/s |
---|
| 327 | REAL, INTENT(IN) :: flxrcv(:, :) ! liquid water flux (convection ) kgH2O/m2/s |
---|
| 328 | REAL, INTENT(IN) :: flxsst(:, :) ! solid water flux (stratiform) kgH2O/m2/s |
---|
| 329 | REAL, INTENT(IN) :: flxscv(:, :) ! solid water flux (convection) kgH2O/m2/s |
---|
| 330 | REAL, INTENT(IN) :: pctsrf(:, :) ! subsurface fraction (0..1) |
---|
| 331 | REAL, INTENT(IN) :: area(:) ! surface area of grid box [m2] |
---|
| 332 | REAL, INTENT(IN) :: rlon(:) ! longitude |
---|
| 333 | REAL, INTENT(IN) :: rlat(:) ! latitude |
---|
| 334 | REAL, INTENT(IN) :: u10m(:, :) ! vents a 10m |
---|
| 335 | REAL, INTENT(IN) :: v10m(:, :) ! vents a 10m |
---|
[5103] | 336 | |
---|
| 337 | CALL lmdz_inca_wrapper_abort |
---|
| 338 | END SUBROUTINE AEROSOL_METEO_CALC |
---|
| 339 | |
---|
[4600] | 340 | #endif |
---|