Changeset 6126 for LMDZ6/trunk/libf


Ignore:
Timestamp:
Mar 24, 2026, 5:45:21 PM (8 days ago)
Author:
idelkadi
Message:

Cleaning up the LMDZ physical model (physiq_mod.F90): reducing the number of arguments in calls to output routines

Location:
LMDZ6/trunk/libf
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/phylmd/Dust/phys_output_write_spl_mod.F90

    r6059 r6126  
    8181  ! ug Routine pour définir (lors du premier passageà) ET sortir les variables
    8282  SUBROUTINE phys_output_write_spl(itap, pdtphys, paprs, pphis, &
    83        pplay, lmax_th, aerosol_couple,         &
    84        ok_ade, ok_aie, ivap, ok_sync, &
     83       pplay, lmax_th, &
     84       !aerosol_couple,         &
     85       !ok_ade, ok_aie,
     86       ivap, ok_sync, &
    8587       ptconv, read_climoz, clevSTD, ptconvth, &
    86        d_t, qx, d_qx, d_tr_dyn, zmasse, flag_aerosol, flag_aerosol_strat, ok_cdnc)
     88       d_t, qx, d_qx, d_tr_dyn, zmasse)
     89       !, flag_aerosol, flag_aerosol_strat, ok_cdnc)
    8790
    8891    ! This subroutine does the actual writing of diagnostics that were
     
    9396        USE dimphy, ONLY: klon, klev, klevp1
    9497    USE ocean_slab_mod, ONLY: nslay
     98    USE conf_phys_m, ONLY: aerosol_couple, ok_ade, ok_aie, ok_cdnc, &
     99                           flag_aerosol, flag_aerosol_strat
    95100    USE phys_output_ctrlout_mod, ONLY: o_phis, o_aire, is_ter, is_lic, is_oce, &
    96101         is_ave, is_sic, o_contfracATM, o_contfracOR, &
     
    406411    INTEGER :: itap, ivap, read_climoz
    407412    INTEGER, DIMENSION(klon) :: lmax_th
    408     LOGICAL :: aerosol_couple, ok_sync
    409     LOGICAL :: ok_ade, ok_aie
     413    !LOGICAL :: aerosol_couple, ok_sync
     414    LOGICAL :: ok_sync
     415    !LOGICAL :: ok_ade, ok_aie
    410416    LOGICAL, DIMENSION(klon, klev) :: ptconv, ptconvth
    411417    REAL :: pdtphys
     
    418424    REAL,DIMENSION(klon,klev,nbtr),INTENT(IN)    :: d_tr_dyn
    419425    REAL, DIMENSION(klon, nbp_lev) :: zmasse
    420     INTEGER :: flag_aerosol_strat
    421     INTEGER :: flag_aerosol
    422     LOGICAL :: ok_cdnc
     426    !INTEGER :: flag_aerosol_strat
     427    !INTEGER :: flag_aerosol
     428    !LOGICAL :: ok_cdnc
    423429    REAL, DIMENSION(3) :: freq_moyNMC
    424430
  • LMDZ6/trunk/libf/phylmd/phys_output_mod.F90

    r5927 r6126  
    3131
    3232  SUBROUTINE phys_output_open(rlon,rlat,pim,tabij,ipt,jpt,plon,plat, &
    33        jjmp1,nlevSTD,clevSTD,rlevSTD, dtime, ok_veget, &
    34        type_ocean, iflag_pbl,iflag_pbl_split,ok_mensuel,ok_journe, &
    35        ok_hf,ok_instan,ok_LES,ok_ade,ok_aie, read_climoz, &
    36        phys_out_filestations, &
    37        aerosol_couple, flag_aerosol_strat, &
    38        pdtphys, paprs, pphis, pplay, lmax_th, ptconv, ptconvth, ivap, &
     33       jjmp1,nlevSTD,clevSTD,rlevSTD, dtime, read_climoz, &
     34       phys_out_filestations, pdtphys, paprs, pphis, &
     35       pplay, lmax_th, ptconv, ptconvth, ivap, &
    3936       d_u, d_t, qx, d_qx, zmasse, ok_sync)   
    4037
     
    5350    USE vertical_layers_mod, ONLY: ap,bp,preff,presnivs, aps, bps, pseudoalt, presinter
    5451    USE time_phylmdz_mod, ONLY: day_ini, itau_phy, start_time, annee_ref, day_ref
    55 
    5652    USE AERO_MOD, ONLY : nbands_lw_rrtm !FC
    57 
    5853    ! ug Pour les sorties XIOS
    5954    USE wxios_mod
     
    6560#endif
    6661#endif
    67 
    6862    USE clesphys_mod_h
    6963    USE lmdz_cppkeys_wrapper, ONLY: CPPKEY_STRATAER
    7064    USE yomcst_mod_h
     65    USE surface_data,     ONLY : type_ocean, ok_veget
     66    USE conf_phys_m, ONLY : ok_mensuel,ok_journe, &
     67                            ok_hf,ok_instan,ok_LES,ok_ade,ok_aie, &
     68                            aerosol_couple, flag_aerosol_strat
     69    USE compbl_mod_h, ONLY : iflag_pbl,iflag_pbl_split
    7170
    7271    IMPLICIT NONE
     
    9695    INTEGER                               :: jjmp1
    9796    INTEGER                               :: nlevSTD, radpas
    98     LOGICAL                               :: ok_mensuel, ok_journe, ok_hf, ok_instan
    99     LOGICAL                               :: ok_LES,ok_ade,ok_aie
    100     INTEGER                               :: flag_aerosol_strat
    101     LOGICAL                               :: aerosol_couple
    10297    INTEGER, INTENT(IN)::  read_climoz ! read ozone climatology
    10398    !     Allowed values are 0, 1 and 2
     
    114109    INTEGER                               :: nsrf, k, iq, iff, i, j, ilev, itr, itrb, ixt, iiso, izone
    115110    INTEGER                               :: naero
    116     LOGICAL                               :: ok_veget
    117     INTEGER                               :: iflag_pbl
    118     INTEGER                               :: iflag_pbl_split
    119111    CHARACTER(LEN=4)                      :: bb2
    120112    CHARACTER(LEN=2)                      :: bb3
    121     CHARACTER(LEN=6)                      :: type_ocean
    122113    INTEGER, DIMENSION(nbp_lon*jjmp1)         ::  ndex2d
    123114    INTEGER, DIMENSION(nbp_lon*jjmp1*klev)    :: ndex3d
  • LMDZ6/trunk/libf/phylmd/phys_output_write_mod.F90

    r6116 r6126  
    1717  ! ug Routine pour définir (lors du premier passage) ET sortir les variables
    1818  SUBROUTINE phys_output_write(itap, pdtphys, paprs, pphis, &
    19        pplay, lmax_th, aerosol_couple,         &
    20        ok_ade, ok_aie, ok_volcan, ivap, iliq, isol, ibs, ok_sync, &
     19       pplay, lmax_th, ivap, iliq, isol, ibs, ok_sync, &
    2120       ptconv, read_climoz, clevSTD, ptconvth, &
    22        d_u, d_t, qx, d_qx, zmasse, flag_aerosol, flag_aerosol_strat, ok_cdnc, t, u1, v1)
     21       d_u, d_t, qx, d_qx, zmasse, t, u1, v1)
    2322
    2423    ! This subroutine does the actual writing of diagnostics that were
     
    3534    USE water_int_mod, ONLY: water_int
    3635    USE lmdz_gwd_ini, ONLY: ok_orodr, ok_orolf, ok_hines, ok_gwd_rando
     36    USE conf_phys_m, ONLY : aerosol_couple, ok_ade, ok_aie, ok_volcan, &
     37                            flag_aerosol, flag_aerosol_strat, ok_cdnc
    3738    USE phys_output_ctrlout_mod, ONLY: o_phis, o_aire, is_ter, is_lic, is_oce, &
    3839         o_longitude, o_latitude, &
     
    554555    INTEGER :: itap, ivap, iliq, isol, ibs, read_climoz
    555556    INTEGER, DIMENSION(klon) :: lmax_th
    556     LOGICAL :: aerosol_couple, ok_sync
    557     LOGICAL :: ok_ade, ok_aie, ok_volcan
     557    LOGICAL :: ok_sync
    558558    LOGICAL, DIMENSION(klon, klev) :: ptconv, ptconvth
    559559    REAL :: pdtphys
     
    565565    REAL, DIMENSION(klon,klev,nqtot) :: qx, d_qx
    566566    REAL, DIMENSION(klon, klev) :: zmasse
    567     INTEGER :: flag_aerosol_strat
    568     INTEGER :: flag_aerosol
    569     LOGICAL :: ok_cdnc
    570567    REAL, DIMENSION(klon,klev) :: t   ! output for phystoken - offline flux
    571568    REAL, DIMENSION(klon) :: u1, v1   ! output for phystoken - offline flux
  • LMDZ6/trunk/libf/phylmd/physiq_mod.F90

    r6125 r6126  
    15971597       CALL phys_output_open(longitude_deg,latitude_deg,nCFMIP,tabijGCM, &
    15981598            iGCM,jGCM,lonGCM,latGCM, &
    1599             jjmp1,nlevSTD,clevSTD,rlevSTD, phys_tstep,ok_veget, &
    1600             type_ocean,iflag_pbl,iflag_pbl_split,ok_mensuel,ok_journe, &
    1601             ok_hf,ok_instan,ok_LES,ok_ade,ok_aie, &
    1602             read_climoz, phys_out_filestations, &
    1603             aerosol_couple, &
    1604             flag_aerosol_strat, pdtphys, paprs, pphis,  &
     1599            jjmp1,nlevSTD,clevSTD,rlevSTD, phys_tstep, read_climoz, &
     1600            phys_out_filestations, pdtphys, paprs, pphis,  &
    16051601            pplay, lmax_th, ptconv, ptconvth, ivap,  &
    16061602            d_u, d_t, qx, d_qx, zmasse, ok_sync_omp)
     
    17741770          CALL phytracr_spl_out_init()
    17751771          CALL phys_output_write_spl(itap, pdtphys, paprs, pphis,                  &
    1776                pplay, lmax_th, aerosol_couple,                 &
    1777                ok_ade, ok_aie, ivap, ok_sync,                  &
     1772               pplay, lmax_th, &
     1773               ivap, ok_sync,                  &
    17781774               ptconv, read_climoz, clevSTD,                   &
    1779                ptconvth, d_t, qx, d_qx, d_tr_dyn, zmasse,      &
    1780                flag_aerosol, flag_aerosol_strat, ok_cdnc)
     1775               ptconvth, d_t, qx, d_qx, d_tr_dyn, zmasse)
    17811776       ELSE
    17821777          ! phys_output_write écrit des variables traceurs seulement si iflag_phytrac == 1
     
    17861781          ENDIF
    17871782          CALL phys_output_write(itap, pdtphys, paprs, pphis,                    &
    1788                pplay, lmax_th, aerosol_couple,                 &
    1789                ok_ade, ok_aie, ok_volcan, ivap, iliq, isol, ibs,  ok_sync,&
     1783               pplay, lmax_th, &
     1784               ivap, iliq, isol, ibs,  ok_sync, &
    17901785               ptconv, read_climoz, clevSTD,                   &
    17911786               ptconvth, d_u, d_t, qx, d_qx, zmasse,           &
    1792                flag_aerosol, flag_aerosol_strat, ok_cdnc, t, u1, v1)
     1787               t, u1, v1)
    17931788       END IF
    17941789
     
    53335328    IF (CPPKEY_DUST) THEN
    53345329       CALL phys_output_write_spl(itap, pdtphys, paprs, pphis,  &
    5335             pplay, lmax_th, aerosol_couple,                 &
    5336             ok_ade, ok_aie, ivap, ok_sync,                  &
     5330            pplay, lmax_th, &
     5331            ivap, ok_sync,                  &
    53375332            ptconv, read_climoz, clevSTD,                   &
    5338             ptconvth, d_t, qx, d_qx, d_tr_dyn, zmasse,      &
    5339             flag_aerosol, flag_aerosol_strat, ok_cdnc)
     5333            ptconvth, d_t, qx, d_qx, d_tr_dyn, zmasse)
    53405334    ELSE
    53415335       CALL phys_output_write(itap, pdtphys, paprs, pphis,  &
    5342             pplay, lmax_th, aerosol_couple,                 &
    5343             ok_ade, ok_aie, ok_volcan, ivap, iliq, isol, ibs,   &
    5344             ok_sync, ptconv, read_climoz, clevSTD,          &
     5336            pplay, lmax_th, &
     5337            ivap, iliq, isol, ibs,   &
     5338            ok_sync, &
     5339            ptconv, read_climoz, clevSTD,          &
    53455340            ptconvth, d_u, d_t, qx, d_qx, zmasse,           &
    5346             flag_aerosol, flag_aerosol_strat, ok_cdnc,t, u1, v1)
     5341            t, u1, v1)
    53475342    END IF
    53485343
  • LMDZ6/trunk/libf/phylmdiso/physiq_mod.F90

    r6125 r6126  
    17191719       ok_sync_omp=.FALSE.
    17201720       CALL getin('ok_sync',ok_sync_omp)
     1721
    17211722       CALL phys_output_open(longitude_deg,latitude_deg,nCFMIP,tabijGCM, &
    17221723            iGCM,jGCM,lonGCM,latGCM, &
    1723             jjmp1,nlevSTD,clevSTD,rlevSTD, phys_tstep,ok_veget, &
    1724             type_ocean,iflag_pbl,iflag_pbl_split,ok_mensuel,ok_journe, &
    1725             ok_hf,ok_instan,ok_LES,ok_ade,ok_aie, &
    1726             read_climoz, phys_out_filestations, &
    1727             aerosol_couple, &
    1728             flag_aerosol_strat, pdtphys, paprs, pphis,  &
     1724            jjmp1,nlevSTD,clevSTD,rlevSTD, phys_tstep, read_climoz, &
     1725            phys_out_filestations, pdtphys, paprs, pphis,  &
    17291726            pplay, lmax_th, ptconv, ptconvth, ivap,  &
    17301727            d_u, d_t, qx, d_qx, zmasse, ok_sync_omp)
     
    19021899       CALL phytracr_spl_out_init()
    19031900       CALL phys_output_write_spl(itap, pdtphys, paprs, pphis,                  &
    1904                                 pplay, lmax_th, aerosol_couple,                 &
    1905                                 ok_ade, ok_aie, ivap, ok_sync,                  &
    1906                                 ptconv, read_climoz, clevSTD,                   &
    1907                                 ptconvth, d_t, qx, d_qx, d_tr_dyn, zmasse,      &
    1908                                 flag_aerosol, flag_aerosol_strat, ok_cdnc)
     1901               pplay, lmax_th, &
     1902               ivap, ok_sync,                  &
     1903               ptconv, read_climoz, clevSTD,                   &
     1904               ptconvth, d_t, qx, d_qx, d_tr_dyn, zmasse)
    19091905ELSE
    19101906       ! phys_output_write écrit des variables traceurs seulement si iflag_phytrac == 1
     
    19131909          CALL phytrac_init()
    19141910       ENDIF
    1915        CALL phys_output_write(itap, pdtphys, paprs, pphis,                    &
    1916                               pplay, lmax_th, aerosol_couple,                 &
    1917                               ok_ade, ok_aie, ok_volcan, ivap, iliq, isol, ibs,  ok_sync,&
    1918                               ptconv, read_climoz, clevSTD,                   &
    1919                               ptconvth, d_u, d_t, qx, d_qx, zmasse,           &
    1920                               flag_aerosol, flag_aerosol_strat, ok_cdnc, t, u1, v1)
     1911       CALL phys_output_write(itap, pdtphys, paprs, pphis,  &
     1912            pplay, lmax_th, &
     1913            ivap, iliq, isol, ibs,   &
     1914            ok_sync, &
     1915            ptconv, read_climoz, clevSTD,          &
     1916            ptconvth, d_u, d_t, qx, d_qx, zmasse,           &
     1917            t, u1, v1)
    19211918END IF
    1922 
    19231919
    19241920       IF (using_xios) THEN
     
    64076403END IF
    64086404
    6409 IF (CPPKEY_COSP2) THEN
    6410        IF (itap.eq.1.or.MOD(itap,NINT(freq_cosp/phys_tstep)).EQ.0) THEN
    6411 
    6412           IF (prt_level .GE.10) THEN
    6413              print*,'freq_cosp',freq_cosp
    6414           ENDIF
    6415           mr_ozone=wo(:, :, 1) * dobson_u * 1e3 / zmasse
    6416                  print*,'Dans physiq.F avant appel '
    6417           !     s        ref_liq,ref_ice
    6418           CALL phys_cosp2(itap,phys_tstep,missing_val, &
    6419                klon,klev,longitude_deg,latitude_deg,presnivs,overlap, &
    6420                JrNt,ref_liq,ref_ice, &
    6421                pctsrf(:,is_ter)+pctsrf(:,is_lic), &
    6422                zu10m,zv10m,pphis, &
    6423                zphi,paprs(:,1:klev),pplay,zxtsol,t_seri, &
    6424                qx(:,:,ivap),zx_rh,cldfra,rnebcon,flwc,fiwc, &
    6425                prfl(:,1:klev),psfl(:,1:klev), &
    6426                pmflxr(:,1:klev),pmflxs(:,1:klev), &
    6427                mr_ozone,cldtau, cldemi)
    6428        ENDIF
    6429 END IF
    6430 
    64316405IF (CPPKEY_COSPV2) THEN
    64326406       IF (itap.eq.1.or.MOD(itap,NINT(freq_cosp/phys_tstep)).EQ.0) THEN
     
    70457019
    70467020IF (CPPKEY_DUST) THEN
    7047   CALL phys_output_write_spl(itap, pdtphys, paprs, pphis,  &
    7048        pplay, lmax_th, aerosol_couple,                 &
    7049        ok_ade, ok_aie, ivap, ok_sync,                  &
    7050        ptconv, read_climoz, clevSTD,                   &
    7051        ptconvth, d_t, qx, d_qx, d_tr_dyn, zmasse,      &
    7052        flag_aerosol, flag_aerosol_strat, ok_cdnc)
     7021   CALL phys_output_write_spl(itap, pdtphys, paprs, pphis,  &
     7022            pplay, lmax_th, &
     7023            ivap, ok_sync,                  &
     7024            ptconv, read_climoz, clevSTD,                   &
     7025            ptconvth, d_t, qx, d_qx, d_tr_dyn, zmasse)
    70537026ELSE
    7054     CALL phys_output_write(itap, pdtphys, paprs, pphis,  &
    7055          pplay, lmax_th, aerosol_couple,                 &
    7056          ok_ade, ok_aie, ok_volcan, ivap, iliq, isol, ibs,   &
    7057          ok_sync, ptconv, read_climoz, clevSTD,          &
    7058          ptconvth, d_u, d_t, qx, d_qx, zmasse,           &
    7059          flag_aerosol, flag_aerosol_strat, ok_cdnc,t, u1, v1)
     7027   CALL phys_output_write(itap, pdtphys, paprs, pphis,  &
     7028            pplay, lmax_th, &
     7029            ivap, iliq, isol, ibs,   &
     7030            ok_sync, &
     7031            ptconv, read_climoz, clevSTD,          &
     7032            ptconvth, d_u, d_t, qx, d_qx, zmasse,           &
     7033            t, u1, v1)
    70607034END IF
    70617035
Note: See TracChangeset for help on using the changeset viewer.