Changeset 76


Ignore:
Timestamp:
Feb 21, 2011, 2:58:25 AM (14 years ago)
Author:
aslmd
Message:

LMD_MM_MARS: remise a plat du traitement des traceurs terminee

[en particulier en vue de l'utilisation nouvelle physique]
--> fonctionnement concluant sur un cas Tharsis hydro 61x61x61
--> ne pas utiliser le cas FASTCASE trop instable avec traceurs
--> reste a tester l'effet d'especes radiativement actives

options dans namelist.input :
mars = 0 ---> pas de traceurs
mars = 1 ---> cycle de l'eau : water vapour + ice
mars = 2 ---> cycle poussieres : un dust bin
mars = 3 ---> cycle poussieres : dustq + dustn [NOUVELLE PHYS seulement]
mars = 11 ---> cycle de l'eau + poussieres [1+3] [NOUVELLE PHYS seulement]

NB: pour les deux derniers, reste un petit travail mineur sur qsurf

(voir dans module_lmd_driver.F)

il faut definir conjointement le callphys.def associe et relancer real.exe

(sinon on transporte juste dynamiquement des 'dummy' traceurs)

il n'est necessaire de recompiler que si le nombre total de traceurs change

Fichiers a mettre a jour si l'on ajoute une option "mars" dans le Registry


Attention suivant les inputs GCM, il faut peut etre egalement changer

  1. readmeteo.F90 dans PREP_MARS et 2. METGRID.TBL dans WPS/metgrid

M 75 mesoscale/LMD_MM_MARS/SRC/WRFV2/Registry/Registry.EM
---> definition du scenario et de l'ordre des traceurs dans SCALAR

M 75 mesoscale/LMD_MM_MARS/SRC/WRFV2/dyn_em/module_initialize_real.F
---> definition des interpolations verticales des champs de traceurs venant du GCM

M 75 mesoscale/LMD_MM_MARS/SRC/WRFV2/dyn_em/solve_em.F
---> definition du traitement a reserver aux bornes
---> --- dans les 4 scenarios precites, on passe aux bornes les champs du GCM

[y compris QH2O_ICE contrairement a ce qui etait par defaut precedemment]

---> --- les lignes relatives a un flux nul aux bornes sont laissees a un cas hypothetique mars>50

M 75 mesoscale/LMD_MM_MARS/SRC/WRFV2/phys/module_lmd_driver.F
---> definition de l'ordre correct des traceurs pour le passage a la physique
---> recuperation des tendances de la physique pour passage a la dynamique
---> NB: c'est dans ce module que sont presents des STOP si mars = 4-10 ou mars > 11

.... il faut donc modifier si l'on ajoute des options

M 75 mesoscale/LMD_MM_MARS/SRC/WRFV2/main/real_em.F
---> definition et calcul des champs a appliquer aux bornes
---> generalise desormais, il n'y a plus qu'a ajouter d'eventuelles nouvelles options 'mars'
---> .... des modifications sont necessaires si on passe plus de 4 traceurs aux bornes

M 75 mesoscale/LMD_MM_MARS/SIMU/runmeso
---> definition du bon nombre de traceurs dans la compilation de la physique puis l'execution

[l'option mars est lue par le script dans namelist.input]

Fichiers tests


A 0 mesoscale/TESTS/newphys_tracers/*
---> pour la nouvelle physique (ici seulement les fichiers def)
---> toutes les options precitees ont ete testes avec succes a l'execution [pas de crash]
---> ... plausibilite physique verifiee rapidement, PAS d'ANALYSE APPROFONDIE pour le moment

A 0 mesoscale/TESTS/LMD_MM_MARS_TESTCASE_water.tar.gz
---> pour l'ancienne physique (introduit precedemment mais n'avait pas ete synchronise)

M 75 mars/libf/phymars/meso_dustlift.F
NB: correction mineure, de facon a recuperer alpha_lift de initracer

Location:
trunk
Files:
10 added
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/chantiers/commit_importants.log

    r66 r76  
    479479* caladvtrac.F (dyn3d) : modifications cosmétiques
    480480
    481 
     481********************
     482**** commit_v76 ****  etape importante d'une serie de commit sur les traceurs dans le mesoscale
     483********************
     484
     485LMD_MM_MARS: remise a plat du traitement des traceurs terminee
     486             [en particulier en vue de l'utilisation nouvelle physique]
     487             --> fonctionnement concluant sur un cas Tharsis hydro 61x61x61
     488             --> ne pas utiliser le cas FASTCASE trop instable avec traceurs
     489             --> reste a tester l'effet d'especes radiativement actives
     490
     491             options dans namelist.input :
     492             mars = 0   ---> pas de traceurs
     493             mars = 1   ---> cycle de l'eau : water vapour + ice
     494             mars = 2   ---> cycle poussieres : un dust bin
     495             mars = 3   ---> cycle poussieres : dustq + dustn [NOUVELLE PHYS seulement]
     496             mars = 11  ---> cycle de l'eau + poussieres [1+3] [NOUVELLE PHYS seulement]
     497                  NB: pour les deux derniers, reste un petit travail mineur sur qsurf
     498                                                 (voir dans module_lmd_driver.F)
     499             il faut definir conjointement le callphys.def associe et relancer real.exe
     500                         (sinon on transporte juste dynamiquement des 'dummy' traceurs)
     501             il n'est necessaire de recompiler que si le nombre total de traceurs change
     502
     503Fichiers a mettre a jour si l'on ajoute une option "mars" dans le Registry
     504--------------------------------------------------------------------------
     505Attention suivant les inputs GCM, il faut peut etre egalement changer
     5061. readmeteo.F90 dans PREP_MARS et 2. METGRID.TBL dans WPS/metgrid
     507
     508M               75   mesoscale/LMD_MM_MARS/SRC/WRFV2/Registry/Registry.EM
     509---> definition du scenario et de l'ordre des traceurs dans SCALAR
     510
     511M               75   mesoscale/LMD_MM_MARS/SRC/WRFV2/dyn_em/module_initialize_real.F
     512---> definition des interpolations verticales des champs de traceurs venant du GCM
     513
     514M               75   mesoscale/LMD_MM_MARS/SRC/WRFV2/dyn_em/solve_em.F
     515---> definition du traitement a reserver aux bornes
     516---> --- dans les 4 scenarios precites, on passe aux bornes les champs du GCM
     517         [y compris QH2O_ICE contrairement a ce qui etait par defaut precedemment]
     518---> --- les lignes relatives a un flux nul aux bornes sont laissees a un cas hypothetique mars>50
     519
     520M               75   mesoscale/LMD_MM_MARS/SRC/WRFV2/phys/module_lmd_driver.F
     521---> definition de l'ordre correct des traceurs pour le passage a la physique
     522---> recuperation des tendances de la physique pour passage a la dynamique
     523---> NB: c'est dans ce module que sont presents des STOP si mars = 4-10 ou mars > 11
     524         .... il faut donc modifier si l'on ajoute des options
     525
     526M               75   mesoscale/LMD_MM_MARS/SRC/WRFV2/main/real_em.F
     527---> definition et calcul des champs a appliquer aux bornes
     528---> generalise desormais, il n'y a plus qu'a ajouter d'eventuelles nouvelles options 'mars'
     529---> .... des modifications sont necessaires si on passe plus de 4 traceurs aux bornes
     530
     531M               75   mesoscale/LMD_MM_MARS/SIMU/runmeso
     532---> definition du bon nombre de traceurs dans la compilation de la physique puis l'execution
     533     [l'option mars est lue par le script dans namelist.input]
     534
     535Fichiers tests
     536--------------
     537A                0   mesoscale/TESTS/newphys_tracers/*
     538---> pour la nouvelle physique (ici seulement les fichiers def)
     539---> toutes les options precitees ont ete testes avec succes a l'execution [pas de crash]
     540---> ... plausibilite physique verifiee rapidement, PAS d'ANALYSE APPROFONDIE pour le moment
     541
     542A                0   mesoscale/TESTS/LMD_MM_MARS_TESTCASE_water.tar.gz
     543---> pour l'ancienne physique (introduit precedemment mais n'avait pas ete synchronise)
     544
     545M               75   mars/libf/phymars/meso_dustlift.F
     546NB: correction mineure, de facon a recuperer alpha_lift de initracer
  • trunk/mars/libf/phymars/meso_dustlift.F

    r49 r76  
    5252          IF(ierr.NE.0) THEN
    5353             stress_seuil = 0.0225
    54              alpha = 1.
    55              write(*,*) 'No file stress.def - set ', stress_seuil, alpha
     54!!!! defini dans initracer
     55!             alpha = 1.
     56             write(*,*) 'No file stress.def - set ',
     57     .                     stress_seuil, alpha_lift
    5658             !stop
    5759          ELSE
     
    6062             write(*,*) 'definir seuil stress : ', stress_seuil, alpha
    6163             CLOSE(99)
     64             alpha_lift(1) = alpha
    6265          ENDIF
    63           alpha_lift(1) = alpha
    6466!****WRF
    6567!****WRF
  • trunk/mesoscale/LMD_MM_MARS/SIMU/runmeso

    r60 r76  
    164164      0) tracers='1' ;;
    165165      1) tracers='2' ;;
    166      11) tracers='5' ;;
     166      2) tracers='1' ;;
     167      3) tracers='2' ;;
     168     11) tracers='4' ;;
    167169      *) tracers='1' ;;
    168170  esac
  • trunk/mesoscale/LMD_MM_MARS/SRC/WRFV2/Registry/Registry.EM

    r72 r76  
    111111####
    112112state  real  -         ikjftb  scalar  1  -  -                         -
    113 state  real  QH2O      ikjftb  scalar  1  -  i01rhusdf=(bdy_interp:dt) "QH2O"       "Water vapor mixing ratio"   "kg kg-1"
    114 state  real  QH2O_ICE  ikjftb  scalar  1  -  i01rhusdf=(bdy_interp:dt) "QH2O_ICE"   "Water ice mixing ratio"     "kg kg-1"
    115 state  real  QDUST     ikjftb  scalar  1  -  i01rhusdf=(bdy_interp:dt) "QDUST"      "Dust mixing ratio"          "kg kg-1"
    116 ####
    117 state  real  Qco2        ikjftb  scalar  1  -  i01rhusdf=(bdy_interp:dt)  "Qco2"         "CO2 mixing ratio"          "kg kg-1"
    118 #state  real  Qdust_mass  ikjftb  scalar  1  -  i01rhusdf=(bdy_interp:dt)  "Qdust_mass"   "dust_mass mixing ratio"    "kg kg-1"
    119 state  real  Qdust_number  ikjftb  scalar  1  -  i01rhusdf=(bdy_interp:dt)  "Qdust_number"   "dust_number mixing ratio"    "kg kg-1"
    120 #state  real  Qh2o_vap  ikjftb  scalar  1  -  i01rhusdf=(bdy_interp:dt)  "Qh2o_vap"   "h2o_vap mixing ratio"    "kg kg-1"
    121 #state  real  Qh2o_ice  ikjftb  scalar  1  -  i01rhusdf=(bdy_interp:dt)  "Qh2o_ice"   "h2o_ice mixing ratio"    "kg kg-1"
     113state  real  qh2o      ikjftb  scalar  1  -  i01rhusdf=(bdy_interp:dt)  "QH2O"          "Water vapor mixing ratio"   "kg kg-1"
     114state  real  qh2o_ice  ikjftb  scalar  1  -  i01rhusdf=(bdy_interp:dt)  "QH2O_ICE"      "Water ice mixing ratio"     "kg kg-1"
     115state  real  qdust     ikjftb  scalar  1  -  i01rhusdf=(bdy_interp:dt)  "QDUST"         "Dust mixing ratio"          "kg kg-1"
     116state  real  qdustn    ikjftb  scalar  1  -  i01rhusdf=(bdy_interp:dt)  "QDUSTN"        "Dust_number mixing ratio"   "kg kg-1"
     117state  real  qco2      ikjftb  scalar  1  -  i01rhusdf=(bdy_interp:dt)  "QCO2"          "CO2 mixing ratio"           "kg kg-1"
    122118####
    123119####
     
    13221318##### MARS OPTIONS
    13231319##
    1324 ## CHANGING THE OPTION CHANGE THE NUMBER OF TRACERS WITHOUT ANY NEED TO RECOMPILE ENTIRELY WRF
    1325 ## HOWEVER, YOU STILL NEED TO RECOMPILE THE PHYSICS BEFORE CHANGING THE OPTION
    1326 ## JUST USE THE COMPILE_ALL SCRIPT FOR A FAST RECOMPILATION
    1327 ## -------
    1328 ## ONE REMAINING PROBLEM IS THE FACT THAT YOU NEED TO RECOMPILE
    1329 ## ENTIRELY IF YOU DO NOT WANT TO OUTPUT THE TRACERS
    1330 ## (FOR EXAMPLE, IF THEY ARE TURNED OFF ...)
    1331 ## -------
     1320## CHANGING THE OPTION CHANGES TRACER REFERENCES WITHOUT ANY NEED TO RECOMPILE ENTIRELY LMD_MM
     1321## --> EVEN IF FIELDS ARE SCHEDULED FOR OUTPUTS ABOVE [WITH h], THESE ARE NOT IN wrfout* FILES
     1322##       UNLESS THE CORRESPONDING mars OPTION IS SELECTED
     1323## --> HOWEVER, YOU STILL NEED TO RECOMPILE THE PHYSICS BEFORE CHANGING THE OPTION
     1324##       AND PROBABLY YOU'LL ALSO HAVE TO CHANGE callphys.def
     1325## --> IF mars IS CHANGED IN THE NAMELIST, YOU HAVE TO RE-RUN real.exe
    13321326##
     1327## IF YOU ADD A mars REFERENCE BELOW, YOU HAVE TO RECOMPILE ENTIRELY THE MODEL
    13331328##
    1334 package   nowater      mars==0                      -              moist:qv
    1335 package   water        mars==1                      -              moist:qv;scalar:qh2o,qh2o_ice
    1336 package   dust         mars==2                      -              moist:qv;scalar:qdust
    1337 #package   newwater     mars==11                     -              scalar:qco2,qh2o,qh2o_ice
    1338 #package   newwater     mars==11                     -              scalar:qco2,qh2o,qh2o_ice,qdust,qdust_number
    1339 ### NOTE: toujours CO2 en dernier
    1340 package   newwater     mars==11                     -              scalar:qh2o,qh2o_ice,qdust,qdust_number,qco2
     1329## THE ORDER of TRACERS IN EACH OPTION IS VERY IMPORTANT
     1330##
     1331package   default      mars==0                      -              -
     1332package   water        mars==1                      -              scalar:qh2o,qh2o_ice
     1333package   dust1        mars==2                      -              scalar:qdust
     1334package   dust2eq      mars==3                      -              scalar:qdust,qdustn
     1335package   newwater     mars==11                     -              scalar:qh2o,qh2o_ice,qdust,qdustn
    13411336##### MARS OPTIONS
    13421337##### MARS OPTIONS
     
    13521347package   ncepcloud3    mp_physics==98               -             moist:qv,qc,qr
    13531348package   ncepcloud5    mp_physics==99               -             moist:qv,qc,qr,qi,qs
    1354 package   thompson       mp_physics==8               -             moist:qv,qc,qr,qi,qs,qg;scalar:qni
     1349package   thompson      mp_physics==8                -             moist:qv,qc,qr,qi,qs,qg;scalar:qni
    13551350
    13561351package   rrtmscheme    ra_lw_physics==1             -             -
  • trunk/mesoscale/LMD_MM_MARS/SRC/WRFV2/dyn_em/module_initialize_real.F

    r75 r76  
    12591259                            its , ite , jts , jte , kts , kte )
    12601260
    1261                          
    1262 if ( config_flags%mars == 2 ) then
    1263        print *, '**** ONE DUST BIN ****'
    1264        print *, '**** I assume this is dustq in met_em ****'
     1261                       
     1262!!!!!!****MARS****!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     1263!!!!!! ****MARS MARS MARS for order in rank for each option, check in REGISTRY.EM
     1264!!!!!!       [a little bit too hardcoded here unfortunately... but e.g. P_QH2O must be known]
     1265!!!!!!       [there is a more flexible option with flags in metgrid.tbl, TBD?]
     1266!!!!!! NB: real_em.F must also be modified
     1267!!!!!! NB2: qvapor is not used to avoid collision with earth-related calculations
     1268if ( ( config_flags%mars == 2 ) .OR. ( config_flags%mars == 3 ) ) then
     1269       print *, '**** INTERPOLATE DUSTQ **** RANK 2 in SCALAR'
    12651270       CALL vert_interp_old ( grid%em_dustq_gc , grid%em_pd_gc , scalar(:,:,:,2) , grid%em_pb , &
    12661271                                    num_metgrid_levels , 'Q' , &
     
    12711276                                    its , ite , jts , jte , kts , kte )
    12721277endif       
    1273 
    1274 if ( (config_flags%mars == 1) .OR. (config_flags%mars == 11) ) then
    1275 !if (size(scalar(0,0,0,:)) > 2) then
    1276 !! autre possibilite: activer les flags dans metgrid.tbl
    1277 !!
    1278 !! pour l'instant les indices sont indiqués en dur en attendant plus souple
    1279 !!
    1280 !!
    1281 
    1282         print *, '**** WATER CYCLE ON ****'
    1283         print *, size(scalar(0,0,0,:)), P_QH2O, P_QH2O_ICE
    1284 
    1285        
    1286         !!****MARS: initialization for water cycle
    1287         !!****MARS:
    1288         !!****MARS: -- note that -real.F was modified to include GCM QH2O boundary conditions
    1289         !!****MARS:              -qvapor was not used to avoid any terrestrial calculations in WRF unsuitable for Mars
    1290         !!****MARS:              -any change and/or modification of variables has to be recorded in the Registry
    1291         !!****MARS:
    1292         !CALL vert_interp_old ( grid%em_hv_gc , grid%em_pd_gc , scalar(:,:,:,P_QH2O) , grid%em_pb , &
    1293         CALL vert_interp_old ( grid%em_hv_gc , grid%em_pd_gc , scalar(:,:,:,2) , grid%em_pb , &
     1278if ( ( config_flags%mars == 3 ) ) then
     1279       print *, '**** INTERPOLATE DUSTN **** RANK 3 in SCALAR'
     1280       CALL vert_interp_old ( grid%em_dustn_gc , grid%em_pd_gc , scalar(:,:,:,3) , grid%em_pb , &
    12941281                                    num_metgrid_levels , 'Q' , &
    12951282                                    interp_type , lagrange_order , lowest_lev_from_sfc , &
     
    12981285                                    ims , ime , jms , jme , kms , kme , &
    12991286                                    its , ite , jts , jte , kts , kte )
    1300         !CALL vert_interp_old ( grid%em_hi_gc , grid%em_pd_gc , scalar(:,:,:,P_QH2O_ICE) , grid%em_pb , &
    1301         CALL vert_interp_old ( grid%em_hi_gc , grid%em_pd_gc , scalar(:,:,:,3) , grid%em_pb , &
     1287endif       
     1288if ( ( config_flags%mars == 1 ) .OR. ( config_flags%mars == 11 ) ) then
     1289       print *, '**** INTERPOLATE HV **** RANK 2 in SCALAR'
     1290       !print *, size(scalar(0,0,0,:)), P_QH2O, P_QH2O_ICE
     1291       CALL vert_interp_old ( grid%em_hv_gc , grid%em_pd_gc , scalar(:,:,:,2) , grid%em_pb , &
    13021292                                    num_metgrid_levels , 'Q' , &
    13031293                                    interp_type , lagrange_order , lowest_lev_from_sfc , &
     
    13061296                                    ims , ime , jms , jme , kms , kme , &
    13071297                                    its , ite , jts , jte , kts , kte )
    1308         !!****MARS:
    1309 
     1298       print *, '**** INTERPOLATE HI **** RANK 3 in SCALAR'
     1299       CALL vert_interp_old ( grid%em_hi_gc , grid%em_pd_gc , scalar(:,:,:,3) , grid%em_pb , &
     1300                                    num_metgrid_levels , 'Q' , &
     1301                                    interp_type , lagrange_order , lowest_lev_from_sfc , &
     1302                                    zap_close_levels , force_sfc_in_vinterp , &
     1303                                    ids , ide , jds , jde , kds , kde , &
     1304                                    ims , ime , jms , jme , kms , kme , &
     1305                                    its , ite , jts , jte , kts , kte )
    13101306endif
    13111307#ifdef NEWPHYS
    1312 if (config_flags%mars == 11) then
    1313         print *, '**** DUST var RADIUS ON ****'
    1314         !print *, size(scalar(0,0,0,:)), P_QDUST, P_Qdust_number
    1315 
     1308if ( config_flags%mars == 11 ) then
     1309       print *, '**** INTERPOLATE DUSTQ **** RANK 4 in SCALAR'             
    13161310       CALL vert_interp_old ( grid%em_dustq_gc , grid%em_pd_gc , scalar(:,:,:,4) , grid%em_pb , &
    13171311                                    num_metgrid_levels , 'Q' , &
     
    13211315                                    ims , ime , jms , jme , kms , kme , &
    13221316                                    its , ite , jts , jte , kts , kte )
    1323 
     1317       print *, '**** INTERPOLATE DUSTQ **** RANK 5 in SCALAR'
    13241318       CALL vert_interp_old ( grid%em_dustn_gc , grid%em_pd_gc , scalar(:,:,:,5) , grid%em_pb , &
    13251319                                    num_metgrid_levels , 'Q' , &
     
    13311325endif
    13321326#endif
     1327!!!!!!****MARS****!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    13331328
    13341329#if 0
  • trunk/mesoscale/LMD_MM_MARS/SRC/WRFV2/dyn_em/solve_em.F

    r75 r76  
    26922692     IF ( ( config_flags%specified .or. config_flags%nested ) .and. rk_step == 1) THEN
    26932693
    2694 !!!!****MARS MARS MARS: what to do with tracers at the boundaries ???
    2695 IF (  ( (config_flags%mars .eq.  1) .AND. (is .EQ. 2) ) &    !! 1   pass only water vapor
     2694!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     2695!!!!****MARS MARS MARS: what to do with tracers at the boundaries ??? !!!!!
     2696!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     2697!IF (  ( (config_flags%mars .eq.  1) .AND. (is .EQ. 2) ) &    !! 1   pass only water vapor
     2698IF  ( (  config_flags%mars .eq.  1                    ) &    !! 1   pass water vapor AND ice
    26962699 .OR. (  config_flags%mars .eq.  2                    ) &    !! 2   pass the dust tracer
    2697  .OR. ( (config_flags%mars .eq. 11) .AND. (is .EQ. 2) ) &    !! 11  pass only water vapor
     2700 .OR. (  config_flags%mars .eq.  3                    ) &    !! 3   pass dust Q and N
     2701! .OR. ( (config_flags%mars .eq. 11) .AND. (is .EQ. 2) ) &    !! 11  pass only water vapor
     2702 .OR. (  config_flags%mars .eq. 11                    ) &    !! 11  pass EVERYTHING
    26982703 .OR. config_flags%nested ) THEN                             !! *   pass all tracers if nested
    26992704         CALL relax_bdy_scalar ( scalar_tend(ims,kms,jms,is),            &
     
    27522757                              k_start    , k_end               )
    27532758
    2754 !!!!****MARS: if parent domain and any other tracer than water vapor, no bdy and simple zero flux bdy condition
    2755 IF (  config_flags%specified  ) THEN
    2756 IF (      ((config_flags%mars .eq. 1 ) .and. (is .ne. 2))  &   
    2757      .OR. ((config_flags%mars .eq. 11) .and. (is .ne. 2))  ) THEN
     2759!!!!!****MARS: if parent domain and any other tracer than water vapor, no bdy and simple zero flux bdy condition
     2760IF ( config_flags%specified ) THEN
     2761!IF (      ((config_flags%mars .eq. 1 ) .and. (is .ne. 2))  &   
     2762!     .OR. ((config_flags%mars .eq. 11) .and. (is .ne. 2))  ) THEN
     2763IF ( config_flags%mars .gt. 50 ) THEN
    27582764
    27592765     !!! YOU HAVE TO ADD A CONDITION HERE IF YOU ADD A mars OPTION in REGISTRY  !!!
  • trunk/mesoscale/LMD_MM_MARS/SRC/WRFV2/main/real_em.F

    r75 r76  
    711711!!!!!MARS: ... mais il est facile d'en ajouter... ajouter simplement des tableaux type q2bdy3dtemp1
    712712IF ( (config_flags%mars .eq. 1) .OR. &
     713     (config_flags%mars .eq. 3) .OR. &
    713714     (config_flags%mars .eq. 11) ) THEN
    714715      CALL couple ( grid%em_mu_2 , grid%em_mub , q2bdy3dtemp1 , grid%scalar(:,:,:,3) , 't' , grid%msft , &
     
    784785ENDIF
    785786IF ( (config_flags%mars .eq. 1) .OR. &
     787     (config_flags%mars .eq. 3) .OR. &
    786788     (config_flags%mars .eq. 11) ) THEN
    787789      CALL stuff_bdy     ( q2bdy3dtemp1 , grid%scalar_b(:,:,:,:,3)   , 'T' , ijds , ijde , spec_bdy_width      , &
     
    860862ENDIF
    861863IF ( (config_flags%mars .eq. 1) .OR. &
     864     (config_flags%mars .eq. 3) .OR. &
    862865     (config_flags%mars .eq. 11) ) THEN
    863866      CALL couple ( grid%em_mu_2 , grid%em_mub , q2bdy3dtemp2 , grid%scalar(:,:,:,3) , 't' , grid%msft , &
     
    937940ENDIF
    938941IF ( (config_flags%mars .eq. 1) .OR. &
     942     (config_flags%mars .eq. 3) .OR. &
    939943     (config_flags%mars .eq. 11) ) THEN
    940944      CALL stuff_bdytend ( q2bdy3dtemp2 , q2bdy3dtemp1 , REAL(interval_seconds) ,grid%scalar_bt(:,:,:,:,3) , 'T' , &
     
    11071111ENDIF
    11081112IF ( (config_flags%mars .eq. 1) .OR. &
     1113     (config_flags%mars .eq. 3) .OR. &
    11091114     (config_flags%mars .eq. 11) ) THEN
    11101115        CALL stuff_bdy     ( q2bdy3dtemp1 , grid%scalar_b(:,:,:,:,3)   , 'T', ijds , ijde , spec_bdy_width      , &
  • trunk/mesoscale/LMD_MM_MARS/SRC/WRFV2/phys/module_lmd_driver.F

    r75 r76  
    618618!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    619619!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    620 #ifdef NEWPHYS
    621 !!! name of tracers -- see Registry.EM for order and traceur.def for names
     620
     621SELECT CASE (MARS_MODE) !! ONLY ALLOW FOR MODES DEFINED IN Registry.EM
     622   CASE(4-10,12:)      !! -- CHANGE THIS if YOU ADDED CASES in REGISTRY.EM
     623   PRINT *, 'NOT SUPPORTED, to be done'
     624   STOP
     625END SELECT
     626!!!!!!!!!!!!!!!!!!! FOR REFERENCE ; FROM REGISTRY.EM
     627!package   default      mars==0                      -              -
     628!package   water        mars==1                      -              scalar:qh2o,qh2o_ice
     629!package   dust1        mars==2                      -              scalar:qdust
     630!package   dust2eq      mars==3                      -              scalar:qdust,qdustn
     631!package   newwater     mars==11                     -              scalar:qh2o,qh2o_ice,qdust,qdustn
     632!!!!!!!!!!!!!!!!!!! FOR REFERENCE
     633
     634#ifdef NEWPHYS
     635!!! name of tracers to mimic entries in tracer.def
     636!!! ----> IT IS IMPORTANT TO KEEP SAME ORDERING AS IN THE REGISTRY !!!!
     637!!!                               SAME NAMING   AS IN THE LMD PHYSICS !!!!
    622638SELECT CASE (MARS_MODE)
    623     CASE(0)  !! NO TRACERS (mars=0)
     639    CASE(0) 
    624640      wtnom(nq) = 'co2'
    625641    CASE(1)
    626       wtnom(1) = 'h2o_vap' 
    627       wtnom(2) = 'h2o_ice'
     642      wtnom(1)  = 'h2o_vap'    
     643      wtnom(2)  = 'h2o_ice'     
    628644    CASE(2)
    629       wtnom(1) = 'dust01'     
    630     CASE(11) !! newwater mars==11 scalar:qh2o,qh2o_ice,qdust,qdust_number,qco2
    631       wtnom(1) = 'h2o_vap'
    632       wtnom(2) = 'h2o_ice'
    633       wtnom(3) = 'dust_mass'
    634       wtnom(4) = 'dust_number'
    635       wtnom(nq) = 'co2'
     645      wtnom(1)  = 'dust01'     
     646    CASE(3)
     647      wtnom(1)  = 'dust_mass'
     648      wtnom(2)  = 'dust_number'
     649    CASE(11)
     650      wtnom(1)  = 'h2o_vap'
     651      wtnom(2)  = 'h2o_ice'
     652      wtnom(3)  = 'dust_mass'
     653      wtnom(4)  = 'dust_number'
    636654END SELECT
    637655#endif
     656
     657
     658!!*******************************************!!
     659!!*******************************************!!
    638660
    639661DO j = jps,jpe
     
    685707    water_vapor_prof(:) = 0.
    686708    water_ice_prof(:) = 0.
     709    CASE(3:)
     710    print *, 'OOOPS... not ready yet.'
     711    STOP
    687712END SELECT
    688713#endif
     
    799824!-------------------!
    800825SELECT CASE (MARS_MODE)
    801     CASE(0)  !! NO TRACERS (mars=0)
     826    CASE(0) 
    802827    qsurf_val(:)=0.
    803     CASE(1)  !! WATER CYCLE (mars=1)
    804 #ifdef NEWPHYS   
     828    CASE(1)
     829    qsurf_val(1)=0.
    805830    qsurf_val(2)=MARS_WICE(i,j)    !! logique avec wtnom(2) = 'h2o_ice' defini ci-dessus
     831                                   !! ----- retrocompatible ancienne physique
     832                                   !! ----- [H2O ice is tracer nqmx in qsurf in LMD physics]
     833    CASE(2) 
     834    qsurf_val(1)=10000.            !! infinite amount of dust, basically
     835#ifdef NEWPHYS
     836    CASE(3)
     837    qsurf_val(:)=0.                !!! temporaire, a definir           
     838    CASE(11)
    806839    qsurf_val(1)=0.
     840    qsurf_val(2)=MARS_WICE(i,j)    !! logique avec wtnom(2) = 'h2o_ice' defini ci-dessus
     841    !!!! petit probleme... alors QSURF sorti dans wrfout n'est pas h2o_ice !
     842    qsurf_val(3)=10000.            !! infinite amount of dust, basically
    807843#else
    808     qsurf_val(2)=MARS_WICE(i,j)    !! attention... H2O ice is tracer nqmx in qsurf in LMD physics
    809     qsurf_val(1)=0.
    810 #endif   
    811     CASE(2)  !! DUST CYCLE (mars=2)
    812     qsurf_val(1)=10000.    !! infinite amount, basically
    813 #ifdef NEWPHYS
    814     CASE(11)
    815     qsurf_val(:)=0. !! provisoire       
    816 #endif
     844    CASE(3:)
     845    print *, 'OOOPS... not ready yet.'
     846    STOP
     847#endif
     848
    817849END SELECT
    818850
     
    950982    CASE(2)  !! DUST CYCLE (mars=2)
    951983    pq(subs,:,nq) = water_vapor_prof(:) !! NB: which is 0, actually (see above)
     984    CASE(3:)
     985    print *, 'OOOPS... not ready yet.'
     986    STOP   
    952987END SELECT
    953988#endif
     
    11581193        !!! Dust
    11591194        SCALAR(i,kps:kpe,j,2)=SCALAR(i,kps:kpe,j,2)+pdq(subs,kps:kpe,nq)
    1160 !!CASE(11) !!!
     1195CASE(3:)
     1196        print *, 'OOOPS... not ready yet.'
     1197        STOP   
    11611198END SELECT
    11621199#endif
Note: See TracChangeset for help on using the changeset viewer.