Changeset 4537


Ignore:
Timestamp:
May 15, 2023, 1:03:18 AM (12 months ago)
Author:
fhourdin
Message:

Travail preparatoire au couplage avec mesoNH

Travail preparatoire aux test d'integration de la physique de MesoNH
et plus generalement a la reecriture du moniteur de la physique.
phylmd appelle phylmdex si une cle iflag_physiq=2 est ajoutee dans run.def
Il a ete necessaire en plus d'eliminer un certain nombre d'appels dans
phyetat0 et phyredem.

Location:
LMDZ6/trunk/libf/phylmd
Files:
1 added
7 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/phylmd/clesphys.h

    r4523 r4537  
    1818       REAL co2_ppm, co2_ppm0, solaire
    1919       INTEGER iflag_thermals,nsplit_thermals
     20       INTEGER iflag_physiq
    2021       REAL tau_thermals
    2122
     
    152153     &     , ok_daily_climoz, ok_all_xml, ok_lwoff                      &
    153154     &     , iflag_phytrac, ok_new_lscp, ok_bs, ok_rad_bs               &
    154      &     ,  iflag_thermals,nsplit_thermals, tau_thermals   
     155     &     ,  iflag_thermals,nsplit_thermals, tau_thermals              &
     156     &     , iflag_physiq
    155157       save /clesphys/
    156158!$OMP THREADPRIVATE(/clesphys/)
  • LMDZ6/trunk/libf/phylmd/conf_phys_m.F90

    r4535 r4537  
    189189    REAL, SAVE ::  fmagic_omp, pmagic_omp
    190190    INTEGER,SAVE :: iflag_pbl_omp,lev_histhf_omp,lev_histday_omp,lev_histmth_omp
    191     INTEGER,SAVE :: iflag_pbl_split_omp
     191    INTEGER,SAVE :: iflag_pbl_split_omp,iflag_physiq_omp
    192192!FC
    193193    INTEGER,SAVE :: ifl_pbltree_omp
     
    14841484    CALL getin('iflag_pbl',iflag_pbl_omp)
    14851485
     1486    iflag_physiq_omp = 1 ! 1: std, 0 for physiqex
     1487    CALL getin('iflag_physiq',iflag_physiq_omp)
     1488
    14861489!FC
    14871490    !Config Key  = ifl_pbltree
     
    15331536    nsplit_thermals_omp = 1
    15341537    CALL getin('nsplit_thermals',nsplit_thermals_omp)
    1535 
    1536     !Config Key  = alp_bl_k
    1537     !Config Desc =
    1538     !Config Def  = 0.
    1539     !Config Help =
    1540     !
     1538    !
     1539    !Config Key  = nsplit_thermals
     1540    !Config Desc =
     1541    !Config Def  = 0
     1542    !Config Help =
    15411543    alp_bl_k_omp = 1.
    15421544    CALL getin('alp_bl_k',alp_bl_k_omp)
     
    23212323    pmagic = pmagic_omp
    23222324    iflag_pbl = iflag_pbl_omp
     2325    iflag_physiq = iflag_physiq_omp
    23232326    iflag_pbl_split = iflag_pbl_split_omp
    23242327!FC
     
    27562759    WRITE(lunout,*) ' freq_calNMC = ',freq_calNMC
    27572760    WRITE(lunout,*) ' iflag_pbl = ', iflag_pbl
     2761    WRITE(lunout,*) ' iflag_physiq = ', iflag_physiq
    27582762!FC
    27592763    WRITE(lunout,*) ' ifl_pbltree = ', ifl_pbltree
  • LMDZ6/trunk/libf/phylmd/dyn1d/old_lmdz1d.F90

    r4536 r4537  
    946946!------------------------------------------------------------------------
    947947!Al1 =============== restart option ==========================
     948        iflag_physiq=1
     949        call getin('iflag_physiq',iflag_physiq)
     950
    948951        if (.not.restart) then
    949952          iflag_pbl = 5
  • LMDZ6/trunk/libf/phylmd/dyn1d/scm.F90

    r4536 r4537  
    704704!------------------------------------------------------------------------
    705705!Al1 =============== restart option ======================================
     706        iflag_physiq=1
     707        call getin('iflag_physiq',iflag_physiq)
     708
    706709        if (.not.restart) then
    707710          iflag_pbl = 5
  • LMDZ6/trunk/libf/phylmd/phyetat0_mod.F90

    r4389 r4537  
    300300
    301301!===================================================================
     302! Lecture dans le cas iflag_pbl_surface =1
     303!===================================================================
     304
     305   if ( iflag_physiq == 1 ) then
     306!===================================================================
    302307  ! Lecture des temperatures du sol profond:
    303308!===================================================================
     
    373378    treedrg(:,:,:) = 0.0
    374379  ENDIF
     380
     381  endif ! iflag_physiq == 1
    375382
    376383  ! Lecture de l'age de la neige:
     
    591598  ! Initialize module pbl_surface_mod
    592599
     600  if ( iflag_physiq == 1 ) then
    593601  CALL pbl_surface_init(fder, snow, qsurf, tsoil)
     602  endif
    594603
    595604  ! Initialize module ocean_cpl_mod for the case of coupled ocean
  • LMDZ6/trunk/libf/phylmd/phyredem.F90

    r4523 r4537  
    7676  ! Get variables which will be written to restart file from module
    7777  ! pbl_surface_mod
    78   CALL pbl_surface_final(fder, snow, qsurf,  tsoil)
     78  if ( iflag_physiq == 1 ) then
     79     CALL pbl_surface_final(fder, snow, qsurf,  tsoil)
     80  endif
    7981
    8082  ! Get a variable calculated in module fonte_neige_mod
  • LMDZ6/trunk/libf/phylmd/physiq_mod.F90

    r4535 r4537  
    142142!!!!!!!!!!!!!!!!!!  END "USE" for CPP keys !!!!!!!!!!!!!!!!!!!!!!
    143143
     144USE physiqex_mod, ONLY : physiqex
    144145USE phys_local_var_mod, ONLY: phys_local_var_init, phys_local_var_end, &
    145146       ! [Variables internes non sauvegardees de la physique]
     
    12291230    REAL pi
    12301231
     1232
     1233    !======================================================================!
     1234    ! Bifurcation vers un nouveau moniteur physique pour experimenter      !
     1235    ! des solutions et préparer le couplage avec la physique de MesoNH     !
     1236    ! 14 mai 2023                                                          !
     1237    !======================================================================!
     1238    if (debut) then                                                        !
     1239       iflag_physiq=1                                                      !
     1240       call getin_p('iflag_physiq', iflag_physiq)                          !
     1241    endif                                                                  !
     1242    if ( iflag_physiq == 2 ) then                                          !
     1243       call physiqex (nlon,nlev, &                                         !
     1244       debut,lafin,pdtphys_, &                                             !
     1245       paprs,pplay,pphi,pphis,presnivs, &                                  !
     1246       u,v,rot,t,qx, &                                                     !
     1247       flxmass_w, &                                                        !
     1248       d_u, d_v, d_t, d_qx, d_ps)                                          !
     1249       return                                                              !
     1250    endif                                                                  !
     1251    !======================================================================!
     1252
     1253
    12311254    pi = 4. * ATAN(1.)
    12321255
     
    12551278    ! Utilise notamment en 1D mais peut etre active egalement en 3D
    12561279    ! en imposant la valeur de igout.
    1257     !======================================================================d
     1280    !======================================================================
    12581281    IF (prt_level.ge.1) THEN
    12591282       igout=klon/2+1/klon
Note: See TracChangeset for help on using the changeset viewer.