Ignore:
Timestamp:
Jan 29, 2026, 12:52:39 AM (2 months ago)
Author:
fhourdin
Message:

Travail pour la replayisation de la convection

Reunion de tous les anciens common devenus modules, dans lmdz_cv_ini.
Déplacement de presque toutes les routines d'initialisation dans lmdz_cv_ini.
Encapsulage de certains sous-programmes dans des modules.
Suppression de programmes inutilisés (cv3_crit et cv3_incp)
Reste :

  • à sortir des routines d'initialisation "_pre" de cv_driver et

cva_driver

  • à passer le variables argunement en intent(in/out/inout).

La convergence numérique a été testée pour
iflag_con=3/30/4
en 3D parallèle.
La compilation de la version isotopique fonctionne.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/phylmd/physiq_mod.F90

    r6053 r6058  
    102102    USE lmdz_reevap_ini, ONLY : reevap_ini
    103103    USE lmdz_wake_ini, ONLY : wake_ini
     104    USE lmdz_cv_ini, ONLY : cv_ini
     105    USE lmdz_cv_ini, ONLY : epmax, coef_epmax_cape, cvl_comp_threshold, cvl_sig2feed, iflag_cvl_sigd, iflag_clw, ok_adj_ema
     106
    104107    USE lmdz_surf_wind_ini, ONLY : surf_wind_ini
    105108    USE lmdz_surf_wind, ONLY : surf_wind
     
    276279         JrNt,                             &
    277280         dthmin, evap, snowerosion, icesub_ice, icemelt_ice, fder, plcl, plfc,   &
     281
    278282         prw, prlw, prsw, prbsw, water_budget,         &
    279283         s_lcl, s_pblh, s_pblt, s_therm,   &
     
    398402    USE yomcst_mod_h
    399403    USE clesphys_mod_h
    400     USE conema3_mod_h
     404! Replayisation USE conema3_mod_h
    401405    USE alpale_mod
    402406    USE yoethf_mod_h
     
    656660    !
    657661    !    INTEGER izero
    658     INTEGER k_upper_cv
     662    INTEGER, SAVE :: k_upper_cv
     663    !$OMP THREADPRIVATE(k_upper_cv)
     664
    659665    !------------------------------------------------------------------
    660666    ! Compteur de l'occurence de cvpas=1
     
    13881394            read_climoz, &
    13891395            alp_offset)
     1396
    13901397       CALL init_etat0_limit_unstruct
    13911398       IF (.NOT. create_etat0_limit) CALL init_limit_read(days_elapsed)
     
    18661873!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    18671874       CALL reevap_ini(fl_cor_ebil, iflag_ice_thermo, RCPD, RLSTT, RLVTT, RVTMP2)
     1875             !jyg<
     1876             ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     1877             ! Calculate the upmost level of deep convection loops: k_upper_cv
     1878             !  (near 22 km)
     1879             k_upper_cv = klev
     1880             !izero = klon/2+1/klon
     1881             !DO k = klev,1,-1
     1882             !   IF (pphi(izero,k) > 22.e4) k_upper_cv = k
     1883             !ENDDO
     1884             ! FH : nouveau calcul base sur un profil global sans quoi
     1885             ! le modele etait sensible au decoupage de domaines
     1886             DO k = klev,1,-1
     1887                IF (-7*log(presnivs(k)/presnivs(1)) > 25.) k_upper_cv = k
     1888             ENDDO
     1889             IF (prt_level .ge. 5) THEN
     1890                Print *, 'upmost level of deep convection loops: k_upper_cv = ', &
     1891                     k_upper_cv
     1892             ENDIF
     1893       CALL cv_ini(iflag_con,iflag_ice_thermo,rcpd,rcpv,rcw,rv,rcs,rd,rlvtt,rlstt,rg,retv,rtt,r,klev,k_upper_cv,phys_tstep,fl_cor_ebil,prt_level,lunout)
     1894
     1895
    18681896       CALL wake_ini(iflag_wake,rg,rd,rv,prt_level)
    18691897       CALL yamada_ini(klon,lunout,prt_level)
     
    32683296          ! (driver commun aux versions 3 et 4)
    32693297          !
     3298    print*,' lmdz_cv_ini, ONLY 4 :', epmax, coef_epmax_cape, cvl_comp_threshold, cvl_sig2feed, iflag_cvl_sigd, iflag_clw, ok_adj_ema
    32703299          IF (ok_cvl) THEN ! new driver for convectL
    32713300             !
    3272              !jyg<
    3273              ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    3274              ! Calculate the upmost level of deep convection loops: k_upper_cv
    3275              !  (near 22 km)
    3276              k_upper_cv = klev
    3277              !izero = klon/2+1/klon
    3278              !DO k = klev,1,-1
    3279              !   IF (pphi(izero,k) > 22.e4) k_upper_cv = k
    3280              !ENDDO
    3281              ! FH : nouveau calcul base sur un profil global sans quoi
    3282              ! le modele etait sensible au decoupage de domaines
    3283              DO k = klev,1,-1
    3284                 IF (-7*log(presnivs(k)/presnivs(1)) > 25.) k_upper_cv = k
    3285              ENDDO
    3286              IF (prt_level .ge. 5) THEN
    3287                 Print *, 'upmost level of deep convection loops: k_upper_cv = ', &
    3288                      k_upper_cv
    3289              ENDIF
    32903301             !
    32913302             !>jyg
Note: See TracChangeset for help on using the changeset viewer.