Ignore:
Timestamp:
Sep 10, 2024, 4:25:29 PM (5 months ago)
Author:
abarral
Message:

(WIP) Replace REPROBUS CPP KEY by logical
properly name modules

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  
    88!      CPP_PHYS       -> CPPKEY_PHYS
    99!      INCA           -> CPPKEY_INCA   ! -> also in lmdz_inca_wrappers.F90
     10!      REPROBUS       -> CPPKEY_REPROBUS ! -> also in lmdz_reprobus_wrappers.F90
    1011!      CPP_StratAer   -> CPPKEY_STRATAER
    1112!      CPP_DUST       -> CPPKEY_DUST
     
    2324  PUBLIC nf90_format, CPPKEY_PHYS, CPPKEY_INCA, CPPKEY_STRATAER, CPPKEY_DUST, &
    2425          CPPKEY_DEBUGIO, CPPKEY_INLANDSIS, CPPKEY_OUTPUTPHYSSCM, CPPKEY_COSP, CPPKEY_COSP2, &
    25           CPPKEY_COSPV2
     26          CPPKEY_COSPV2, CPPKEY_REPROBUS
    2627
    2728#ifdef NC_DOUBLE
     
    4142#else
    4243  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.
    4350#endif
    4451
  • LMDZ6/branches/Amaury_dev/libf/misc/lmdz_inca_wrappers.F90

    r5117 r5182  
    77END SUBROUTINE lmdz_inca_wrapper_abort
    88
    9 SUBROUTINE Init_chem_inca_trac(NBTR)
     9SUBROUTINE init_chem_inca_trac(nbtr)
    1010  IMPLICIT NONE
    1111  INTEGER, INTENT(OUT) :: nbtr
    1212
    1313  CALL lmdz_inca_wrapper_abort
    14 END SUBROUTINE Init_chem_inca_trac
     14END SUBROUTINE init_chem_inca_trac
    1515
    1616SUBROUTINE init_transport(&
  • LMDZ6/branches/Amaury_dev/libf/misc/lmdz_mpi.F90

    r4600 r5182  
     1MODULE lmdz_mpi
    12#ifdef CPP_MPI
    2 MODULE lmdz_mpi
    3 
    43  INCLUDE 'mpif.h'
    54  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
    620END MODULE lmdz_mpi
    7 
    8 #else
    9 
    10 MODULE lmdz_mpi
    11   LOGICAL,PARAMETER :: using_mpi = .FALSE.
    12 
    13   INTEGER, PARAMETER         :: MPI_REAL8 = 1
    14   INTEGER, PARAMETER         :: MPI_INTEGER = 1
    15   INTEGER, PARAMETER         :: MPI_CHARACTER = 1
    16   INTEGER, PARAMETER         :: MPI_LOGICAL = 1
    17   INTEGER, PARAMETER         :: MPI_SUM = 1
    18   INTEGER, PARAMETER         :: MPI_MIN = 1
    19   INTEGER, PARAMETER         :: MPI_COMM_WORLD = 1
    20   INTEGER, PARAMETER         :: MPI_STATUS_SIZE = 1
    21   INTEGER, PARAMETER         :: MPI_THREAD_SERIALIZED =1
    22   INTEGER(kind=8), PARAMETER :: MPI_ADDRESS_KIND = 1
    23   INTEGER, PARAMETER         :: MPI_INFO_NULL = 1
    24 
    25 END MODULE lmdz_mpi
    26 
    27 #endif
  • LMDZ6/branches/Amaury_dev/libf/misc/lmdz_reprobus_wrappers.F90

    r5173 r5182  
    1 ! inca SUBROUTINE wrappers
     1! reprobus SUBROUTINE wrappers
    22
    3 #ifndef INCA
     3MODULE lmdz_reprobus_wrappers
    44
    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
    88
    9 SUBROUTINE Init_chem_inca_trac(NBTR)
    10   IMPLICIT NONE
    11   INTEGER, INTENT(OUT) :: nbtr
     9CONTAINS
    1210
    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
    33914
    34015#endif
     16END MODULE lmdz_reprobus_wrappers
Note: See TracChangeset for help on using the changeset viewer.