Ignore:
Timestamp:
May 5, 2014, 11:38:51 AM (11 years ago)
Author:
aslmd
Message:

MESOSCALE. A necessary complement commit to r1234 where a upgraded interface making use of modules was proposed. Completed the new formulation for module_lmd_driver for newphys with improved interface with both ini/bdy conditions and physical parameterizations. Changed the Registry accordingly. Finished changes about I/O with the LMD physics (see LMDZ.MARS/README). Made all those changes compatible for old interface, and LES runs (checked with test cases), as well as old input files. Changed makemeso to account for full flexibility on changin nx ny ntracers nproc with newphys. Cleaned the now obsolete bits of code used in LMD physics shared with the GCM. ----- Everything is now ready to properly code both restart runs and nesting for mesoscale runs with new physics.

Location:
trunk/MESOSCALE/LMD_MM_MARS/SRC
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/MESOSCALE/LMD_MM_MARS/SRC/LES/LMD_LES_MARS_install

    r1235 r1236  
    6565cd Registry
    6666ln -sf ../modif_mars/Registry.EM .
     67ln -sf ../modif_mars/Registry.EM.newphys .
    6768ln -sf ../modif_mars/Registry.bash .
    6869cd ..
  • trunk/MESOSCALE/LMD_MM_MARS/SRC/LES/modif_mars/Registry.EM

    r774 r1236  
    217217#### variables dans wrf
    218218####
    219 state  real   albedo_gcm      ij   misc  1  -  i012rd  "MARS_ALB"    "albedo of naked ground"  "0 - 1 fraction"
    220 state  real   therm_inert     ij   misc  1  -  i012rd  "MARS_TI"     "thermal inertia"         "J/m2/K/s0.5"
    221 state  real   mars_z0         ij   misc  1  -  i012rd  "MARS_Z0"     "surface roughness"       "m"
    222 state  real   slpx            ij   misc  1  -  i012rd  "SLOPEX"      "slope x direction"       "rad"
    223 state  real   slpy            ij   misc  1  -  i012rd  "SLOPEY"      "slope y direction"       "rad"
    224 state  real   mars_emiss      ij   misc  1  -  i012rd  "MARS_EMISS"  "emissivity"              "0 - 1 fraction"
    225 state  real   mars_cice       ij   misc  1  -  i012rd  "MARS_CICE"   "co2 ice"                 "kg"
    226 state  real   mars_wice       ij   misc  1  -  i012rd  "MARS_WICE"   "h2o ice"                 "kg/m2"
    227 state  real   mars_tsurf      ij   misc  1  -  i012rd  "MARS_TSURF"   "surface temperature" "K"
    228 state  real   mars_fluxrad    ij   misc  1  -  i012rd  "MARS_FLUXRAD" "net rad flux at surf"     "W.m-2"
    229 state  real   mars_wstar      ij   misc  1  -  i012rd  "MARS_WSTAR"   "free convection velocity" "m.s-1"
    230 state  real   mars_tsoil     ilj   misc  1  -  i012rd  "MARS_TSOIL"   "soil temperatures"        "K"
    231 state  real   mars_q2        ikj   misc  1  Z  i012rd  "MARS_Q2"      "turbulent kinetic energy" "kg.m-3"
    232 state  real   mars_isoil     ilj   misc  1  -  i012rd  "MARS_ISOIL"  "soil thermal inertia"    "tiu"
    233 state  real   mars_dsoil     ilj   misc  1  -  i012rd  "MARS_DSOIL"  "soil depths"             "m"
    234 state  real   mars_gw        ilj   misc  1  -  i012rd  "MARS_GW"     "gwparam"                 " "
     219#### 'm_' prefix is to avoid redundancies with possible existing terrestrial variables
     220####
     221####          vvvv nom pour module_initialize, solve_em, lmd_driver (interne fortran)
     222####                                                vvvv nom fichier netCDF (important initialisation
     223################################################################################################################
     224state  real   m_albedo     ij   misc  1  -  i012rd  "MARS_ALB"     "albedo of naked ground"   "0 - 1 fraction"
     225state  real   m_ti         ij   misc  1  -  i012rd  "MARS_TI"      "thermal inertia"          "J/m2/K/s0.5"
     226state  real   m_z0         ij   misc  1  -  i012rd  "MARS_Z0"      "surface roughness"        "m"
     227state  real   slpx         ij   misc  1  -  i012rd  "SLOPEX"       "slope x direction"        "rad"
     228state  real   slpy         ij   misc  1  -  i012rd  "SLOPEY"       "slope y direction"        "rad"
     229state  real   m_emiss      ij   misc  1  -  i012rd  "MARS_EMISS"   "emissivity"               "0 - 1 fraction"
     230state  real   m_co2ice     ij   misc  1  -  i012rd  "MARS_CICE"    "co2 ground ice"           "kg/m2"
     231state  real   m_h2oice     ij   misc  1  -  i012rd  "MARS_WICE"    "h2o ground ice"           "kg/m2"
     232state  real   m_fluxrad    ij   misc  1  -  i012rd  "MARS_FLUXRAD" "net rad flux at surf"     "W.m-2"
     233state  real   m_wstar      ij   misc  1  -  i012rd  "MARS_WSTAR"   "free convection velocity" "m.s-1"
     234state  real   m_tsurf      ij   misc  1  -  i012rd  "MARS_TSURF"   "surface temperature"      "K"
     235state  real   m_tsoil     ilj   misc  1  -  i012rd  "MARS_TSOIL"   "soil temperatures"        "K"
     236state  real   m_q2        ikj   misc  1  Z  i012rd  "MARS_Q2"      "parameterized TKE"        "kg.m-3"
     237state  real   m_isoil     ilj   misc  1  -  i012rd  "MARS_ISOIL"   "soil thermal inertia"     "tiu"
     238state  real   m_dsoil     ilj   misc  1  -  i012rd  "MARS_DSOIL"   "soil depths"              "m"
     239state  real   m_gw        ilj   misc  1  -  i012rd  "MARS_GW"      "gwparam"                  " "
    235240####
    236241####
    237242####MARS MARS MARS MARS MARS
    238243####MARS MARS MARS MARS MARS
    239 
    240 
    241244
    242245#-----------------------------------------------------------------------------------------------------------------------------------------------------------------
     
    348351##
    349352state    real   ptot           ikj     dyn_em      1         -      irh       "PTOT"        "total pressure"      "Pa"
    350 ####### if you choose h here, you will probably want not to output u,v,w,t,etc...
    351 state    real   uave           ikj     dyn_em      1         -      ir       "UAVE"        "average zonal wind"  "m/s"
    352 state    real   ustd           ikj     dyn_em      1         -      ir       "USTD"        "std dev zonal wind"  "m/s"
    353 state    real   vave           ikj     dyn_em      1         -      ir       "VAVE"        "average meridional wind"  "m/s"
    354 state    real   vstd           ikj     dyn_em      1         -      ir       "VSTD"        "std dev meridional wind"  "m/s"
    355 state    real   wave           ikj     dyn_em      1         -      ir       "WAVE"        "average vertical wind"  "m/s"
    356 state    real   wstd           ikj     dyn_em      1         -      ir       "WSTD"        "std dev vertical wind"  "m/s"
    357 state    real   tave           ikj     dyn_em      1         -      ir       "TAVE"        "average pert. potential temperature"  "K"
    358 state    real   tstd           ikj     dyn_em      1         -      ir       "TSTD"        "std dev pert. potential temperature"  "K"
    359 #######
    360 ## ajouter tk, ptot, phtot ??? les deux derniers sont assez smooth...
    361353
    362354#                                               
  • trunk/MESOSCALE/LMD_MM_MARS/SRC/LES/modif_mars/module_first_rk_step_part1.F

    r774 r1236  
    574574         CALL lmd_driver(                                                 &
    575575           ! structure
    576      &         id=grid%id,max_dom=grid%max_dom                            &
    577      &        ,DT=grid%dt                                                 &
     576     &         id=grid%id,max_dom=grid%max_dom      &
     577     &        ,DT=grid%dt                   &
    578578     &        ,ITIMESTEP=grid%itimestep                                   &
    579579           ! position
     
    585585     &        ,IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde          &
    586586     &        ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme          &
    587 !     &        ,IPS=ips,IPE=ipe, JPS=jps,JPE=jpe, KPS=kps,KPE=kpe          &
    588      &        ,I_START=grid%i_start,I_END=min(grid%i_end, ide-1)          &
    589      &        ,J_START=grid%j_start,J_END=min(grid%j_end, jde-1)          &
    590      &        ,KTS=k_start, KTE=min(k_end,kde-1)                          &
     587     &        ,i_start=grid%i_start,i_end=min(grid%i_end, ide-1)          &
     588     &        ,j_start=grid%j_start,j_end=min(grid%j_end, jde-1)          &
     589     &        ,kts=k_start, kte=min(k_end,kde-1)                          &
    591590     &        ,num_tiles=grid%num_tiles                                   &
    592591           ! time variables
     
    600599                        ! ... (cf phy_prep in module_big_step_utilities_em)
    601600     &        ,HT=grid%ht                                                 &
    602      &        ,U=u_phy            ,V=v_phy,         W=w_phy               &
     601     &        ,U=u_phy            ,V=v_phy             ,W=w_phy           &
    603602     &        ,TH=th_phy          ,T=t_phy                                &
    604603     &        ,P=p_phy            ,EXNER=pi_phy               ,RHO=rho    &
     
    606605     &        ,PTOP=grid%p_top                                            &
    607606           ! physics calls
    608      &        ,RADT=grid%radt                                             &
    609      &        ,CUDT=grid%cudt                                             &
     607     &        ,RADT=grid%radt                          &
     608     &        ,CUDT=grid%cudt                          &
    610609           ! surface temperature and surface pressure
    611610     &        ,TSK=grid%tsk,PSFC=grid%psfc                                &
    612611           ! tendencies for the dynamics
    613      &        ,RTHBLTEN=grid%rthblten,RUBLTEN=grid%rublten,RVBLTEN=grid%rvblten    &
     612     &        ,RTHBLTEN=grid%rthblten  ,RUBLTEN=grid%rublten,RVBLTEN=grid%rvblten    &
    614613           ! scalars
    615614!     &        ,NUM_3D_S=num_3d_s,SCALAR=grid%scalar                       &
    616615     &        ,NUM_3D_S=num_scalar,SCALAR=grid%scalar                      &
    617616           ! mode
    618      &        ,MARS_MODE=config_flags%mars                                &
     617     &        ,MARS_MODE=config_flags%mars   &
    619618           ! added variables
    620      &        ,MARS_ALB=grid%albedo_gcm,MARS_TI=grid%therm_inert          &
    621      &        ,MARS_CICE=grid%mars_cice,MARS_EMISS=grid%mars_emiss        &
    622      &        ,MARS_WICE=grid%mars_wice         &
    623      &        ,MARS_TSOIL=grid%mars_tsoil                                 &
    624      &        ,MARS_Q2=grid%mars_q2                                       &
    625      &        ,MARS_TSURF=grid%mars_tsurf                                 &
     619     &        ,M_ALBEDO=grid%m_albedo,M_TI=grid%m_ti  &
     620     &        ,M_CO2ICE=grid%m_co2ice,M_EMISS=grid%m_emiss   & 
     621     &        ,M_H2OICE=grid%m_h2oice     &
     622     &        ,M_TSOIL=grid%m_tsoil       &
     623     &        ,M_Q2=grid%m_q2             &
     624     &        ,M_TSURF=grid%m_tsurf       &
    626625#ifdef NEWPHYS
    627      &        ,MARS_FLUXRAD=grid%mars_fluxrad                             &
    628      &        ,MARS_WSTAR=grid%mars_wstar                                 &
    629      &        ,MARS_ISOIL=grid%mars_isoil       &
    630      &        ,MARS_DSOIL=grid%mars_dsoil       &
    631      &        ,MARS_Z0=grid%mars_z0             &
     626     &        ,M_FLUXRAD=grid%m_fluxrad   &
     627     &        ,M_WSTAR=grid%m_wstar       &
     628     &        ,M_ISOIL=grid%m_isoil       &
     629     &        ,M_DSOIL=grid%m_dsoil       &
     630     &        ,M_Z0=grid%m_z0             &
    632631     &        ,CST_Z0=config_flags%init_Z0      &
    633632#endif
    634      &        ,MARS_GW=grid%mars_gw                                       &
    635      &        ,NUM_SOIL_LAYERS=config_flags%num_soil_layers               &
     633     &        ,M_GW=grid%m_gw  & 
     634     &        ,NUM_SOIL_LAYERS=config_flags%num_soil_layers    &
    636635           ! cst fields
    637      &        ,CST_AL=config_flags%init_AL                                &
    638      &        ,CST_TI=config_flags%init_TI                                &
    639      &        ,ISFFLX=config_flags%isfflx                                 &
    640      &        ,DIFF_OPT=config_flags%diff_opt                             &
    641      &        ,KM_OPT=config_flags%km_opt                                 &
    642            ! additional diagnostics
    643 !     &        ,UAVE=grid%em_uave, USTD=grid%em_ustd &
    644 !     &        ,VAVE=grid%em_vave, VSTD=grid%em_vstd &
    645 !     &        ,WAVE=grid%em_wave, WSTD=grid%em_wstd &
    646 !     &        ,TAVE=grid%em_tave, TSTD=grid%em_tstd &
    647      &        ,UAVE=grid%uave, USTD=grid%ustd &
    648      &        ,VAVE=grid%vave, VSTD=grid%vstd &
    649      &        ,WAVE=grid%wave, WSTD=grid%wstd &
    650      &        ,TAVE=grid%tave, TSTD=grid%tstd &
     636     &        ,CST_AL=config_flags%init_AL  &
     637     &        ,CST_TI=config_flags%init_TI  &
     638     &        ,ISFFLX=config_flags%isfflx   &
     639     &        ,DIFF_OPT=config_flags%diff_opt     &
     640     &        ,KM_OPT=config_flags%km_opt         &
    651641     &        ,HISTORY_INTERVAL=model_config_rec%history_interval(1)  &
    652642#ifndef NOPHYS
     
    654644          ! OUTPUT VARIABLES !
    655645          !------------------!
     646#ifdef NEWPHYS
     647     &       ,HR_SW=grid%HR_SW   &
     648     &       ,HR_LW=grid%HR_LW   &
     649     &       ,SWDOWNZ=grid%SWDOWNZ   &
     650     &       ,TAU_DUST=grid%TAU_DUST   &
     651     &       ,RDUST=grid%RDUST   &
     652     &       ,QSURFDUST=grid%QSURFDUST   &
     653     &       ,MTOT=grid%MTOT   &
     654     &       ,ICETOT=grid%ICETOT   &
     655     &       ,VMR_ICE=grid%VMR_ICE   &
     656     &       ,TAU_ICE=grid%TAU_ICE   &
     657     &       ,RICE=grid%RICE   &
     658     &       ,ZMAX=grid%ZMAX   &
     659     &       ,HFMAX=grid%HFMAX &
     660     &       ,USTM=grid%USTM   &
     661     &       ,HFX=grid%HFX &
     662#else
    656663#include "module_lmd_driver_output4.inc"
     664#endif
    657665#endif
    658666     &        ,SLPX=grid%slpx,SLPY=grid%slpy,RESTART=config_flags%restart)
    659667ENDIF
     668
    660669!!!!!!!!!!!!!!!!!!!!!!!
    661670! call to LMD physics !
  • trunk/MESOSCALE/LMD_MM_MARS/SRC/LES/modif_mars/module_initialize_les.F

    r774 r1236  
    335335!!MARS
    336336    grid%ht(i,j) = alt_input
    337     grid%tsk(i,j) = tsurf_input
     337    grid%m_tsurf(i,j) = tsurf_input
    338338!!MARS
    339339    grid%xlat(i,j) = lat_input !+ float(j)*config_flags%dy/59000.
    340340    grid%xlong(i,j) = lon_input !+ float(i)*config_flags%dx/59000.
    341     grid%mars_emiss(i,j)=0.95
    342     grid%mars_cice(i,j)=0.
    343     grid%mars_wice(i,j)=0.
     341    grid%m_emiss(i,j)=0.95
     342    grid%m_co2ice(i,j)=0.
     343    grid%m_h2oice(i,j)=0.
    344344!! >> Used for restarts only:
    345     grid%mars_q2(i,:,j)=0.
    346     grid%mars_fluxrad(i,j)=0.
    347     grid%mars_wstar(i,j)=0.
    348     grid%mars_tsurf(i,j)=0.
     345    grid%m_q2(i,:,j)=0.
     346    grid%m_fluxrad(i,j)=0.
     347    grid%m_wstar(i,j)=0.
    349348!! <<
    350349    grid%slpx(i,j) = 0.
    351350    grid%slpy(i,j) = 0.
    352351   DO k=1,config_flags%num_soil_layers
    353     grid%mars_tsoil(i,k,j) = 0.
     352    grid%m_tsoil(i,k,j) = 0.
    354353   ENDDO
    355     grid%mars_gw(i,1,j) = 0.
    356     grid%mars_gw(i,2,j) = 0.
    357     grid%mars_gw(i,3,j) = 0.
    358     grid%mars_gw(i,4,j) = 0.
    359     grid%mars_gw(i,5,j) = 0.
     354    grid%m_gw(i,1,j) = 0.
     355    grid%m_gw(i,2,j) = 0.
     356    grid%m_gw(i,3,j) = 0.
     357    grid%m_gw(i,4,j) = 0.
     358    grid%m_gw(i,5,j) = 0.
    360359!!MARS
    361360  ENDDO
  • trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/Registry/Registry.EM

    r1095 r1236  
    209209####
    210210#### variables dans real
     211#### -- si on change le nom on doit le changer jusque readmeteo !
    211212####
    212213############# in module_initialize ################# in geo_em.d**.nc ############################################
     
    229230#### variables dans wrf
    230231####
    231 ############# in module_initialize ################## in solve_em and lmd_driver ###############################
    232 state  real   albedo_gcm      ij   misc  1  -  i012rd  "MARS_ALB"     "albedo of naked ground"   "0 - 1 fraction"
    233 state  real   therm_inert     ij   misc  1  -  i012rd  "MARS_TI"      "thermal inertia"          "J/m2/K/s0.5"
    234 state  real   mars_z0         ij   misc  1  -  i012rd  "MARS_Z0"      "surface roughness"        "m"
    235 state  real   slpx            ij   misc  1  -  i012rd  "SLOPEX"       "slope x direction"        "rad"
    236 state  real   slpy            ij   misc  1  -  i012rd  "SLOPEY"       "slope y direction"        "rad"
    237 state  real   mars_emiss      ij   misc  1  -  i012rd  "MARS_EMISS"   "emissivity"               "0 - 1 fraction"
    238 state  real   mars_cice       ij   misc  1  -  i012rd  "MARS_CICE"    "co2 ice"                  "kg/m2"
    239 state  real   mars_wice       ij   misc  1  -  i012rd  "MARS_WICE"    "h2o ice"                  "kg/m2"
    240 state  real   mars_fluxrad    ij   misc  1  -  i012rd  "MARS_FLUXRAD" "net rad flux at surf"     "W.m-2"
    241 state  real   mars_wstar      ij   misc  1  -  i012rd  "MARS_WSTAR"   "free convection velocity" "m.s-1"
    242 state  real   mars_tsurf      ij   misc  1  -  i012rd  "MARS_TSURF"   "surface temperature" "K"
    243 state  real   mars_tsoil     ilj   misc  1  -  i012rd  "MARS_TSOIL"   "soil temperatures"        "K"
    244 state  real   mars_q2        ikj   misc  1  Z  i012rd  "MARS_Q2"      "turbulent kinetic energy" "kg.m-3"
    245 state  real   mars_isoil     ilj   misc  1  -  i012rd  "MARS_ISOIL"   "soil thermal inertia"     "tiu"
    246 state  real   mars_dsoil     ilj   misc  1  -  i012rd  "MARS_DSOIL"   "soil depths"              "m"
    247 state  real   mars_gw        ilj   misc  1  -  i012rd  "MARS_GW"      "gwparam"                  " "
     232#### 'm_' prefix is to avoid redundancies with possible existing terrestrial variables
     233####
     234####          vvvv nom pour module_initialize, solve_em, lmd_driver (interne fortran)
     235####                                                vvvv nom fichier netCDF (important initialisation
     236################################################################################################################
     237state  real   m_albedo     ij   misc  1  -  i012rd  "MARS_ALB"     "albedo of naked ground"   "0 - 1 fraction"
     238state  real   m_ti         ij   misc  1  -  i012rd  "MARS_TI"      "thermal inertia"          "J/m2/K/s0.5"
     239state  real   m_z0         ij   misc  1  -  i012rd  "MARS_Z0"      "surface roughness"        "m"
     240state  real   slpx         ij   misc  1  -  i012rd  "SLOPEX"       "slope x direction"        "rad"
     241state  real   slpy         ij   misc  1  -  i012rd  "SLOPEY"       "slope y direction"        "rad"
     242state  real   m_emiss      ij   misc  1  -  i012rd  "MARS_EMISS"   "emissivity"               "0 - 1 fraction"
     243state  real   m_co2ice     ij   misc  1  -  i012rd  "MARS_CICE"    "co2 ground ice"           "kg/m2"
     244state  real   m_h2oice     ij   misc  1  -  i012rd  "MARS_WICE"    "h2o ground ice"           "kg/m2"
     245state  real   m_fluxrad    ij   misc  1  -  i012rd  "MARS_FLUXRAD" "net rad flux at surf"     "W.m-2"
     246state  real   m_wstar      ij   misc  1  -  i012rd  "MARS_WSTAR"   "free convection velocity" "m.s-1"
     247state  real   m_tsurf      ij   misc  1  -  i012rd  "MARS_TSURF"   "surface temperature"      "K"
     248state  real   m_tsoil     ilj   misc  1  -  i012rd  "MARS_TSOIL"   "soil temperatures"        "K"
     249state  real   m_q2        ikj   misc  1  Z  i012rd  "MARS_Q2"      "parameterized TKE"        "kg.m-3"
     250state  real   m_isoil     ilj   misc  1  -  i012rd  "MARS_ISOIL"   "soil thermal inertia"     "tiu"
     251state  real   m_dsoil     ilj   misc  1  -  i012rd  "MARS_DSOIL"   "soil depths"              "m"
     252state  real   m_gw        ilj   misc  1  -  i012rd  "MARS_GW"      "gwparam"                  " "
    248253####
    249254####
    250255####MARS MARS MARS MARS MARS
    251256####MARS MARS MARS MARS MARS
    252 
    253 
    254257
    255258#-----------------------------------------------------------------------------------------------------------------------------------------------------------------
     
    360363##
    361364state    real   ptot           ikj     dyn_em      1         -      irh       "PTOT"        "total pressure"      "Pa"
    362 ####### if you choose h here, you will probably want not to output u,v,w,t,etc...
    363 state    real   uave           ikj     dyn_em      1         -      ir       "UAVE"        "average zonal wind"  "m/s"
    364 state    real   ustd           ikj     dyn_em      1         -      ir       "USTD"        "std dev zonal wind"  "m/s"
    365 state    real   vave           ikj     dyn_em      1         -      ir       "VAVE"        "average meridional wind"  "m/s"
    366 state    real   vstd           ikj     dyn_em      1         -      ir       "VSTD"        "std dev meridional wind"  "m/s"
    367 state    real   wave           ikj     dyn_em      1         -      ir       "WAVE"        "average vertical wind"  "m/s"
    368 state    real   wstd           ikj     dyn_em      1         -      ir       "WSTD"        "std dev vertical wind"  "m/s"
    369 state    real   tave           ikj     dyn_em      1         -      ir       "TAVE"        "average pert. potential temperature"  "K"
    370 state    real   tstd           ikj     dyn_em      1         -      ir       "TSTD"        "std dev pert. potential temperature"  "K"
    371 #######
    372 ## ajouter tk, ptot, phtot ??? les deux derniers sont assez smooth...
    373365
    374366#                                               
  • trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/Registry/Registry.EM.newphys

    r1234 r1236  
    7575#### variables physiques ecrites dans les fichiers WRF
    7676#### - h indique l'ecriture
    77 #### - en commentaire, les variables physiques dans physiq.F
    78 #### - utiliser le script automatique Registry.bash
    79 ####
    80 #### YOU CAN OUTPUT ANY 2D OR 3D VARIABLE THAT IS AVAILABLE IN MESO_PHYSIQ.F
    81 #### --- please indicate #SAVEMARS2 for 2D fields and #SAVEMARS3 for 3D fields
    82 ####
    83 ############ name in WRF !!!!! ############# name in NETCDF !!!! ############################################## name in meso_physiq !!!!!
    84 state  real  wTSURF     ij   misc  1  -  rhd  "TSURF"     "SURF TEMPERATURE"                "K"       #SAVEMARS2 tsurf
    85 state  real  wCO2ICE    ij   misc  1  -  rd   "CO2ICE"    "CO2 GROUND ICE"                  "kg m-2"  #SAVEMARS2 co2ice
    86 state  real  wEMISSIV   ij   misc  1  -  rd   "EMISSIV"   "EMISSIVITY"                      ""        #SAVEMARS2 emis
    87 state  real  wTHETA     ij   misc  1  -  rd   "THETA"     "SLOPE INCLINATION"               "deg"     #SAVEMARS2 theta_sl
    88 state  real  wPSI       ij   misc  1  -  rd   "PSI"       "SLOPE ORIENTATION"               "deg"     #SAVEMARS2 psi_sl
    89 state  real  wTAU_DUST  ij   misc  1  -  rhd   "TAU_DUST"  "REFERENCE VISIBLE DUST OPACITY"  ""        #SAVEMARS2 tauref
    90 state  real  wSWDOWNZ   ij   misc  1  -  rhd   "SWDOWNZ"   "DOWNWARD SW FLUX AT SURFACE"     "W m-2"   #SAVEMARS2 fluxsurf_sw_tot     
    91 state  real  wLWDOWNZ   ij   misc  1  -  rhd   "LWDOWNZ"   "DOWNWARD LW FLUX AT SURFACE"     "W m-2"   #SAVEMARS2 fluxsurf_lw
    92 state  real  wSWUP      ij   misc  1  -  rd   "SWUP"      "UPWARD SW FLUX AT TOP"           "W m-2"   #SAVEMARS2 fluxtop_sw_tot   
    93 state  real  wLWUP      ij   misc  1  -  rd   "LWUP"      "UPWARD LW FLUX AT TOP"           "W m-2"   #SAVEMARS2 fluxtop_lw
    94 state  real  wMTOT      ij   misc  1  -  rhd   "MTOT"      "TOTAL MASS WATER VAPOR in pmic"  "pmic"    #SAVEMARS2 mtot
    95 state  real  wICETOT    ij   misc  1  -  rhd   "ICETOT"    "TOTAL MASS WATER ICE"            "kg m-2"  #SAVEMARS2 icetot
    96 state  real  wRAVE      ij   misc  1  -  rhd   "RAVE"      "MEAN ICE RADIUS"                 "m"       #SAVEMARS2 rave
    97 state  real  wRICE      ikj  misc  1  -  rd   "RICE"      "ICE RADIUS"                      "m"       #SAVEMARS3 rice
    98 state  real  wHR_SW     ikj  misc  1  -  rd   "HR_SW"     "HEATING RATE SW"                 "K/s"     #SAVEMARS3 zdtsw
    99 state  real  wHR_LW     ikj  misc  1  -  rd   "HR_LW"     "HEATING RATE LW"                 "K/s"     #SAVEMARS3 zdtlw
    100 state  real  wHR_SH     ikj  misc  1  -  rd   "HR_SH"     "HEATING RATE sens. heat"         "K/s"     #SAVEMARS3 zdtdif
    101 state  real  wQSURFICE  ij   misc  1  -  rhd   "QSURFICE"  "WATER ICE AT SURFACE"            "kg m-2"  #SAVEMARS2 qsurfice
    102 state  real  wQSURFDUST ij   misc  1  -  rd   "QSURFDUST" "DUST MASS AT SURFACE"            "kg m-2"  #SAVEMARS2 qsurfdust
    103 state  real  wRDUST     ikj  misc  1  -  rd   "RDUST"     "DUST RADIUS"                     "m"       #SAVEMARS3 rdust
    104 state  real  wHR_NIR    ikj  misc  1  -  rd   "HR_NIR"    "HEATING RATE nirco2"             "K/s"     #SAVEMARS3 zdtnirco2
    105 state  real  wHR_NLTE   ikj  misc  1  -  rd   "HR_NLTE"   "HEATING RATE nlte"               "K/s"     #SAVEMARS3 zdtnlte
    106 state  real  wALBBARE   ij   misc  1  -  rhd   "ALBBARE"   "SOIL ALBEDO"                     ""        #SAVEMARS2 albedodat
    107 state  real  wVMR_ICE   ikj  misc  1  -  rhd   "VMR_ICE"   "VOL. MIXING RATIO ICE"           "ppm"     #SAVEMARS3 vmr
    108 state  real  wTAU_ICE   ij   misc  1  -  rhd   "TAU_ICE"   "CLOUD OD at 825 cm-1 TES"        ""        #SAVEMARS2 tauTES
    109 state  real  wPDTZ      ikj  misc  1  -  rd   "PDT"       "TEMP TENDENCY"                   "K s-1"   #SAVEMARS3 pdt
    110 state  real  wZMAX_TH   ij   misc  1  -  rhd   "ZMAX_TH"   "MAXIMUM LEVEL REACHED IN TH"     "m"       #SAVEMARS2 zmax_th
    111 state  real  wHFMAX_TH  ij   misc  1  -  rhd   "HFMAX_TH"  "MAXIMUM TH HEAT FLUX"            "m.K/s"   #SAVEMARS2 hfmax_th
    112 state  real  wWSTAR     ij   misc  1  -  rhd   "WSTAR"     "FREE CONVECTION VELOCITY FROM TH" "m/s"    #SAVEMARS2 wstar
    113 state  real  wZ0SET     ij   misc  1  -  rd   "Z0SET"     "SET SURFACE ROUGHNESS"           "m"       #SAVEMARS2 z0
    114 
     77####
     78####
     79#### RADIATIVE TRANSFER
     80state  real  HR_SW     ikj   misc  1  -  h  "HR_SW"     "HEATING RATE SW"                 "K/s"
     81state  real  HR_LW     ikj   misc  1  -  h  "HR_LW"     "HEATING RATE LW"                 "K/s"
     82state  real  SWDOWNZ    ij   misc  1  -  h  "SWDOWNZ"   "DOWNWARD SW FLUX AT SURFACE"     "W m-2"
     83#### DUST CYCLE
     84state  real  TAU_DUST   ij   misc  1  -  h  "TAU_DUST"  "REFERENCE VISIBLE DUST OPACITY"  ""
     85state  real  RDUST     ikj   misc  1  -  h  "RDUST"     "DUST RADIUS"                     "m"
     86state  real  QSURFDUST  ij   misc  1  -  h  "QSURFDUST" "DUST MASS AT SURFACE"            "kg m-2"
     87#### CLOUDS
     88state  real  MTOT       ij   misc  1  -  h  "MTOT"      "TOTAL MASS WATER VAPOR in pmic"  "pmic"
     89state  real  ICETOT     ij   misc  1  -  h  "ICETOT"    "TOTAL MASS WATER ICE"            "kg m-2"
     90state  real  VMR_ICE   ikj   misc  1  -  h  "VMR_ICE"   "VOL. MIXING RATIO ICE"           "ppm"
     91state  real  TAU_ICE    ij   misc  1  -  h  "TAU_ICE"   "CLOUD OD at 825 cm-1 TES"        ""
     92state  real  RICE      ikj   misc  1  -  h  "RICE"      "ICE RADIUS"                      "m"
     93#### THERMALS
     94state  real  ZMAX       ij   misc  1  -  h  "ZMAX"      "MAXIMUM LEVEL THERMALS"          "m"   
     95state  real  HFMAX      ij   misc  1  -  h  "HFMAX"     "MAXIMUM PBL HEAT FLUX"           "m.K/s"
    11596####
    11697####
     
    209190####
    210191#### variables dans real
     192#### -- si on change le nom on doit le changer jusque readmeteo !
    211193####
    212194############# in module_initialize ################# in geo_em.d**.nc ############################################
     
    229211#### variables dans wrf
    230212####
    231 ############# in module_initialize ################## in solve_em and lmd_driver ###############################
    232 state  real   albedo_gcm      ij   misc  1  -  i012rd  "MARS_ALB"     "albedo of naked ground"   "0 - 1 fraction"
    233 state  real   therm_inert     ij   misc  1  -  i012rd  "MARS_TI"      "thermal inertia"          "J/m2/K/s0.5"
    234 state  real   mars_z0         ij   misc  1  -  i012rd  "MARS_Z0"      "surface roughness"        "m"
    235 state  real   slpx            ij   misc  1  -  i012rd  "SLOPEX"       "slope x direction"        "rad"
    236 state  real   slpy            ij   misc  1  -  i012rd  "SLOPEY"       "slope y direction"        "rad"
    237 state  real   mars_emiss      ij   misc  1  -  i012rd  "MARS_EMISS"   "emissivity"               "0 - 1 fraction"
    238 state  real   mars_cice       ij   misc  1  -  i012rd  "MARS_CICE"    "co2 ice"                  "kg/m2"
    239 state  real   mars_wice       ij   misc  1  -  i012rd  "MARS_WICE"    "h2o ice"                  "kg/m2"
    240 state  real   mars_fluxrad    ij   misc  1  -  i012rd  "MARS_FLUXRAD" "net rad flux at surf"     "W.m-2"
    241 state  real   mars_wstar      ij   misc  1  -  i012rd  "MARS_WSTAR"   "free convection velocity" "m.s-1"
    242 state  real   mars_tsurf      ij   misc  1  -  i012rd  "MARS_TSURF"   "surface temperature" "K"
    243 state  real   mars_tsoil     ilj   misc  1  -  i012rd  "MARS_TSOIL"   "soil temperatures"        "K"
    244 state  real   mars_q2        ikj   misc  1  Z  i012rd  "MARS_Q2"      "turbulent kinetic energy" "kg.m-3"
    245 state  real   mars_isoil     ilj   misc  1  -  i012rd  "MARS_ISOIL"   "soil thermal inertia"     "tiu"
    246 state  real   mars_dsoil     ilj   misc  1  -  i012rd  "MARS_DSOIL"   "soil depths"              "m"
    247 state  real   mars_gw        ilj   misc  1  -  i012rd  "MARS_GW"      "gwparam"                  " "
     213#### 'm_' prefix is to avoid redundancies with possible existing terrestrial variables
     214####
     215####          vvvv nom pour module_initialize, solve_em, lmd_driver (interne fortran)
     216####                                                vvvv nom fichier netCDF (important initialisation
     217################################################################################################################
     218state  real   m_albedo     ij   misc  1  -  i012rd  "MARS_ALB"     "albedo of naked ground"   "0 - 1 fraction"
     219state  real   m_ti         ij   misc  1  -  i012rd  "MARS_TI"      "thermal inertia"          "J/m2/K/s0.5"
     220state  real   m_z0         ij   misc  1  -  i012rd  "MARS_Z0"      "surface roughness"        "m"
     221state  real   slpx         ij   misc  1  -  i012rd  "SLOPEX"       "slope x direction"        "rad"
     222state  real   slpy         ij   misc  1  -  i012rd  "SLOPEY"       "slope y direction"        "rad"
     223state  real   m_emiss      ij   misc  1  -  i012rd  "MARS_EMISS"   "emissivity"               "0 - 1 fraction"
     224state  real   m_co2ice     ij   misc  1  -  i012rhd "MARS_CICE"    "CO2 GROUND ICE"           "kg/m2"
     225state  real   m_h2oice     ij   misc  1  -  i012rhd "MARS_WICE"    "H2O GROUND ICE"           "kg/m2"
     226state  real   m_fluxrad    ij   misc  1  -  i012rhd "MARS_FLUXRAD" "net rad flux at surf"     "W.m-2"
     227state  real   m_wstar      ij   misc  1  -  i012rhd "MARS_WSTAR"   "FREE CONVECTION VELOCITY" "m.s-1"
     228state  real   m_tsurf      ij   misc  1  -  i012rhd "MARS_TSURF"   "SURFACE TEMPERATURE"      "K"
     229state  real   m_tsoil     ilj   misc  1  -  i012rhd "MARS_TSOIL"   "SOIL TEMPERATURES"        "K"
     230state  real   m_q2        ikj   misc  1  Z  i012rhd "MARS_Q2"      "parameterized TKE"        "kg.m-3"
     231state  real   m_isoil     ilj   misc  1  -  i012rd  "MARS_ISOIL"   "soil thermal inertia"     "tiu"
     232state  real   m_dsoil     ilj   misc  1  -  i012rd  "MARS_DSOIL"   "soil depths"              "m"
     233state  real   m_gw        ilj   misc  1  -  i012rd  "MARS_GW"      "gwparam"                  " "
    248234####
    249235####
    250236####MARS MARS MARS MARS MARS
    251237####MARS MARS MARS MARS MARS
    252 
    253 
    254238
    255239#-----------------------------------------------------------------------------------------------------------------------------------------------------------------
     
    360344##
    361345state    real   ptot           ikj     dyn_em      1         -      irh       "PTOT"        "total pressure"      "Pa"
    362 ####### if you choose h here, you will probably want not to output u,v,w,t,etc...
    363 state    real   uave           ikj     dyn_em      1         -      ir       "UAVE"        "average zonal wind"  "m/s"
    364 state    real   ustd           ikj     dyn_em      1         -      ir       "USTD"        "std dev zonal wind"  "m/s"
    365 state    real   vave           ikj     dyn_em      1         -      ir       "VAVE"        "average meridional wind"  "m/s"
    366 state    real   vstd           ikj     dyn_em      1         -      ir       "VSTD"        "std dev meridional wind"  "m/s"
    367 state    real   wave           ikj     dyn_em      1         -      ir       "WAVE"        "average vertical wind"  "m/s"
    368 state    real   wstd           ikj     dyn_em      1         -      ir       "WSTD"        "std dev vertical wind"  "m/s"
    369 state    real   tave           ikj     dyn_em      1         -      ir       "TAVE"        "average pert. potential temperature"  "K"
    370 state    real   tstd           ikj     dyn_em      1         -      ir       "TSTD"        "std dev pert. potential temperature"  "K"
    371 #######
    372 ## ajouter tk, ptot, phtot ??? les deux derniers sont assez smooth...
    373346
    374347#                                               
  • trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/dyn_em/module_initialize_quarter_ss.F

    r1199 r1236  
    455455ENDIF
    456456    grid%tsk(i,j) = tsurf_input
     457    grid%m_tsurf(i,j) = tsurf_input
    457458!!MARS
    458459    grid%xlat(i,j) = lat_input
    459460    grid%xlong(i,j) = lon_input!+float(i)*config_flags%dx/59000.
    460     grid%mars_emiss(i,j)=0.95
    461     grid%mars_cice(i,j)=0.
    462     grid%mars_wice(i,j)=0.
     461    grid%m_emiss(i,j)=0.95
     462    grid%m_co2ice(i,j)=0.
     463    grid%m_h2oice(i,j)=0.
    463464!! >> Used for restarts only:
    464     grid%mars_q2(i,:,j)=0.
    465     grid%mars_fluxrad(i,j)=0.
    466     grid%mars_wstar(i,j)=0.
    467     grid%mars_tsurf(i,j)=0.
     465    grid%m_q2(i,:,j)=0.
     466    grid%m_fluxrad(i,j)=0.
     467    grid%m_wstar(i,j)=0.
    468468!! <<
    469469    write(6,*) 'NOTE TO SELF. slpx and slpy set to 0 which means no slope insolation.'
    470470    grid%slpx(i,j) = 0.
    471471    grid%slpy(i,j) = 0.
     472   DO k=1,config_flags%num_soil_layers
     473    grid%m_tsoil(i,k,j) = 0.
     474   ENDDO
    472475    !!! COMMENT THE LINES BELOW IF YOU DON'T WANT CORIOLIS TERMS
    473476    !!! cf. doc WRF2008 page 11 for e and f expressions
  • trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/dyn_em/module_initialize_real.F

    r1199 r1236  
    266266         DO j = jts, MIN(jte,jde-1)
    267267           DO i = its, MIN(ite,ide-1)
    268 !!****MARS: tsk is surface temperature           
    269               grid%tsk(i,j) = grid%em_tsk_gc(i,j)
    270268              grid%tmn(i,j) = grid%em_tmn_gc(i,j)
    271269              grid%xlat(i,j) = grid%em_xlat_gc(i,j)
     
    273271              grid%ht(i,j) = grid%em_ht_gc(i,j)
    274272!!****MARS
    275               grid%albedo_gcm(i,j) = grid%em_albedo_gcm_gc(i,j)
    276               grid%therm_inert(i,j) = grid%em_therm_inert_gc(i,j)
     273              grid%m_tsurf(i,j) = grid%em_tsk_gc(i,j)
     274              grid%m_albedo(i,j) = grid%em_albedo_gcm_gc(i,j)
     275              grid%m_ti(i,j) = grid%em_therm_inert_gc(i,j)
    277276              grid%slpx(i,j) = grid%em_slpx_gc(i,j)
    278277              grid%slpy(i,j) = grid%em_slpy_gc(i,j)
    279               grid%mars_emiss(i,j)=grid%st000010(i,j)
    280               grid%mars_cice(i,j)=grid%st010040(i,j)
    281               grid%mars_wice(i,j)=grid%sm100200(i,j)
    282 !! >> Used for restarts only:
    283               grid%mars_q2(i,:,j)=0.
    284               grid%mars_tsurf(i,j)=0.
    285 !! <<
     278              grid%m_emiss(i,j) = grid%st000010(i,j)
     279              grid%m_co2ice(i,j) = grid%st010040(i,j)
     280              grid%m_h2oice(i,j) = grid%sm100200(i,j)
     281              grid%m_q2(i,:,j) = 0.
    286282                  !! one more security ... co2ice cannot be negative
    287                   IF (grid%mars_cice(i,j) .lt. 0.) grid%mars_cice(i,j)=0.
    288                   IF (grid%mars_wice(i,j) .lt. 0.) grid%mars_wice(i,j)=0.
     283                  IF (grid%m_co2ice(i,j) .lt. 0.) grid%m_co2ice(i,j)=0.
     284                  IF (grid%m_h2oice(i,j) .lt. 0.) grid%m_h2oice(i,j)=0.
    289285
    290286              DO k = 1, config_flags%num_soil_layers 
    291                 grid%mars_tsoil(i,k,j)=grid%em_tsoil_gc(i,k+1,j) !!ici k+1, because em_tsoil_gc dim is num_metgrid_levels !!
     287                grid%m_tsoil(i,k,j)=grid%em_tsoil_gc(i,k+1,j) !!ici k+1, because em_tsoil_gc dim is num_metgrid_levels !!
    292288              ENDDO 
    293289
     
    296292#ifdef NEWPHYS
    297293
    298               grid%mars_wstar(i,j)=0.  !! used for restarts
    299               grid%mars_fluxrad(i,j)=0.  !! used for restarts
    300 
    301               grid%mars_z0(i,j) = 0.
    302               grid%mars_z0(i,j) = grid%em_z0_gc(i,j)*0.01  !! in cm in surface.nc but in m in physiq.F
     294              grid%m_wstar(i,j)=0.
     295              grid%m_fluxrad(i,j)=0.
     296
     297              grid%m_z0(i,j) = 0.
     298              grid%m_z0(i,j) = grid%em_z0_gc(i,j)*0.01  !! in cm in surface.nc but in m in physiq.F
    303299              !IF (config_flags%init_Z0 .ne. 0.) THEN
    304300              !   grid%z0 = grid%z0*0. + config_flags%init_Z0
     
    307303              ! here, that bit is necessary for new soil model !         
    308304              IF (config_flags%init_TI .ne. 0.) THEN
    309                   grid%therm_inert = grid%therm_inert*0. + config_flags%init_TI
     305                  grid%m_ti = grid%m_ti*0. + config_flags%init_TI
    310306                  print *, 'constant thermal inertia ', config_flags%init_TI
    311307              ENDIF
    312308
    313309              DO k = 1, config_flags%num_soil_layers 
    314                 grid%mars_isoil(i,k,j)=grid%em_isoil_gc(i,k+1,j)
    315                 grid%mars_dsoil(i,k,j)=grid%em_dsoil_gc(i,k+1,j)
     310                grid%m_isoil(i,k,j)=grid%em_isoil_gc(i,k+1,j)
     311                grid%m_dsoil(i,k,j)=grid%em_dsoil_gc(i,k+1,j)
    316312              ENDDO
    317313
    318314              DO k = 1, config_flags%num_soil_layers
    319315                !!!!!!!!!!!!!!!!! DONE in soil_setting.F
    320                 IF (grid%mars_dsoil(i,k,j) == -999.) THEN  !! old soil depths (or) no info in files
    321                    grid%mars_dsoil(i,k,j) = sqrt(887.75/3.14)*((2.**(k-0.5))-1.) * grid%therm_inert(i,j) / wvolcapa
     316                IF (grid%m_dsoil(i,k,j) == -999.) THEN  !! old soil depths (or) no info in files
     317                   grid%m_dsoil(i,k,j) = sqrt(887.75/3.14)*((2.**(k-0.5))-1.) * grid%m_ti(i,j) / wvolcapa
    322318                       !!! ATTENTION il faut interpoler si le nombre de niveaux change
    323319                       !!! voir soil_setting.F (olddepthdef=.true. ; interpol=.true.)
    324320                       !!! mais: en meso-echelle on a juste a prendre le mm nombre de niveaux que le GCM   
    325321                ENDIF
    326                 IF (grid%mars_isoil(i,k,j) == -999.) THEN  !! old soil model (or) no 3D thermal inertia   
    327                    grid%mars_isoil(i,k,j) = grid%therm_inert(i,j)
     322                IF (grid%m_isoil(i,k,j) == -999.) THEN  !! old soil model (or) no 3D thermal inertia   
     323                   grid%m_isoil(i,k,j) = grid%m_ti(i,j)
    328324                ELSE             
    329                    IF (grid%mars_dsoil(i,k,j) .le. sqrt(88775./3.14) * grid%therm_inert(i,j) / wvolcapa) THEN
    330                            grid%mars_isoil(i,k,j) = grid%therm_inert(i,j)  !! if depth < skin depth, we use hi-res TI
     325                   IF (grid%m_dsoil(i,k,j) .le. sqrt(88775./3.14) * grid%m_ti(i,j) / wvolcapa) THEN
     326                           grid%m_isoil(i,k,j) = grid%m_ti(i,j)  !! if depth < skin depth, we use hi-res TI
    331327                   ELSE  !! if depth > skin depth, we use low-res (GCM) TI
    332328                         !! except for a transition layer
    333329                         !!   EM: and, well, it would be wrong to sum up TI values
    334330                         !!   EM: (cf. last page of soil model technical document)
    335                            IF (grid%mars_dsoil(i,k-1,j) .le. sqrt(88775./3.14) * grid%therm_inert(i,j) / wvolcapa) THEN
    336                                    grid%mars_isoil(i,k,j) = &
     331                           IF (grid%m_dsoil(i,k-1,j) .le. sqrt(88775./3.14) * grid%m_ti(i,j) / wvolcapa) THEN
     332                                   grid%m_isoil(i,k,j) = &
    337333                                   sqrt( &
    338                                          ( grid%mars_dsoil(i,k+1,j) - grid%mars_dsoil(i,k-1,j) ) &
     334                                         ( grid%m_dsoil(i,k+1,j) - grid%m_dsoil(i,k-1,j) ) &
    339335                                         / &
    340                                          ( ( (grid%mars_dsoil(i,k,j) - grid%mars_dsoil(i,k-1,j)) &
    341                                               / (grid%mars_isoil(i,k-1,j)*grid%mars_isoil(i,k-1,j)) ) &
     336                                         ( ( (grid%m_dsoil(i,k,j) - grid%m_dsoil(i,k-1,j)) &
     337                                              / (grid%m_isoil(i,k-1,j)*grid%m_isoil(i,k-1,j)) ) &
    342338                                           + &
    343                                            ( (grid%mars_dsoil(i,k+1,j) - grid%mars_dsoil(i,k,j)) &
    344                                               / (grid%mars_isoil(i,k+1,j)*grid%mars_isoil(i,k+1,j)) ) &
     339                                           ( (grid%m_dsoil(i,k+1,j) - grid%m_dsoil(i,k,j)) &
     340                                              / (grid%m_isoil(i,k+1,j)*grid%m_isoil(i,k+1,j)) ) &
    345341                                         ) &
    346342                                       )
    347                            ENDIF       !! grid%mars_isoil(i,k-1,j) was changed at previous step to value grid%therm_inert(i,j)
    348                                        !! grid%mars_isoil(i,k+1,j) is defined to large-scale value grid%em_isoil_gc   
     343                           ENDIF       !! grid%m_isoil(i,k-1,j) was changed at previous step to value grid%m_ti(i,j)
     344                                       !! grid%m_isoil(i,k+1,j) is defined to large-scale value grid%em_isoil_gc   
    349345                   ENDIF       
    350346                ENDIF
    351                 IF (grid%mars_tsoil(i,k,j) .lt. 20.) THEN  !!! une securite pour les anciens diagfi qui n'ont que 10 niveaux
    352                    IF (k .ne. 1) grid%mars_tsoil(i,k,j) = grid%mars_tsoil(i,k-1,j)
     347                IF (grid%m_tsoil(i,k,j) .lt. 20.) THEN  !!! une securite pour les anciens diagfi qui n'ont que 10 niveaux
     348                   IF (k .ne. 1) grid%m_tsoil(i,k,j) = grid%m_tsoil(i,k-1,j)
    353349                ENDIF
    354350                !!!!!!!!!!!!!!!!! DONE in soil_setting.F
     
    358354!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    359355
    360 grid%mars_gw(i,1,j)=grid%st040100(i,j)  !!ZMEA
    361 grid%mars_gw(i,2,j)=grid%st100200(i,j)  !!ZSTD
    362 grid%mars_gw(i,3,j)=grid%sm000010(i,j)  !!ZSIG
    363 grid%mars_gw(i,4,j)=grid%sm010040(i,j)  !!ZGAM
    364 grid%mars_gw(i,5,j)=grid%sm040100(i,j)  !!ZTHE
     356grid%m_gw(i,1,j)=grid%st040100(i,j)  !!ZMEA
     357grid%m_gw(i,2,j)=grid%st100200(i,j)  !!ZSTD
     358grid%m_gw(i,3,j)=grid%sm000010(i,j)  !!ZSIG
     359grid%m_gw(i,4,j)=grid%sm010040(i,j)  !!ZGAM
     360grid%m_gw(i,5,j)=grid%sm040100(i,j)  !!ZTHE
    365361
    366362           END DO
     
    385381    !DO j = jts, MIN(jte,jde-1)
    386382    !DO i = its, MIN(ite,ide-1)
    387     !   grid%therm_inert(i,j) = config_flags%init_TI
     383    !   grid%m_ti(i,j) = config_flags%init_TI
    388384    !ENDDO
    389385    !ENDDO
    390   grid%therm_inert = grid%therm_inert*0. + config_flags%init_TI
     386  grid%m_ti = grid%m_ti*0. + config_flags%init_TI
    391387  print *, 'constant thermal inertia ', config_flags%init_TI
    392388
     
    411407!DO j = jts, MIN(jte,jde-1)
    412408!DO i = its, MIN(ite,ide-1)
    413 !yeah = grid%mars_tsoil(i,k,j) + yeah
     409!yeah = grid%m_tsoil(i,k,j) + yeah
    414410!yeahc = yeahc + 1.
    415411!ENDDO
     
    418414!DO j = jts, MIN(jte,jde-1)
    419415!DO i = its, MIN(ite,ide-1)
    420 !grid%mars_tsoil(i,k,j) = yeah / yeahc
     416!grid%m_tsoil(i,k,j) = yeah / yeahc
    421417!ENDDO
    422418!ENDDO
     
    427423IF (config_flags%init_AL .ne. 0.) THEN
    428424
    429   grid%albedo_gcm = grid%albedo_gcm*0. + config_flags%init_AL
     425  grid%m_albedo = grid%m_albedo*0. + config_flags%init_AL
    430426  print *, 'constant albedo ', config_flags%init_AL
    431427
     
    477473        print *, 'p', grid%em_rh_gc(its+1,:,jts+1)
    478474        print *, 'geop', grid%em_ght_gc(its+1,:,jts+1)
    479         print *, 'albedo', grid%albedo_gcm(its+1,jts+1)
    480         print *, 'thermal inertia', grid%therm_inert(its+1,jts+1)
     475        print *, 'albedo', grid%m_albedo(its+1,jts+1)
     476        print *, 'thermal inertia', grid%m_ti(its+1,jts+1)
    481477        print *, 'topography', grid%ht(its+1,jts+1)
    482478        print *, 'toposoil', grid%toposoil(its+1,jts+1)
    483         print *, 'surface temperature', grid%tsk(its+1,jts+1)
     479        print *, 'surface temperature', grid%m_tsurf(its+1,jts+1)
    484480        print *, 'surface pressure', grid%psfc(its+1,jts+1), grid%em_psfc_gc(its+1,jts+1)
    485481
     
    491487                grid%em_rh_gc(i,:,j)=grid%em_rh_gc(its+1,:,jts+1)
    492488                grid%em_ght_gc(i,:,j) = grid%em_ght_gc(its+1,:,jts+1)
    493 grid%albedo_gcm(i,j) = grid%albedo_gcm(its+1,jts+1)
    494 grid%therm_inert(i,j) = grid%therm_inert(its+1,jts+1)
     489grid%m_albedo(i,j) = grid%m_albedo(its+1,jts+1)
     490grid%m_ti(i,j) = grid%m_ti(its+1,jts+1)
    495491                grid%ht(i,j) = grid%ht(its+1,jts+1)
    496492                grid%toposoil(i,j) = grid%toposoil(its+1,jts+1)
    497                 grid%tsk(i,j) = grid%tsk(its+1,jts+1)
     493                grid%m_tsurf(i,j) = grid%m_tsurf(its+1,jts+1)
    498494                grid%psfc(i,j) = grid%psfc(its+1,jts+1)
    499495                grid%em_psfc_gc(i,j) = grid%em_psfc_gc(its+1,jts+1)
    500496grid%slpx(i,j) = 0.
    501497grid%slpy(i,j) = 0.
    502 grid%mars_emiss(i,j) = 0.95
    503 grid%mars_cice(i,j) = 0.
    504 grid%mars_wice(i,j) = 0.
    505 grid%mars_tsoil(i,:,j)=grid%mars_tsoil(its+1,:,jts+1)
     498grid%m_emiss(i,j) = 0.95
     499grid%m_co2ice(i,j) = 0.
     500grid%m_h2oice(i,j) = 0.
     501grid%m_tsoil(i,:,j)=grid%m_tsoil(its+1,:,jts+1)
    506502
    507503!!!
    508 grid%mars_isoil(i,:,j)=grid%mars_isoil(its+1,:,jts+1)
    509 grid%mars_dsoil(i,:,j)=grid%mars_dsoil(its+1,:,jts+1)
     504grid%m_isoil(i,:,j)=grid%m_isoil(its+1,:,jts+1)
     505grid%m_dsoil(i,:,j)=grid%m_dsoil(its+1,:,jts+1)
    510506
    511507!! T.Michaels trick to break symmetry
  • trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/dyn_em/solve_em.F

    r802 r1236  
    859859     &        ,MARS_MODE=config_flags%mars   &
    860860           ! added variables
    861      &        ,MARS_ALB=grid%albedo_gcm,MARS_TI=grid%therm_inert  &
    862      &        ,MARS_CICE=grid%mars_cice,MARS_EMISS=grid%mars_emiss   & 
    863      &        ,MARS_WICE=grid%mars_wice         &
    864      &        ,MARS_TSOIL=grid%mars_tsoil       &
    865      &        ,MARS_Q2=grid%mars_q2             &
    866      &        ,MARS_TSURF=grid%mars_tsurf       &
     861     &        ,M_ALBEDO=grid%m_albedo,M_TI=grid%m_ti  &
     862     &        ,M_CO2ICE=grid%m_co2ice,M_EMISS=grid%m_emiss   & 
     863     &        ,M_H2OICE=grid%m_h2oice     &
     864     &        ,M_TSOIL=grid%m_tsoil       &
     865     &        ,M_Q2=grid%m_q2             &
     866     &        ,M_TSURF=grid%m_tsurf       &
    867867#ifdef NEWPHYS
    868      &        ,MARS_FLUXRAD=grid%mars_fluxrad   &
    869      &        ,MARS_WSTAR=grid%mars_wstar       &
    870      &        ,MARS_ISOIL=grid%mars_isoil       &
    871      &        ,MARS_DSOIL=grid%mars_dsoil       &
    872      &        ,MARS_Z0=grid%mars_z0             &
     868     &        ,M_FLUXRAD=grid%m_fluxrad   &
     869     &        ,M_WSTAR=grid%m_wstar       &
     870     &        ,M_ISOIL=grid%m_isoil       &
     871     &        ,M_DSOIL=grid%m_dsoil       &
     872     &        ,M_Z0=grid%m_z0             &
    873873     &        ,CST_Z0=config_flags%init_Z0      &
    874874#endif
    875      &        ,MARS_GW=grid%mars_gw  & 
     875     &        ,M_GW=grid%m_gw  & 
    876876     &        ,NUM_SOIL_LAYERS=config_flags%num_soil_layers    &
    877877           ! cst fields
     
    881881     &        ,DIFF_OPT=config_flags%diff_opt     &
    882882     &        ,KM_OPT=config_flags%km_opt         &
    883            ! additional diagnostics
    884      &        ,UAVE=grid%em_uave, USTD=grid%em_ustd &
    885      &        ,VAVE=grid%em_vave, VSTD=grid%em_vstd &
    886      &        ,WAVE=grid%em_wave, WSTD=grid%em_wstd &
    887      &        ,TAVE=grid%em_tave, TSTD=grid%em_tstd &
    888883     &        ,HISTORY_INTERVAL=model_config_rec%history_interval(1)  &
    889884#ifndef NOPHYS
     
    891886          ! OUTPUT VARIABLES !
    892887          !------------------!
     888#ifdef NEWPHYS
     889     &       ,HR_SW=grid%HR_SW   &
     890     &       ,HR_LW=grid%HR_LW   &
     891     &       ,SWDOWNZ=grid%SWDOWNZ   &
     892     &       ,TAU_DUST=grid%TAU_DUST   &
     893     &       ,RDUST=grid%RDUST   &
     894     &       ,QSURFDUST=grid%QSURFDUST   &
     895     &       ,MTOT=grid%MTOT   &
     896     &       ,ICETOT=grid%ICETOT   &
     897     &       ,VMR_ICE=grid%VMR_ICE   &
     898     &       ,TAU_ICE=grid%TAU_ICE   &
     899     &       ,RICE=grid%RICE   &
     900     &       ,ZMAX=grid%ZMAX   &
     901     &       ,HFMAX=grid%HFMAX &
     902     &       ,USTM=grid%USTM   &
     903     &       ,HFX=grid%HFX &
     904#else
    893905#include "module_lmd_driver_output4.inc"
     906#endif
    894907#endif
    895908     &        ,SLPX=grid%slpx,SLPY=grid%slpy,RESTART=config_flags%restart)
  • trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/phys/module_lmd_driver.F

    r1212 r1236  
    2929        num_3d_s,SCALAR, &
    3030        MARS_MODE, &
    31         MARS_ALB,MARS_TI,MARS_CICE,MARS_EMISS, &
    32         MARS_WICE, &
    33         MARS_TSOIL, &
    34         MARS_Q2, &
    35         MARS_TSURF, &
    36 #ifdef NEWPHYS
    37         MARS_FLUXRAD, &
    38         MARS_WSTAR, &
    39         MARS_ISOIL, &
    40         MARS_DSOIL, &
    41         MARS_Z0, &
     31        M_ALBEDO,M_TI,M_CO2ICE,M_EMISS, &
     32        M_H2OICE, &
     33        M_TSOIL, &
     34        M_Q2, &
     35        M_TSURF, &
     36#ifdef NEWPHYS
     37        M_FLUXRAD, &
     38        M_WSTAR, &
     39        M_ISOIL, &
     40        M_DSOIL, &
     41        M_Z0, &
    4242        CST_Z0, &
    4343#endif
    44         MARS_GW, &
     44        M_GW, &
    4545        NUM_SOIL_LAYERS, &
    4646        CST_AL, &
     
    4949        diff_opt, &
    5050        km_opt, &
    51         UAVE, USTD, &
    52         VAVE, VSTD, &
    53         WAVE, WSTD, &
    54         TAVE, TSTD, &
    5551        HISTORY_INTERVAL, &
    5652#ifndef NOPHYS
     
    119115     MSFT,MSFU,MSFV, &
    120116     XLAT,XLONG,HT,  &
    121      MARS_ALB,MARS_TI,MARS_EMISS, &
     117     M_ALBEDO,M_TI,M_EMISS, &
    122118     SLPX,SLPY
    123119REAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT   )  :: &
    124      MARS_CICE,MARS_WICE, &
    125      MARS_TSURF
     120     M_CO2ICE,M_H2OICE, &
     121     M_TSURF
    126122! 3D arrays
    127123REAL, DIMENSION( ims:ime, kms:kme, jms:jme ), INTENT(IN ) :: &
    128124     dz8w,p8w,p,exner,t,t8w,rho,u,v,w,z,th
    129125REAL, DIMENSION( ims:ime, kms:kme+1, jms:jme ), INTENT(INOUT ) :: &
    130      MARS_Q2
     126     M_Q2
    131127!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    132 REAL, DIMENSION( ims:ime, kms:kme, jms:jme ), INTENT(INOUT ) :: &
    133      UAVE, USTD, VAVE, VSTD, WAVE, WSTD, TAVE, TSTD
    134128INTEGER, INTENT(IN   ) :: HISTORY_INTERVAL
    135129!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    136130REAL, DIMENSION( ims:ime, NUM_SOIL_LAYERS, jms:jme ), INTENT(INOUT )  :: &
    137      MARS_TSOIL
     131     M_TSOIL
    138132#ifdef NEWPHYS
    139133REAL, INTENT(IN  ) :: CST_Z0
    140134REAL, DIMENSION( ims:ime, NUM_SOIL_LAYERS, jms:jme ), INTENT(IN   )  :: &
    141      MARS_ISOIL, MARS_DSOIL         
     135     M_ISOIL, M_DSOIL         
    142136REAL, DIMENSION( ims:ime, jms:jme ), INTENT(IN   )  :: &
    143      MARS_Z0
     137     M_Z0
    144138REAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT   )  :: &
    145      MARS_FLUXRAD,MARS_WSTAR
     139     M_FLUXRAD,M_WSTAR
    146140#endif
    147141REAL, DIMENSION( ims:ime, 5, jms:jme ), INTENT(IN   )  :: &
    148      MARS_GW
     142     M_GW
    149143! 4D arrays
    150144INTEGER, INTENT(IN ) :: num_3d_s
     
    924918!-----------------------------------------!
    925919IF (JULYR .ne. 9999) THEN
    926  zmea_val=MARS_GW(i,1,j)
    927  zstd_val=MARS_GW(i,2,j)
    928  zsig_val=MARS_GW(i,3,j)
    929  zgam_val=MARS_GW(i,4,j)
    930  zthe_val=MARS_GW(i,5,j)
     920 zmea_val=M_GW(i,1,j)
     921 zstd_val=M_GW(i,2,j)
     922 zsig_val=M_GW(i,3,j)
     923 zgam_val=M_GW(i,4,j)
     924 zthe_val=M_GW(i,5,j)
    931925ELSE
    932926 IF ( (i == ips) .AND. (j == jps) ) PRINT *,'** Mars ** IDEALIZED SIMULATION GWdrag OFF'
     
    943937IF (JULYR .ne. 9999) THEN
    944938 IF (CST_AL == 0) THEN
    945  albedodat_val=MARS_ALB(i,j)
     939 albedodat_val=M_ALBEDO(i,j)
    946940 ELSE
    947941 albedodat_val=CST_AL
     
    949943 ENDIF
    950944 IF (CST_TI == 0) THEN
    951  inertiedat_val=MARS_TI(i,j)
     945 inertiedat_val=M_TI(i,j)
    952946 ELSE
    953947 inertiedat_val=CST_TI
     
    967961IF (JULYR .ne. 9999) THEN
    968962 IF (CST_Z0 == 0) THEN
    969    z0_val = MARS_Z0(i,j)
     963   z0_val = M_Z0(i,j)
    970964 ELSE
    971965   z0_val = CST_Z0
     
    999993! Ground temperature, emissivity, CO2 ice cover !
    1000994!-----------------------------------------------!
    1001 IF (.not. restart) THEN
    1002    tsurf_val=tsk(i,j) ! because tsk is not updated in lmd_driver, the stored value in restart is at t, not t+dt
    1003                       ! note to aslmd: i dont know why we dont update tsk, so I use MARS_TSURF to be conservative
    1004 ELSE
    1005    tsurf_val=MARS_TSURF(i,j)
    1006 ENDIF
    1007 emis_val=MARS_EMISS(i,j)
    1008 co2ice_val=MARS_CICE(i,j)
     995IF (M_TSURF(i,j) .gt. 0.) THEN
     996  tsurf_val=M_TSURF(i,j)
     997ELSE
     998  tsurf_val=TSK(i,j) ! retro-compatibility
     999ENDIF
     1000emis_val=M_EMISS(i,j)
     1001co2ice_val=M_CO2ICE(i,j)
    10091002
    10101003!------------------------!
     
    10121005!------------------------!
    10131006IF (JULYR .ne. 9999) THEN
    1014   IF (MARS_TSOIL(i,1,j) .gt. 0.) THEN
    1015    tsoil_val(:)=MARS_TSOIL(i,:,j)
     1007  IF (M_TSOIL(i,1,j) .gt. 0.) THEN
     1008   tsoil_val(:)=M_TSOIL(i,:,j)
    10161009  ELSE
    10171010   tsoil_val = tsoil_val*0. + tsurf_val
    10181011  ENDIF
    10191012#ifdef NEWPHYS
    1020   isoil_val(:)=MARS_ISOIL(i,:,j)
    1021   dsoil_val(:)=MARS_DSOIL(i,:,j)
     1013  isoil_val(:)=M_ISOIL(i,:,j)
     1014  dsoil_val(:)=M_DSOIL(i,:,j)
    10221015#endif
    10231016ELSE
     
    10281021   ELSE
    10291022     !this is a restart run. We must not set tsoil to tsurf in the init.
    1030      !tsoil was saved in physiq.F under the name MARS_TSOIL in the restart file
     1023     !tsoil was saved in physiq.F under the name M_TSOIL in the restart file
    10311024     !(see Registry)
    1032      tsoil_val(k)=MARS_TSOIL(i,k,j)
     1025     tsoil_val(k)=M_TSOIL(i,k,j)
    10331026   ENDIF
    10341027
     
    10551048    CASE(1)
    10561049    qsurf_val(1)=0.
    1057     qsurf_val(2)=MARS_WICE(i,j)    !! logique avec wtnom(2) = 'h2o_ice' defini ci-dessus
     1050    qsurf_val(2)=M_H2OICE(i,j)    !! logique avec wtnom(2) = 'h2o_ice' defini ci-dessus
    10581051                                   !! ----- retrocompatible ancienne physique
    10591052                                   !! ----- [H2O ice is last tracer in qsurf in LMD physics]
     
    10661059    CASE(11)
    10671060    qsurf_val(1)=0.
    1068     qsurf_val(2)=MARS_WICE(i,j)    !! logique avec wtnom(2) = 'h2o_ice' defini ci-dessus
     1061    qsurf_val(2)=M_H2OICE(i,j)    !! logique avec wtnom(2) = 'h2o_ice' defini ci-dessus
    10691062    qsurf_val(3)=0.                !! not coupled with lifting for the moment [non remobilise]
    10701063    qsurf_val(4)=0.
    10711064    CASE(12)   
    10721065    qsurf_val(1)=0.
    1073     qsurf_val(2)=MARS_WICE(i,j)    !! logique avec wtnom(2) = 'h2o_ice' defini ci-dessus
     1066    qsurf_val(2)=M_H2OICE(i,j)    !! logique avec wtnom(2) = 'h2o_ice' defini ci-dessus
    10741067    qsurf_val(3)=0.                !! not coupled with lifting for the moment [non remobilise]
    10751068    qsurf_val(4)=0.
     
    11561149#endif
    11571150ELSE
    1158    q2_val(:)=MARS_Q2(i,:,j)
    1159 #ifdef NEWPHYS
    1160    fluxrad_val=MARS_FLUXRAD(i,j)
    1161    wstar_val=MARS_WSTAR(i,j)
     1151   q2_val(:)=M_Q2(i,:,j)
     1152#ifdef NEWPHYS
     1153   fluxrad_val=M_FLUXRAD(i,j)
     1154   wstar_val=M_WSTAR(i,j)
    11621155#endif
    11631156ENDIF
     
    15241517#ifndef NORESTART
    15251518#ifdef SPECIAL_NEST_SAVE
    1526 MARS_TSOIL(i,:,j)=save_tsoil_restart(subs,:,id)
    1527 MARS_CICE(i,j)=save_co2ice_restart(subs,id)
    1528 MARS_Q2(i,kps:kpe+1,j)=save_q2_restart(subs,:,id)
     1519M_TSOIL(i,:,j)=save_tsoil_restart(subs,:,id)
     1520M_CO2ICE(i,j)=save_co2ice_restart(subs,id)
     1521M_Q2(i,kps:kpe+1,j)=save_q2_restart(subs,:,id)
    15291522SELECT CASE (MARS_MODE)
    15301523   CASE (1,11,12)
    1531      MARS_WICE(i,j)=save_qsurf_restart(subs,2,id)  !! see above Tracer at surface
     1524     M_H2OICE(i,j)=save_qsurf_restart(subs,2,id)  !! see above Tracer at surface
    15321525END SELECT
    1533 MARS_TSURF(i,j)=save_tsurf_restart(subs,id)
    1534 #ifdef NEWPHYS
    1535 MARS_WSTAR(i,j)=save_wstar_restart(subs,id)
    1536 MARS_FLUXRAD(i,j)=save_fluxrad_restart(subs,id)
     1526M_TSURF(i,j)=save_tsurf_restart(subs,id)
     1527#ifdef NEWPHYS
     1528M_WSTAR(i,j)=save_wstar_restart(subs,id)
     1529M_FLUXRAD(i,j)=save_fluxrad_restart(subs,id)
    15371530#endif
    15381531#else
    1539 MARS_TSOIL(i,:,j)=save_tsoil_restart(subs,:)
    1540 MARS_CICE(i,j)=save_co2ice_restart(subs)
    1541 MARS_Q2(i,kps:kpe+1,j)=save_q2_restart(subs,:)
     1532M_TSOIL(i,:,j)=save_tsoil_restart(subs,:)
     1533M_CO2ICE(i,j)=save_co2ice_restart(subs)
     1534M_Q2(i,kps:kpe+1,j)=save_q2_restart(subs,:)
    15421535SELECT CASE (MARS_MODE)
    15431536   CASE (1,11,12)
    1544      MARS_WICE(i,j)=save_qsurf_restart(subs,2)  !! see above Tracer at surface
     1537     M_H2OICE(i,j)=save_qsurf_restart(subs,2)  !! see above Tracer at surface
    15451538END SELECT
    1546 MARS_TSURF(i,j)=save_tsurf_restart(subs)
    1547 #ifdef NEWPHYS
    1548 MARS_WSTAR(i,j)=save_wstar_restart(subs)
    1549 MARS_FLUXRAD(i,j)=save_fluxrad_restart(subs)
     1539M_TSURF(i,j)=save_tsurf_restart(subs)
     1540#ifdef NEWPHYS
     1541M_WSTAR(i,j)=save_wstar_restart(subs)
     1542M_FLUXRAD(i,j)=save_fluxrad_restart(subs)
    15501543#endif
    15511544#endif
  • trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/phys/module_lmd_driver.F.new

    r1234 r1236  
    3030        num_3d_s,SCALAR, &
    3131        MARS_MODE, &
    32         MARS_ALB,MARS_TI,MARS_CICE,MARS_EMISS, &
    33         MARS_WICE, &
    34         MARS_TSOIL, &
    35         MARS_Q2, &
    36         MARS_TSURF, &
    37         MARS_FLUXRAD, &
    38         MARS_WSTAR, &
    39         MARS_ISOIL, &
    40         MARS_DSOIL, &
    41         MARS_Z0, &
    42         CST_Z0, &
    43         MARS_GW, &
     32        M_ALBEDO,M_TI,M_CO2ICE,M_EMISS, &
     33        M_H2OICE,M_TSOIL,M_Q2,M_TSURF, &
     34        M_FLUXRAD,M_WSTAR,M_ISOIL,M_DSOIL,&
     35        M_Z0, CST_Z0, M_GW, &
    4436        NUM_SOIL_LAYERS, &
    45         CST_AL, &
    46         CST_TI, &
    47         isfflx, &
    48         diff_opt, &
    49         km_opt, &
    50         UAVE, USTD, &
    51         VAVE, VSTD, &
    52         WAVE, WSTD, &
    53         TAVE, TSTD, &
     37        CST_AL, CST_TI, &
     38        isfflx, diff_opt, km_opt, &
    5439        HISTORY_INTERVAL, &
     40! sert a rien ce NOPHYS. il le faudrait sur tout.
    5541#ifndef NOPHYS
    56 #include "module_lmd_driver_output1.inc"
     42        HR_SW,HR_LW,SWDOWNZ,&
     43        TAU_DUST,RDUST,QSURFDUST,&
     44        MTOT,ICETOT,VMR_ICE,TAU_ICE,RICE,&
     45        HFMAX,ZMAX,&
     46        USTM,HFX,&
    5747#endif
    5848        SLPX,SLPY,RESTART)
     
    8373                        peri_day,obliquit,emin_turb, &
    8474                        lmixmin
    85    use turb_mod, only: q2,wstar,hfmax_th
     75   use turb_mod, only: q2,wstar,ustar,sensibFlux,&
     76                       hfmax_th,zmax_th,turb_resolved
    8677   use dimradmars_mod, only: fluxrad
    8778   use tracer_mod, only: noms
    8879   use comcstfi_h, only: omeg,mugaz
    8980   use comgeomfi_h, only: ini_fillgeom
     81   USE comm_wrf
    9082#endif
    9183
     
    9385  IMPLICIT NONE
    9486!==================================================================
    95 
    96 !==================================================================
    97 ! COMMON
    98 !==================================================================
    99 
    100 #ifndef NOPHYS
    101 !
    102 ! INCLUDE AUTOMATIQUEMENT GENERE A PARTIR DU REGISTRY
    103 !
    104 include "../mars_lmd/libf/phymars/wrf_output_2d.h"
    105 include "../mars_lmd/libf/phymars/wrf_output_3d.h"
    106 #endif
    10787
    10888!==================================================================
     
    124104REAL, INTENT(IN  ) :: CST_AL, CST_TI
    125105REAL, INTENT(IN  ) :: PTOP
     106INTEGER, INTENT(IN   ) :: HISTORY_INTERVAL
    126107! 2D arrays         
    127 REAL, DIMENSION( ims:ime, jms:jme ), INTENT(IN   )  :: &
     108REAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT)  :: &
    128109     MSFT,MSFU,MSFV, &
    129110     XLAT,XLONG,HT,  &
    130      MARS_ALB,MARS_TI,MARS_EMISS, &
    131      SLPX,SLPY
    132 REAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT   )  :: &
    133      MARS_CICE,MARS_WICE, &
    134      MARS_TSURF
     111     M_ALBEDO,M_TI,M_EMISS, &
     112     SLPX,SLPY, &
     113     M_CO2ICE,M_H2OICE, &
     114     M_TSURF, M_Z0, &
     115     M_FLUXRAD,M_WSTAR, &
     116     PSFC,TSK
     117REAL, DIMENSION( ims:ime, jms:jme ), INTENT(OUT) :: &
     118     SWDOWNZ,&
     119     TAU_DUST,QSURFDUST,&
     120     MTOT,ICETOT,TAU_ICE,&
     121     HFMAX,ZMAX,&
     122     USTM,HFX
    135123! 3D arrays
    136124REAL, DIMENSION( ims:ime, kms:kme, jms:jme ), INTENT(IN ) :: &
    137125     dz8w,p8w,p,exner,t,t8w,rho,u,v,w,z,th
     126REAL, DIMENSION( ims:ime, kms:kme, jms:jme ), INTENT(OUT ) :: &
     127     RTHBLTEN,RUBLTEN,RVBLTEN, &
     128     HR_SW,HR_LW,RDUST,VMR_ICE,RICE
    138129REAL, DIMENSION( ims:ime, kms:kme+1, jms:jme ), INTENT(INOUT ) :: &
    139      MARS_Q2
    140 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    141 REAL, DIMENSION( ims:ime, kms:kme, jms:jme ), INTENT(INOUT ) :: &
    142      UAVE, USTD, VAVE, VSTD, WAVE, WSTD, TAVE, TSTD
    143 INTEGER, INTENT(IN   ) :: HISTORY_INTERVAL
    144 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     130     M_Q2
    145131REAL, DIMENSION( ims:ime, NUM_SOIL_LAYERS, jms:jme ), INTENT(INOUT )  :: &
    146      MARS_TSOIL
     132     M_TSOIL,M_ISOIL, M_DSOIL
    147133REAL, INTENT(IN  ) :: CST_Z0
    148 REAL, DIMENSION( ims:ime, NUM_SOIL_LAYERS, jms:jme ), INTENT(IN   )  :: &
    149      MARS_ISOIL, MARS_DSOIL         
    150 REAL, DIMENSION( ims:ime, jms:jme ), INTENT(IN   )  :: &
    151      MARS_Z0
    152 REAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT   )  :: &
    153      MARS_FLUXRAD,MARS_WSTAR
    154134REAL, DIMENSION( ims:ime, 5, jms:jme ), INTENT(IN   )  :: &
    155      MARS_GW
     135     M_GW
    156136! 4D arrays
    157137INTEGER, INTENT(IN ) :: num_3d_s
     
    160140! Logical
    161141LOGICAL, INTENT(IN ) :: restart
    162 
    163 !-------------------------------------------
    164 ! OUTPUT VARIABLES
    165 !-------------------------------------------
    166 !
    167 ! Generated from Registry
    168 !
    169 ! default definitions :
    170 ! 2D : TSK, PSFC
    171 ! 3D : RTHBLTEN,RUBLTEN,RVBLTEN
    172 #ifndef NOPHYS
    173 #include "module_lmd_driver_output2.inc"
    174    REAL, DIMENSION(:,:), ALLOCATABLE :: output_tab2d
    175    REAL, DIMENSION(:,:,:), ALLOCATABLE :: output_tab3d
    176 #else
    177    REAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT)  :: PSFC,TSK
    178    REAL, DIMENSION( ims:ime, kms:kme, jms:jme ), INTENT(OUT)  :: RTHBLTEN,RUBLTEN,RVBLTEN
    179 #endif
    180 !-------------------------------------------
    181 ! OUTPUT VARIABLES
    182 !-------------------------------------------
    183 
    184142
    185143!-------------------------------------------   
     
    201159   REAL :: aire_val,lat_val,lon_val
    202160   REAL :: phisfi_val,albedodat_val,inertiedat_val
    203    REAL :: tsurf_val,co2ice_val,emis_val
    204161   REAL :: zmea_val,zstd_val,zsig_val,zgam_val,zthe_val
    205162   REAL :: theta_val, psi_val
     
    230187   INTEGER :: test
    231188   REAL :: wappel_phys
    232    LOGICAL :: flag_LES
    233189   LOGICAL, SAVE :: flag_first_restart
    234190!**************************************************
     
    270226
    271227IF (JULYR .ne. 9999) THEN
    272     flag_LES = .false.  ! "True" LES is not available in this version
     228    turb_resolved = .false.  ! "True" LES is not available in this version
    273229    PRINT *, '*** REAL-CASE SIMULATION ***'
    274230ELSE
     
    278234          PRINT *, '*** diff_opt = 2 *** km_opt = 2'
    279235          PRINT *, '*** forcing is isfflx = ',isfflx
    280           flag_LES = .true.
     236          turb_resolved = .true.
    281237          !! SPECIAL LES
    282238     ELSE
     
    284240          PRINT *, '*** diff_opt = ',diff_opt
    285241          PRINT *, '*** km_opt = ',km_opt
    286           flag_LES = .false.
     242          turb_resolved = .false.
    287243          !! IDEALIZED, no LES
    288244          !! cependant, ne veut-on pas pouvoir
     
    302258jte = j_end(num_tiles)
    303259!!
    304 IF (flag_LES .eqv. .false.) THEN
     260IF (turb_resolved .eqv. .false.) THEN
    305261 relax=0
    306262 sponge_top=0               ! another value than 0 triggers instabilities 
     
    311267jps=jts
    312268jpe=jte
    313 IF (flag_LES .eqv. .false.) THEN
     269IF (turb_resolved .eqv. .false.) THEN
    314270 IF (ips .eq. ids)   ips=its+relax !! IF tests necesary for parallel runs
    315271 IF (ipe .eq. ide-1) ipe=ite-relax
     
    318274ENDIF
    319275kps=kts         !! start at surface
    320 IF (flag_LES .eqv. .false.) THEN
     276IF (turb_resolved .eqv. .false.) THEN
    321277 kpe=kte-sponge_top
    322278ELSE
     
    492448! inputs ...
    493449#ifndef NOPHYS
    494 ALLOCATE(output_tab2d(ngrid,n2d))
    495 ALLOCATE(output_tab3d(ngrid,nlayer,n3d))
     450CALL allocate_comm_wrf(ngrid,nlayer)
    496451#endif
    497452ALLOCATE(q2_val(nlayer+1))
     
    841796IF (JULYR .ne. 9999) THEN
    842797 IF (CST_AL == 0) THEN
    843  albedodat_val=MARS_ALB(i,j)
     798 albedodat_val=M_ALBEDO(i,j)
    844799 ELSE
    845800 albedodat_val=CST_AL
     
    855810!-----------------------------------------!
    856811IF (JULYR .ne. 9999) THEN
    857  zmea_val=MARS_GW(i,1,j)
    858  zstd_val=MARS_GW(i,2,j)
    859  zsig_val=MARS_GW(i,3,j)
    860  zgam_val=MARS_GW(i,4,j)
    861  zthe_val=MARS_GW(i,5,j)
     812 zmea_val=M_GW(i,1,j)
     813 zstd_val=M_GW(i,2,j)
     814 zsig_val=M_GW(i,3,j)
     815 zgam_val=M_GW(i,4,j)
     816 zthe_val=M_GW(i,5,j)
    862817ELSE
    863818 IF ( (i == ips) .AND. (j == jps) ) PRINT *,'** Mars ** IDEALIZED SIMULATION GWdrag OFF'
     
    880835IF (JULYR .ne. 9999) THEN
    881836 IF (CST_Z0 == 0) THEN
    882    z0_val = MARS_Z0(i,j)
     837   z0_val = M_Z0(i,j)
    883838 ELSE
    884839   z0_val = CST_Z0
     
    905860! Ground temperature, emissivity, CO2 ice cover !
    906861!-----------------------------------------------!
    907 IF (.not. restart) THEN
    908    tsurf_val=tsk(i,j) ! because tsk is not updated in lmd_driver, the stored value in restart is at t, not t+dt
    909                       ! note to aslmd: i dont know why we dont update tsk, so I use MARS_TSURF to be conservative
    910 ELSE
    911    tsurf_val=MARS_TSURF(i,j)
    912 ENDIF
    913 tsurf(subs) = tsurf_val
    914 emis(subs) = MARS_EMISS(i,j)
    915 co2ice(subs) = MARS_CICE(i,j)
     862tsurf(subs) = M_TSURF(i,j)
     863emis(subs) = M_EMISS(i,j)
     864co2ice(subs) = M_CO2ICE(i,j)
    916865!-------------------!
    917866! Tracer at surface !
     
    920869SELECT CASE (MARS_MODE)
    921870    CASE(1)
    922     qsurf_val(2)=MARS_WICE(i,j)    !! logique avec noms(2) = 'h2o_ice' defini ci-dessus
     871    qsurf_val(2)=M_H2OICE(i,j)    !! logique avec noms(2) = 'h2o_ice' defini ci-dessus
    923872                                   !! ----- retrocompatible ancienne physique
    924873                                   !! ----- [H2O ice is last tracer in qsurf in LMD physics]
     
    929878    qsurf_val(2)=q_prof(1,2)     
    930879    CASE(11)
    931     qsurf_val(2)=MARS_WICE(i,j)    !! logique avec noms(2) = 'h2o_ice' defini ci-dessus
     880    qsurf_val(2)=M_H2OICE(i,j)    !! logique avec noms(2) = 'h2o_ice' defini ci-dessus
    932881    qsurf_val(3)=0.                !! not coupled with lifting for the moment [non remobilise]
    933882    CASE(12)
    934     qsurf_val(2)=MARS_WICE(i,j)    !! logique avec noms(2) = 'h2o_ice' defini ci-dessus
     883    qsurf_val(2)=M_H2OICE(i,j)    !! logique avec noms(2) = 'h2o_ice' defini ci-dessus
    935884    qsurf_val(3)=0.                !! not coupled with lifting for the moment [non remobilise]
    936885END SELECT
     
    945894IF (JULYR .ne. 9999) THEN
    946895 IF (CST_TI == 0) THEN
    947  inertiedat_val=MARS_TI(i,j)
     896 inertiedat_val=M_TI(i,j)
    948897 ELSE
    949898 inertiedat_val=CST_TI
     
    957906!--pb de dimensions???!!???
    958907IF (JULYR .ne. 9999) THEN
    959   isoil_val(:)=MARS_ISOIL(i,:,j)
    960   dsoil_val(:)=MARS_DSOIL(i,:,j)
     908  isoil_val(:)=M_ISOIL(i,:,j)
     909  dsoil_val(:)=M_DSOIL(i,:,j)
    961910ELSE
    962911   IF ( nsoil .lt. 18 ) THEN
     
    986935! Deep soil temperatures !
    987936!------------------------!
    988 IF (JULYR .ne. 9999) THEN
    989   IF (MARS_TSOIL(i,1,j) .gt. 0.) THEN
    990    tsoil_val(:)=MARS_TSOIL(i,:,j)
    991   ELSE
    992    tsoil_val = tsoil_val*0. + tsurf_val
    993   ENDIF
    994 ELSE
    995   IF ( (i == ips) .AND. (j == jps) ) PRINT *,'** Mars ** IDEALIZED SIMULATION tsoil is set to tsurf'
     937IF (M_TSOIL(i,1,j) .gt. 0. .and. JULYR .ne. 9999) THEN
     938  tsoil_val(:)=M_TSOIL(i,:,j)
     939ELSE
     940  IF ( (i == ips) .AND. (j == jps) ) PRINT *,'** Mars ** no tsoil. set it to tsurf.'
    996941  do k=1,nsoil
    997    IF (.not.restart) THEN
    998      tsoil_val(k) = tsurf_val
    999    ELSE
    1000      !this is a restart run. We must not set tsoil to tsurf in the init.
    1001      !tsoil was saved in physiq.F under the name MARS_TSOIL in the restart file
    1002      !(see Registry)
    1003      tsoil_val(k)=MARS_TSOIL(i,k,j)
    1004    ENDIF
     942   tsoil_val(k) = M_TSURF(i,j)
    1005943  enddo
    1006944ENDIF
     
    1014952   wstar_val=0.
    1015953ELSE
    1016    q2_val(:)=MARS_Q2(i,:,j)
    1017    wstar_val=MARS_WSTAR(i,j)
     954   q2_val(:)=M_Q2(i,:,j)
     955   wstar_val=M_WSTAR(i,j)
    1018956ENDIF
    1019957q2(subs,:) = q2_val(:)
     
    1026964   fluxrad_val=0.
    1027965ELSE
    1028    fluxrad_val=MARS_FLUXRAD(i,j)
     966   fluxrad_val=M_FLUXRAD(i,j)
    1029967ENDIF
    1030968fluxrad(subs) = fluxrad_val
     
    11071045             firstcall,lastcall,pday,ptime,ptimestep, &
    11081046             pplev,pplay,pphi,pu,pv,pt,pq,pw,         &
    1109              pdu,pdv,pdt,pdq,pdpsrf,tracerdyn,        &
    1110              output_tab2d,output_tab3d,flag_LES)
     1047             pdu,pdv,pdt,pdq,pdpsrf,tracerdyn)
    11111048#endif
     1049print *, '** Mars ** CALL TO LMD PHYSICS DONE'
    11121050DEALLOCATE(pplev)
    11131051DEALLOCATE(pplay)
     
    11181056DEALLOCATE(pw)
    11191057DEALLOCATE(pq)
    1120 
    1121 !-------------------------------!
    1122 ! PHYSIQ OUTPUT IN THE WRF FILE !
    1123 !-------------------------------!
    1124 #ifndef NOPHYS
    1125 DO j = jps,jpe
    1126 DO i = ips,ipe
    1127 subs = (j-jps)*(ipe-ips+1)+(i-ips+1)
    1128 #include "module_lmd_driver_output3.inc" 
    1129        !  ^-- generated from Registry
    1130 ENDDO
    1131 ENDDO
    1132 DEALLOCATE(output_tab2d)
    1133 DEALLOCATE(output_tab3d)
    1134 #endif
    11351058
    11361059!---------------------------------------------------------------------------------!
     
    11501073dq_save(:,:,:)=pdq(:,:,:)
    11511074#endif
     1075
     1076!! OUTPUT OUTPUT OUTPUT
     1077DO j = jps,jpe
     1078DO i = ips,ipe
     1079
     1080  subs = (j-jps)*(ipe-ips+1)+(i-ips+1)
     1081
     1082  !-------------------------------------------------------!
     1083  ! Save key variables for restart and output and nesting ! 
     1084  !-------------------------------------------------------!
     1085  M_TSOIL(i,:,j) = tsoil(subs,:)
     1086  M_CO2ICE(i,j) = co2ice(subs)
     1087  M_Q2(i,kps:kpe+1,j) = q2(subs,:)
     1088  M_TSURF(i,j) = tsurf(subs)
     1089  M_WSTAR(i,j) = wstar(subs)
     1090  M_FLUXRAD(i,j) = fluxrad(subs)
     1091  SELECT CASE (MARS_MODE)
     1092   CASE (1,11,12)
     1093     M_H2OICE(i,j) = qsurf(subs,2)  !! see above Tracer at surface
     1094  END SELECT
     1095
     1096  !! output only (arrays already in phys modules)
     1097  HFMAX(i,j) = HFMAX_TH(subs)
     1098  ZMAX(i,j) = ZMAX_TH(subs)
     1099  USTM(i,j) = ustar(subs)
     1100  HFX(i,j) = sensibFlux(subs)
     1101
     1102  !! output only (cf comm_wrf)
     1103  SWDOWNZ(i,j) = comm_SWDOWNZ(subs)
     1104  TAU_DUST(i,j) = comm_TAU_DUST(subs)
     1105  QSURFDUST(i,j) = comm_QSURFDUST(subs)
     1106  MTOT(i,j) = comm_MTOT(subs)
     1107  ICETOT(i,j) = comm_ICETOT(subs)
     1108  TAU_ICE(i,j) = comm_TAU_ICE(subs)
     1109  HR_SW(i,kps:kpe,j) = comm_HR_SW(subs,kps:kpe)
     1110  HR_LW(i,kps:kpe,j) = comm_HR_LW(subs,kps:kpe)
     1111  RDUST(i,kps:kpe,j) = comm_RDUST(subs,kps:kpe)
     1112  VMR_ICE(i,kps:kpe,j) = comm_VMR_ICE(subs,kps:kpe)
     1113  RICE(i,kps:kpe,j) = comm_RICE(subs,kps:kpe)
     1114
     1115ENDDO
     1116ENDDO
     1117
     1118CALL deallocate_comm_wrf
     1119
    11521120ENDIF call_physics
    11531121
     
    12061174  END SELECT
    12071175   
    1208   !------------------------------------!
    1209   ! Save key variables for restart ! 
    1210   !------------------------------------!
    1211   MARS_TSOIL(i,:,j) = tsoil(subs,:)
    1212   MARS_CICE(i,j) = co2ice(subs)
    1213   MARS_Q2(i,kps:kpe+1,j) = q2(subs,:)
    1214   MARS_TSURF(i,j) = tsurf(subs)
    1215   MARS_WSTAR(i,j) = wstar(subs)
    1216   MARS_FLUXRAD(i,j) = fluxrad(subs)
    1217   SELECT CASE (MARS_MODE)
    1218    CASE (1,11,12)
    1219      MARS_WICE(i,j) = qsurf(subs,2)  !! see above Tracer at surface
    1220   END SELECT
    1221 
    12221176ENDDO
    12231177ENDDO
Note: See TracChangeset for help on using the changeset viewer.