Changeset 5182 for LMDZ6/branches/Amaury_dev/libf/misc
- Timestamp:
- Sep 10, 2024, 4:25:29 PM (5 months ago)
- Location:
- LMDZ6/branches/Amaury_dev/libf/misc
- Files:
-
- 3 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev/libf/misc/lmdz_cppkeys_wrapper.F90
r5151 r5182 8 8 ! CPP_PHYS -> CPPKEY_PHYS 9 9 ! INCA -> CPPKEY_INCA ! -> also in lmdz_inca_wrappers.F90 10 ! REPROBUS -> CPPKEY_REPROBUS ! -> also in lmdz_reprobus_wrappers.F90 10 11 ! CPP_StratAer -> CPPKEY_STRATAER 11 12 ! CPP_DUST -> CPPKEY_DUST … … 23 24 PUBLIC nf90_format, CPPKEY_PHYS, CPPKEY_INCA, CPPKEY_STRATAER, CPPKEY_DUST, & 24 25 CPPKEY_DEBUGIO, CPPKEY_INLANDSIS, CPPKEY_OUTPUTPHYSSCM, CPPKEY_COSP, CPPKEY_COSP2, & 25 CPPKEY_COSPV2 26 CPPKEY_COSPV2, CPPKEY_REPROBUS 26 27 27 28 #ifdef NC_DOUBLE … … 41 42 #else 42 43 LOGICAL, PARAMETER :: CPPKEY_INCA = .FALSE. 44 #endif 45 46 #ifdef REPROBUS 47 LOGICAL, PARAMETER :: CPPKEY_REPROBUS = .TRUE. 48 #else 49 LOGICAL, PARAMETER :: CPPKEY_REPROBUS = .FALSE. 43 50 #endif 44 51 -
LMDZ6/branches/Amaury_dev/libf/misc/lmdz_inca_wrappers.F90
r5117 r5182 7 7 END SUBROUTINE lmdz_inca_wrapper_abort 8 8 9 SUBROUTINE Init_chem_inca_trac(NBTR)9 SUBROUTINE init_chem_inca_trac(nbtr) 10 10 IMPLICIT NONE 11 11 INTEGER, INTENT(OUT) :: nbtr 12 12 13 13 CALL lmdz_inca_wrapper_abort 14 END SUBROUTINE Init_chem_inca_trac14 END SUBROUTINE init_chem_inca_trac 15 15 16 16 SUBROUTINE init_transport(& -
LMDZ6/branches/Amaury_dev/libf/misc/lmdz_mpi.F90
r4600 r5182 1 MODULE lmdz_mpi 1 2 #ifdef CPP_MPI 2 MODULE lmdz_mpi3 4 3 INCLUDE 'mpif.h' 5 4 LOGICAL,PARAMETER :: using_mpi = .TRUE. 5 #else 6 LOGICAL, PARAMETER :: using_mpi = .FALSE. 7 8 INTEGER, PARAMETER :: MPI_REAL8 = 1 9 INTEGER, PARAMETER :: MPI_INTEGER = 1 10 INTEGER, PARAMETER :: MPI_CHARACTER = 1 11 INTEGER, PARAMETER :: MPI_LOGICAL = 1 12 INTEGER, PARAMETER :: MPI_SUM = 1 13 INTEGER, PARAMETER :: MPI_MIN = 1 14 INTEGER, PARAMETER :: MPI_COMM_WORLD = 1 15 INTEGER, PARAMETER :: MPI_STATUS_SIZE = 1 16 INTEGER, PARAMETER :: MPI_THREAD_SERIALIZED = 1 17 INTEGER(kind = 8), PARAMETER :: MPI_ADDRESS_KIND = 1 18 INTEGER, PARAMETER :: MPI_INFO_NULL = 1 19 #endif 6 20 END MODULE lmdz_mpi 7 8 #else9 10 MODULE lmdz_mpi11 LOGICAL,PARAMETER :: using_mpi = .FALSE.12 13 INTEGER, PARAMETER :: MPI_REAL8 = 114 INTEGER, PARAMETER :: MPI_INTEGER = 115 INTEGER, PARAMETER :: MPI_CHARACTER = 116 INTEGER, PARAMETER :: MPI_LOGICAL = 117 INTEGER, PARAMETER :: MPI_SUM = 118 INTEGER, PARAMETER :: MPI_MIN = 119 INTEGER, PARAMETER :: MPI_COMM_WORLD = 120 INTEGER, PARAMETER :: MPI_STATUS_SIZE = 121 INTEGER, PARAMETER :: MPI_THREAD_SERIALIZED =122 INTEGER(kind=8), PARAMETER :: MPI_ADDRESS_KIND = 123 INTEGER, PARAMETER :: MPI_INFO_NULL = 124 25 END MODULE lmdz_mpi26 27 #endif -
LMDZ6/branches/Amaury_dev/libf/misc/lmdz_reprobus_wrappers.F90
r5173 r5182 1 ! incaSUBROUTINE wrappers1 ! reprobus SUBROUTINE wrappers 2 2 3 #ifndef INCA 3 MODULE lmdz_reprobus_wrappers 4 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 5 #ifdef REPROBUS 6 USE CHEM_REP, ONLY: init_chem_rep_trac 7 #else 8 8 9 SUBROUTINE Init_chem_inca_trac(NBTR) 10 IMPLICIT NONE 11 INTEGER, INTENT(OUT) :: nbtr 9 CONTAINS 12 10 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 AEROSOL_METEO_CALC(& 317 calday, delt, pmid, pfull, t_seri, & 318 flxrcv, flxscv, flxrst, flxsst, pctsrf, & 319 area, rlat, rlon, u10m, v10m) 320 IMPLICIT NONE 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 336 337 CALL lmdz_inca_wrapper_abort 338 END SUBROUTINE AEROSOL_METEO_CALC 11 SUBROUTINE lmdz_reprobus_wrapper_abort 12 STOP 'REPROBUS key undefined, must not enter in REPROBUS wrappers ==> aborting' 13 END SUBROUTINE lmdz_reprobus_wrapper_abort 339 14 340 15 #endif 16 END MODULE lmdz_reprobus_wrappers
Note: See TracChangeset
for help on using the changeset viewer.