Ignore:
Timestamp:
Jul 20, 2024, 11:17:09 PM (7 months ago)
Author:
abarral
Message:

Move lmdz_netcdf_format.F90 -> lmdz_cppkeys_wrapper.F90 to handle other CPP keys
Replace all (except wrapper) use of CPP_PHYS by fortran logical
Refactor makelmdz_fcm (put blocks into functions, use modern bash)

Location:
LMDZ6/branches/Amaury_dev/libf/phylmd
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/Amaury_dev/libf/phylmd/infotrac_phy.F90

    r5082 r5091  
    136136   USE CHEM_REP, ONLY: Init_chem_rep_trac
    137137#endif
     138   USE lmdz_cppkeys_wrapper, ONLY: CPPKEY_INCA
    138139   IMPLICIT NONE
    139140!==============================================================================================================================
     
    162163! Local variables
    163164   INTEGER, ALLOCATABLE :: hadv(:), vadv(:)                          !--- Horizontal/vertical transport scheme number
    164 #ifdef INCA
    165165   INTEGER, ALLOCATABLE :: had (:), hadv_inca(:), conv_flg_inca(:), &!--- Variables specific to INCA
    166166                           vad (:), vadv_inca(:),  pbl_flg_inca(:)
    167167   CHARACTER(LEN=8), ALLOCATABLE :: solsym_inca(:)                   !--- Tracers names for INCA
    168168   INTEGER :: nqINCA
    169 #endif
    170169#ifdef CPP_StratAer
    171170   CHARACTER(LEN=maxlen), ALLOCATABLE :: tnames(:)
     
    224223   SELECT CASE(type_trac)
    225224      CASE('inca', 'inco')
    226 #ifndef INCA
     225   IF (CPPKEY_INCA) THEN
    227226         CALL abort_physic(modname, 'You must add cpp key INCA and compile with INCA code', 1)
    228 #endif
     227   END IF
    229228      CASE('repr')
    230229#ifndef REPROBUS
     
    267266   IF(fType == 1 .AND. ANY(['inca','inco']==type_trac) .AND. lInit) THEN  !=== FOUND OLD STYLE INCA "traceur.def"
    268267   !---------------------------------------------------------------------------------------------------------------------------
    269 #ifdef INCA
     268   IF (CPPKEY_INCA) THEN
    270269      nqo = SIZE(tracers) - nqCO2
    271270      CALL Init_chem_inca_trac(nqINCA)                               !--- Get nqINCA from INCA
     
    298297      IF(setGeneration(tracers)) CALL abort_physic(modname,'See below',1) !- SET FIELDS %iGeneration, %gen0Name
    299298      DEALLOCATE(had, hadv_inca, vad, vadv_inca, conv_flg_inca, pbl_flg_inca, solsym_inca)
    300 #endif
     299   END IF
    301300   !---------------------------------------------------------------------------------------------------------------------------
    302301   ELSE                                                              !=== OTHER CASES (OLD OR NEW FORMAT, NO INCA MODULE)
     
    307306      nbtr   = nqtrue-COUNT(delPhase(tracers(:)%gen0Name) == 'H2O' &
    308307                               .AND. tracers(:)%component == 'lmdz') !--- Number of tracers passed to phytrac
    309 #ifdef INCA
     308   IF (CPPKEY_INCA) THEN
    310309      nqINCA = COUNT(tracers(:)%component == 'inca')
    311 #endif
     310   END IF
    312311      lerr = getKey('hadv', hadv, ky=tracers(:)%keys)
    313312      lerr = getKey('vadv', vadv, ky=tracers(:)%keys)
     
    419418   CALL msg('niso   = '//TRIM(int2str(niso)),   modname)
    420419   CALL msg('ntiso  = '//TRIM(int2str(ntiso)),  modname)
    421 #ifdef INCA
    422    CALL msg('nqCO2  = '//TRIM(int2str(nqCO2)),  modname)
    423    CALL msg('nqINCA = '//TRIM(int2str(nqINCA)), modname)
    424 #endif
     420   IF (CPPKEY_INCA) THEN
     421      CALL msg('nqCO2  = '//TRIM(int2str(nqCO2)),  modname)
     422      CALL msg('nqINCA = '//TRIM(int2str(nqINCA)), modname)
     423   END IF
    425424   t => tracers
    426425   CALL msg('Information stored in infotrac_phy :', modname)
  • LMDZ6/branches/Amaury_dev/libf/phylmd/oasis.F90

    r4754 r5091  
    122122    USE mod_phys_lmdz_mpi_data, ONLY: klon_mpi_para_nb
    123123    use config_ocean_skin_m, only: activate_ocean_skin
     124    USE lmdz_cppkeys_wrapper, ONLY: CPPKEY_INCA
    124125
    125126! Local variables
     
    356357
    357358
    358 #ifdef INCA
     359  IF (CPPKEY_INCA) THEN
    359360    IF (dms_cycle_cpl .OR. n2o_cycle_cpl) THEN
    360361       CALL init_inca_oasis(inforecv(idr_ocedms:idr_ocen2o))
    361362    ENDIF
    362 #endif
     363  END IF
    363364 
    364365!************************************************************************************
  • LMDZ6/branches/Amaury_dev/libf/phylmd/physiq_mod.F90

    r5088 r5091  
    111111
    112112
    113 #ifdef INCA
    114113    USE geometry_mod,      ONLY: longitude, latitude, boundslon, boundslat, ind_cell_glo
    115114    USE time_phylmdz_mod,  ONLY: ndays
    116115    USE infotrac_phy,      ONLY: nqCO2
    117 #endif
    118116#ifdef REPROBUS
    119117    USE chem_rep, ONLY: Init_chem_rep_xjour, d_q_rep, d_ql_rep, d_qi_rep, &
     
    122120    USE strataer_emiss_mod, ONLY: strataer_emiss_init
    123121#endif
    124 #if defined INCA || defined REPROBUS
    125122    USE time_phylmdz_mod,    ONLY: annee_ref, day_ini, day_ref, start_time
    126123    USE vertical_layers_mod, ONLY: aps, bps, ap, bp
    127 #endif
    128124
    129125
     
    367363       reffclwc, cldnvi, lcc3d, lcc3dcon, lcc3dstra, icc3dcon, icc3dstra
    368364       USE output_physiqex_mod, ONLY: output_physiqex
     365    USE lmdz_cppkeys_wrapper, ONLY: CPPKEY_INCA
    369366
    370367
     
    12381235    REAL, dimension(klon, klev) :: cldfrarad   ! fraction nuageuse
    12391236
    1240 #ifdef INCA
    12411237    REAL :: calday, zxsnow_dummy(klon)
    12421238    ! set de variables utilisees pour l'initialisation des valeurs provenant de INCA
     
    12451241    REAL, DIMENSION(klon,klev,naero_grp,nbands) :: init_cginca
    12461242    REAL, DIMENSION(klon,klev,nbands) :: init_ccminca
    1247 #endif
    12481243    REAL, DIMENSION(klon,nbtr) :: init_source
    12491244
     
    21812176       !
    21822177       IF (ANY(type_trac == ['inca','inco'])) THEN ! ModThL
    2183 #ifdef INCA
     2178IF (CPPKEY_INCA) THEN
    21842179          CALL VTe(VTphysiq)
    21852180          CALL VTb(VTinca)
     
    22592254          CALL VTe(VTinca)
    22602255          CALL VTb(VTphysiq)
    2261 #endif
     2256END IF
    22622257       ENDIF
    22632258       !
     
    26362631             B=Z2-fac*alog(pplay(i,itroprep(i)))
    26372632             ttrop(i)= fac*alog(ptrop(i))+B
    2638 !       
     2633!
    26392634             Z1= 1.e-3 * ( pphi(i,itroprep(i)+1)+pphis(i) ) / gravit
    26402635             Z2= 1.e-3 * ( pphi(i,itroprep(i))  +pphis(i) ) / gravit
     
    41564151
    41574152    IF (ANY(type_trac == ['inca','inco'])) THEN ! ModThL
    4158 #ifdef INCA
     4153IF (CPPKEY_INCA) THEN
    41594154       CALL VTe(VTphysiq)
    41604155       CALL VTb(VTinca)
     
    42094204       CALL VTe(VTinca)
    42104205       CALL VTb(VTphysiq)
    4211 #endif
     4206END IF
    42124207    ENDIF !type_trac = inca or inco
    42134208    IF (type_trac == 'repr') THEN
     
    45004495
    45014496       IF (aerosol_couple.AND.config_inca=='aero') THEN
    4502 #ifdef INCA
     4497IF (CPPKEY_INCA) THEN
    45034498          CALL radlwsw_inca  &
    45044499               (chemistry_couple, kdlon,kflev,dist, rmu0, fract, solaire, &
     
    45204515               cldtaupirad, &
    45214516               topswai_aero, solswai_aero)
    4522 #endif
     4517END IF
    45234518       ELSE
    45244519          !
     
    55055500    !
    55065501    IF (ANY(type_trac == ['inca','inco'])) THEN
    5507 #ifdef INCA
     5502IF (CPPKEY_INCA) THEN
    55085503       CALL VTe(VTphysiq)
    55095504       CALL VTb(VTinca)
     
    55255520       CALL VTe(VTinca)
    55265521       CALL VTb(VTphysiq)
    5527 #endif
     5522END IF
    55285523    ENDIF
    55295524
     
    57815776       IF (using_xios) THEN
    57825777
    5783 #ifdef INCA
     5778IF (CPPKEY_INCA) THEN
    57845779          IF (type_trac == 'inca') THEN
    57855780             IF (is_omp_master .AND. grid_type==unstructured) THEN
     
    57875782             ENDIF
    57885783          ENDIF
    5789 #endif
     5784END IF
    57905785
    57915786          IF (is_omp_master .and. grid_type==unstructured) CALL xios_context_finalize
  • LMDZ6/branches/Amaury_dev/libf/phylmd/phytrac_mod.F90

    r5087 r5091  
    10731073
    10741074          ! *********   end old version
    1075        ENDIF  !  iflag_lscav . EQ. 1, 2, 3 or 4
     1075       ENDIF  !  iflag_lscav  .EQ. 1, 2, 3 or 4
    10761076       !
    10771077    ENDIF !  lessivage
  • LMDZ6/branches/Amaury_dev/libf/phylmd/tracinca_mod.F90

    r4500 r5091  
    6262    USE mod_grid_phy_lmdz, ONLY: nbp_lon, nbp_lat
    6363    USE aero_mod, ONLY : naero_grp
     64    USE lmdz_cppkeys_wrapper, ONLY: CPPKEY_INCA
    6465    IMPLICIT NONE
    6566   
     
    145146    END DO
    146147 
    147 #ifdef INCA
     148IF (CPPKEY_INCA) THEN
    148149    IF (config_inca == 'aero' .OR. config_inca == 'chem') THEN
    149150       zpmfu(:,:)=pmfu(:,:)       
     
    159160         rh,tau_aero,piz_aero,cg_aero,   &
    160161         rfname,ccm,lafin)
    161 #endif
    162 
    163 
    164 #ifdef INCA
     162
    165163    CALL chemmain (tr_seri, &   !mmr
    166164         nstep,      & !nstep
     
    198196         nbp_lat,    & !ny
    199197         source )
    200 #endif
     198END IF
    201199   
    202200    CALL VTe(VTinca)
Note: See TracChangeset for help on using the changeset viewer.