Ignore:
Timestamp:
Feb 4, 2011, 1:46:39 AM (14 years ago)
Author:
aslmd
Message:

LMD_MM_MARS: element manquant pour runs traceurs avec nouvelle physique
--> avec mars=0 et non actif, le modele fonctionne toujours bien [avec starts JBM et conditions de ses runs]
--> mettre les traceurs avec mars=11 [actifs ou non] semble faire crasher le modele: pourquoi ?

M 54 mesoscale/LMD_MM_MARS/SRC/WRFV2/call_meso_physiq1.inc
M 54 mesoscale/LMD_MM_MARS/SRC/WRFV2/call_meso_physiq2.inc
M 54 mesoscale/LMD_MM_MARS/SRC/WRFV2/call_meso_physiq3.inc
M 54 mesoscale/LMD_MM_MARS/SRC/WRFV2/call_meso_physiq4.inc
M 54 mars/libf/phymars/meso_physiq.F
le tableau tnom est defini dans module_lmd_driver en fonction de config_flag%mars [MARS_MODE]

et passe dans meso_physiq [pour ensuite servir dans initracer]

--> le COMMON advtrac.h est alors necessaire

M 54 mesoscale/LMD_MM_MARS/SRC/WRFV2/Registry/Registry.EM
config_flag%mars defini une serie de traceurs ordonnee dans le tableau scalar

M 54 mesoscale/LMD_MM_MARS/SRC/WRFV2/share/module_model_constants.F
on passe au cp et R du GCM martien pour une complete correspondance

M 54 mesoscale/LMD_MM_MARS/SRC/WRFV2/call_meso_physiq.inc
ce fichier est en fait inutile et pourrait etre supprime

M 54 mesoscale/LMD_MM_MARS/SRC/WRFV2/dyn_em/module_initialize_real.F
M 54 mesoscale/LMD_MM_MARS/SRC/WRFV2/dyn_em/solve_em.F
M 54 mesoscale/LMD_MM_MARS/SRC/WRFV2/phys/module_lmd_driver.F
M 54 mesoscale/LMD_MM_MARS/SRC/WRFV2/main/real_em.F
modifications pour prise en compte des traceurs avec la nouvelle physique
--> avantage des traceurs generiques dans la physique
--> pour l'instant dans SCALAR l'indice 1 est dummy, 2/3 water vapor/ice et dernier CO2

M 54 mesoscale/LMD_MM_MARS/SRC/PREP_MARS/readmeteo_newphys.F90
M 54 mesoscale/LMD_MM_MARS/SRC/WPS/wps_mars/metgrid/METGRID.TBL.ARW_MarsBase_newphys
modifications pour possibilites de passer les tableaux necessaires pour

initialiser et guider les traceurs dans la nouvelle physique

M mars/libf/phymars/dimradmars.h
M mars/libf/phymars/callradite.F
version traceurs non actifs pour tests basiques

Location:
trunk/mesoscale/LMD_MM_MARS/SRC
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • trunk/mesoscale/LMD_MM_MARS/SRC/PREP_MARS/readmeteo_newphys.F90

    r31 r55  
    2222!               02/2008 : include water vapor and ice                    !
    2323!               01/2010 : possible use of diagsoil for new physics       !
     24!               02/2011 : add dust tracers                               !
    2425!                                                                        !
    2526! spiga@lmd.jussieu.fr                                                   !     
     
    8586real, dimension(:,:,:,:), allocatable :: tsoilfile, dsoilfile, isoilfile
    8687real, dimension(:,:,:,:), allocatable :: waterfile, watericefile
     88real, dimension(:,:,:,:), allocatable :: dustfile,dustnfile
    8789
    8890!! Reading the parameter file
     
    213215allocate(waterfile(lonlen,latlen,altlen,timelen))
    214216allocate(watericefile(lonlen,latlen,altlen,timelen))
     217allocate(dustfile(lonlen,latlen,altlen,timelen))
     218allocate(dustnfile(lonlen,latlen,altlen,timelen))
    215219allocate(psfile(lonlen,latlen,timelen))
    216220allocate(tsfile(lonlen,latlen,timelen))
     
    241245waterfile(:,:,:,:)=0
    242246watericefile(:,:,:,:)=0
     247dustfile(:,:,:,:)=0
     248dustnfile(:,:,:,:)=0
    243249psfile(:,:,:)=0
    244250tsfile(:,:,:)=0
     
    568574!!------------------------
    569575
     576!!------------------------
     577!! special dust stuff
     578!!------------------------
     579    print *,'Dust mass'
     580    ierr=NF_INQ_VARID(nid,"dustq",nvarid)
     581    if (ierr.ne.NF_NOERR) then
     582      write(*,*) "...No dustq - Dust mass set to 0"
     583      dustfile(:,:,:,:)=0.
     584    endif
     585    ierr=NF_GET_VAR_REAL(nid,nvarid,dustfile)
     586
     587    print *,'Dust number'
     588    ierr=NF_INQ_VARID(nid,"dustN",nvarid)
     589    if (ierr.ne.NF_NOERR) then
     590      write(*,*) "...No dustN - Dust number set to 0"
     591      dustnfile(:,:,:,:)=0.
     592    endif
     593    ierr=NF_GET_VAR_REAL(nid,nvarid,dustnfile)
     594!!------------------------
     595!! special dust stuff
     596!!------------------------
     597
    570598
    571599!SELECT CASE(ident)
     
    684712!! 1. Surface data
    685713!!---------------------------------------------
     714!!
     715!! a mettre pour tous sinon
     716!!     WRF_DEBUG: Warning DIM             4 , NAME num_metgrid_levels REDIFINED  by
     717!!            var DUSTN            26           25  in wrf_io.F90 line         2349
     718!!
    686719
    687720!
     
    11041137!print *,'The field '//DESC//' was written to '//output
    11051138
     1139!------------------------!
     1140! >>> Write a variable   !
     1141!    ... Copy&Paste part !
     1142!------------------------!
     1143FIELD='DUSTQ'
     1144UNITS='kg/kg'
     1145DESC='Dust mixing ratio'
     1146XLVL=200100.
     1147SLAB=dustfile(:,:,1,time_out(l))
     1148        ! And now put everything in the destination file
     1149        ! ... Header
     1150        write(1) IFV
     1151        write(1) HDATE,XFCST,SOURCE,FIELD,UNITS,DESC,XLVL,NX,NY,IPROJ
     1152        write(1) STARTLOC,STARTLAT,STARTLON,DELTALAT,DELTALON
     1153        ! ... Data
     1154        write(1) SLAB
     1155!print *,'The field '//DESC//' was written to '//output
     1156
     1157!------------------------!
     1158! >>> Write a variable   !
     1159!    ... Copy&Paste part !
     1160!------------------------!
     1161FIELD='DUSTN'
     1162UNITS='part/kg'
     1163DESC='Dust number density'
     1164XLVL=200100.
     1165SLAB=dustnfile(:,:,1,time_out(l))
     1166        ! And now put everything in the destination file
     1167        ! ... Header
     1168        write(1) IFV
     1169        write(1) HDATE,XFCST,SOURCE,FIELD,UNITS,DESC,XLVL,NX,NY,IPROJ
     1170        write(1) STARTLOC,STARTLAT,STARTLON,DELTALAT,DELTALON
     1171        ! ... Data
     1172        write(1) SLAB
     1173!print *,'The field '//DESC//' was written to '//output
     1174
    11061175
    11071176!!----------------------------------------------------
     
    13281397!print *,'The field '//DESC//' was written to '//output
    13291398
     1399!------------------------!
     1400! >>> Write a variable   !
     1401!    ... Copy&Paste part !
     1402!------------------------!
     1403FIELD='DUSTQ'
     1404UNITS='kg/kg'
     1405DESC='Dust mixing ratio'
     1406DO k = 1,altlen
     1407        XLVL=levels(k)
     1408        SLAB=dustfile(:,:,k,time_out(l))
     1409                ! And now put everything in the destination file
     1410                ! ... Header
     1411        write(1) IFV
     1412        write(1) HDATE,XFCST,SOURCE,FIELD,UNITS,DESC,XLVL,NX,NY,IPROJ
     1413        write(1) STARTLOC,STARTLAT,STARTLON,DELTALAT,DELTALON
     1414                ! ... Data
     1415                write(1) SLAB
     1416END DO
     1417!print *,'The field '//DESC//' was written to '//output
     1418
     1419!------------------------!
     1420! >>> Write a variable   !
     1421!    ... Copy&Paste part !
     1422!------------------------!
     1423FIELD='DUSTN'
     1424UNITS='part/kg'
     1425DESC='Dust number density'
     1426DO k = 1,altlen
     1427        XLVL=levels(k)
     1428        SLAB=dustnfile(:,:,k,time_out(l))
     1429                ! And now put everything in the destination file
     1430                ! ... Header
     1431        write(1) IFV
     1432        write(1) HDATE,XFCST,SOURCE,FIELD,UNITS,DESC,XLVL,NX,NY,IPROJ
     1433        write(1) STARTLOC,STARTLAT,STARTLON,DELTALAT,DELTALON
     1434                ! ... Data
     1435                write(1) SLAB
     1436END DO
     1437!print *,'The field '//DESC//' was written to '//output
     1438
    13301439print *,'****done file '//output, int(100.*float(l)/float(FILES)), ' % '
    13311440close(1)
     
    13531462deallocate(waterfile)
    13541463deallocate(watericefile)
     1464deallocate(dustfile)
     1465deallocate(dustnfile)
    13551466deallocate(psfile)
    13561467deallocate(tsfile)
  • trunk/mesoscale/LMD_MM_MARS/SRC/WPS/wps_mars/metgrid/METGRID.TBL.ARW_MarsBase_newphys

    r31 r55  
    561561         missing_value=-9.99e+33
    562562========================================
     563name=DUSTQ
     564#        mandatory=yes    # MUST HAVE THIS FIELD
     565#        interp_option=sixteen_pt+four_pt+average_4pt
     566#        interp_option=sixteen_pt+four_pt
     567         interp_option=four_pt
     568#        fill_lev=200100:const(0.)
     569         fill_missing=-1.0e+30
     570         missing_value=-9.99e+33
     571========================================
     572name=DUSTN
     573#        mandatory=yes    # MUST HAVE THIS FIELD
     574#        interp_option=sixteen_pt+four_pt+average_4pt
     575#        interp_option=sixteen_pt+four_pt
     576         interp_option=four_pt
     577#        fill_lev=200100:const(0.)
     578         fill_missing=-1.0e+30
     579         missing_value=-9.99e+33
     580========================================
  • trunk/mesoscale/LMD_MM_MARS/SRC/WRFV2/Registry/Registry.EM

    r54 r55  
    106106####
    107107####
    108 #### TRACEURS: POUR L'INSTANT NE PAS CHANGER L'ORDRE (>> mais l'ordre n'est-il pas defini plus bas ? dans les options mars ?)
     108#### TRACEURS: l'ordre dans SCALAR est defini plus bas dans les options mars)
    109109#### - effacer le h si l'on veut eviter les sorties
    110110####
     
    192192state  real   isoil_gc       igj   dyn_em  1  Z  i1  "ISOIL"            "soil thermal inertia"    "tiu"
    193193state  real   dsoil_gc       igj   dyn_em  1  Z  i1  "DSOIL"            "soil depths"             "m"
     194state  real   dustq_gc       igj   dyn_em  1  Z  i1  "DUSTQ"            "dust mixing ratio"       "kg/kg"
     195state  real   dustn_gc       igj   dyn_em  1  Z  i1  "DUSTN"            "dust number density"     "kg/kg"
    194196####
    195197#### variables dans wrf
     
    13321334package   dust         mars==2                      -              moist:qv;scalar:qdust
    13331335#package   newwater     mars==11                     -              scalar:qco2,qh2o,qh2o_ice
    1334 package   newwater     mars==11                     -              scalar:qco2,qh2o,qh2o_ice,qdust,qdust_number
     1336#package   newwater     mars==11                     -              scalar:qco2,qh2o,qh2o_ice,qdust,qdust_number
     1337### NOTE: toujours CO2 en dernier
     1338package   newwater     mars==11                     -              scalar:qh2o,qh2o_ice,qdust,qdust_number,qco2
    13351339##### MARS OPTIONS
    13361340##### MARS OPTIONS
  • trunk/mesoscale/LMD_MM_MARS/SRC/WRFV2/call_meso_physiq.inc

    r28 r55  
    77       CALL meso_physiq (ngrid,nlayer,nq,                              &
    88               firstcall,lastcall,wday_ini,pday,ptime,ptimestep,       &
    9                pplev,pplay,pphi,pu, pv, pt, pq, pw,                    &
     9               pplev,pplay,pphi,pu, pv, pt, pq, pw,             &
    1010               pdu, pdv, pdt, pdq, pdpsrf, tracerdyn,          &
    1111               wtsurf,wtsoil,wemis,wq2,wqsurf,wco2ice,                 &
  • trunk/mesoscale/LMD_MM_MARS/SRC/WRFV2/call_meso_physiq1.inc

    r28 r55  
    88               firstcall,lastcall,wday_ini,pday,ptime,ptimestep,       &
    99               pplev,pplay,pphi,pu, pv, pt, pq, pw,                    &
     10#ifdef NEWPHYS
     11               wtnom, &
     12#endif
    1013               pdu, pdv, pdt, pdq, pdpsrf, tracerdyn,          &
    1114               wtsurf,wtsoil,wemis,wq2,wqsurf,wco2ice,                 &
  • trunk/mesoscale/LMD_MM_MARS/SRC/WRFV2/call_meso_physiq2.inc

    r28 r55  
    1111               firstcall,lastcall,wday_ini,pday,ptime,ptimestep,       &
    1212               pplev,pplay,pphi,pu, pv, pt, pq, pw,                    &
     13#ifdef NEWPHYS
     14               wtnom, &
     15#endif
    1316               pdu, pdv, pdt, pdq, pdpsrf, tracerdyn,          &
    1417               wtsurf,wtsoil,wemis,wq2,wqsurf,wco2ice,                 &
     
    2326               firstcall,lastcall,wday_ini,pday,ptime,ptimestep,       &
    2427               pplev,pplay,pphi,pu, pv, pt, pq, pw,                    &
     28#ifdef NEWPHYS
     29               wtnom, &
     30#endif
    2531               pdu, pdv, pdt, pdq, pdpsrf, tracerdyn,          &
    2632               wtsurf,wtsoil,wemis,wq2,wqsurf,wco2ice,                 &
  • trunk/mesoscale/LMD_MM_MARS/SRC/WRFV2/call_meso_physiq3.inc

    r28 r55  
    1111               firstcall,lastcall,wday_ini,pday,ptime,ptimestep,       &
    1212               pplev,pplay,pphi,pu, pv, pt, pq, pw,                    &
     13#ifdef NEWPHYS
     14               wtnom, &
     15#endif
    1316               pdu, pdv, pdt, pdq, pdpsrf, tracerdyn,          &
    1417               wtsurf,wtsoil,wemis,wq2,wqsurf,wco2ice,                 &
     
    2326               firstcall,lastcall,wday_ini,pday,ptime,ptimestep,       &
    2427               pplev,pplay,pphi,pu, pv, pt, pq, pw,                    &
     28#ifdef NEWPHYS
     29               wtnom, &
     30#endif
    2531               pdu, pdv, pdt, pdq, pdpsrf, tracerdyn,          &
    2632               wtsurf,wtsoil,wemis,wq2,wqsurf,wco2ice,                 &
     
    3541               firstcall,lastcall,wday_ini,pday,ptime,ptimestep,       &
    3642               pplev,pplay,pphi,pu, pv, pt, pq, pw,                    &
     43#ifdef NEWPHYS
     44               wtnom, &
     45#endif
    3746               pdu, pdv, pdt, pdq, pdpsrf, tracerdyn,          &
    3847               wtsurf,wtsoil,wemis,wq2,wqsurf,wco2ice,                 &
  • trunk/mesoscale/LMD_MM_MARS/SRC/WRFV2/call_meso_physiq4.inc

    r28 r55  
    1111               firstcall,lastcall,wday_ini,pday,ptime,ptimestep,       &
    1212               pplev,pplay,pphi,pu, pv, pt, pq, pw,                    &
     13#ifdef NEWPHYS
     14               wtnom, &
     15#endif
    1316               pdu, pdv, pdt, pdq, pdpsrf, tracerdyn,          &
    1417               wtsurf,wtsoil,wemis,wq2,wqsurf,wco2ice,                 &
     
    2326               firstcall,lastcall,wday_ini,pday,ptime,ptimestep,       &
    2427               pplev,pplay,pphi,pu, pv, pt, pq, pw,                    &
     28#ifdef NEWPHYS
     29               wtnom, &
     30#endif
    2531               pdu, pdv, pdt, pdq, pdpsrf, tracerdyn,          &
    2632               wtsurf,wtsoil,wemis,wq2,wqsurf,wco2ice,                 &
     
    3541               firstcall,lastcall,wday_ini,pday,ptime,ptimestep,       &
    3642               pplev,pplay,pphi,pu, pv, pt, pq, pw,                    &
     43#ifdef NEWPHYS
     44               wtnom, &
     45#endif
    3746               pdu, pdv, pdt, pdq, pdpsrf, tracerdyn,          &
    3847               wtsurf,wtsoil,wemis,wq2,wqsurf,wco2ice,                 &
     
    4756               firstcall,lastcall,wday_ini,pday,ptime,ptimestep,       &
    4857               pplev,pplay,pphi,pu, pv, pt, pq, pw,                    &
     58#ifdef NEWPHYS
     59               wtnom, &
     60#endif
    4961               pdu, pdv, pdt, pdq, pdpsrf, tracerdyn,          &
    5062               wtsurf,wtsoil,wemis,wq2,wqsurf,wco2ice,                 &
  • trunk/mesoscale/LMD_MM_MARS/SRC/WRFV2/dyn_em/module_initialize_real.F

    r54 r55  
    12621262
    12631263        print *, '**** WATER CYCLE ON ****'
    1264         !print *, size(scalar(0,0,0,:)), P_QH2O, P_QH2O_ICE
     1264        print *, size(scalar(0,0,0,:)), P_QH2O, P_QH2O_ICE
    12651265
    12661266       
     
    12891289        !!****MARS:
    12901290
     1291endif
     1292if (config_flags%mars == 11) then
     1293        print *, '**** DUST var RADIUS ON ****'
     1294        !print *, size(scalar(0,0,0,:)), P_QDUST, P_Qdust_number
     1295
     1296       CALL vert_interp_old ( grid%em_dustq_gc , grid%em_pd_gc , scalar(:,:,:,4) , grid%em_pb , &
     1297                                    num_metgrid_levels , 'Q' , &
     1298                                    interp_type , lagrange_order , lowest_lev_from_sfc , &
     1299                                    zap_close_levels , force_sfc_in_vinterp , &
     1300                                    ids , ide , jds , jde , kds , kde , &
     1301                                    ims , ime , jms , jme , kms , kme , &
     1302                                    its , ite , jts , jte , kts , kte )
     1303
     1304       CALL vert_interp_old ( grid%em_dustn_gc , grid%em_pd_gc , scalar(:,:,:,5) , grid%em_pb , &
     1305                                    num_metgrid_levels , 'Q' , &
     1306                                    interp_type , lagrange_order , lowest_lev_from_sfc , &
     1307                                    zap_close_levels , force_sfc_in_vinterp , &
     1308                                    ids , ide , jds , jde , kds , kde , &
     1309                                    ims , ime , jms , jme , kms , kme , &
     1310                                    its , ite , jts , jte , kts , kte )
    12911311endif
    12921312
  • trunk/mesoscale/LMD_MM_MARS/SRC/WRFV2/dyn_em/solve_em.F

    r54 r55  
    26922692
    26932693!!!!****MARS: pass water vapor at boundaries (and all other tracers if nested domains)
     2694!!!!****MARS: mars=11 que faire ???
    26942695IF (  ( (config_flags%mars .eq. 1) .AND. (is .EQ. 2) ) &
    26952696 .OR. ( (config_flags%mars .eq. 11) .AND. (is .EQ. 2) ) &
  • trunk/mesoscale/LMD_MM_MARS/SRC/WRFV2/main/real_em.F

    r54 r55  
    564564!!!***MARS INIT_ICE
    565565   REAL , DIMENSION(:,:,:) , ALLOCATABLE , SAVE :: q2bdy3dtemp1
     566   REAL , DIMENSION(:,:,:) , ALLOCATABLE , SAVE :: q3bdy3dtemp1
     567   REAL , DIMENSION(:,:,:) , ALLOCATABLE , SAVE :: q4bdy3dtemp1
    566568   REAL , DIMENSION(:,:,:) , ALLOCATABLE , SAVE :: mbdy2dtemp1
    567569   REAL , DIMENSION(:,:,:) , ALLOCATABLE , SAVE :: ubdy3dtemp2 , vbdy3dtemp2 , tbdy3dtemp2 , pbdy3dtemp2 , qbdy3dtemp2
    568570!!!***MARS INIT_ICE
    569571   REAL , DIMENSION(:,:,:) , ALLOCATABLE , SAVE :: q2bdy3dtemp2
     572   REAL , DIMENSION(:,:,:) , ALLOCATABLE , SAVE :: q3bdy3dtemp2
     573   REAL , DIMENSION(:,:,:) , ALLOCATABLE , SAVE :: q4bdy3dtemp2
    570574   REAL , DIMENSION(:,:,:) , ALLOCATABLE , SAVE :: mbdy2dtemp2
    571575real::t1,t2
     
    617621!!!***MARS INIT_ICE
    618622      IF ( ALLOCATED ( q2bdy3dtemp1 ) ) DEALLOCATE ( q2bdy3dtemp1 )
     623      IF ( ALLOCATED ( q3bdy3dtemp1 ) ) DEALLOCATE ( q3bdy3dtemp1 )
     624      IF ( ALLOCATED ( q4bdy3dtemp1 ) ) DEALLOCATE ( q4bdy3dtemp1 )
    619625      IF ( ALLOCATED ( mbdy2dtemp1 ) ) DEALLOCATE ( mbdy2dtemp1 )
    620626      IF ( ALLOCATED ( ubdy3dtemp2 ) ) DEALLOCATE ( ubdy3dtemp2 )
     
    625631!!!***MARS INIT_ICE
    626632      IF ( ALLOCATED ( q2bdy3dtemp2 ) ) DEALLOCATE ( q2bdy3dtemp2 )
     633      IF ( ALLOCATED ( q3bdy3dtemp2 ) ) DEALLOCATE ( q3bdy3dtemp2 )
     634      IF ( ALLOCATED ( q4bdy3dtemp2 ) ) DEALLOCATE ( q4bdy3dtemp2 )
    627635      IF ( ALLOCATED ( mbdy2dtemp2 ) ) DEALLOCATE ( mbdy2dtemp2 )
    628636
     
    634642!!!***MARS INIT_ICE
    635643      ALLOCATE ( q2bdy3dtemp1(ims:ime,kms:kme,jms:jme) )
     644      ALLOCATE ( q3bdy3dtemp1(ims:ime,kms:kme,jms:jme) )
     645      ALLOCATE ( q4bdy3dtemp1(ims:ime,kms:kme,jms:jme) )
    636646      ALLOCATE ( mbdy2dtemp1(ims:ime,1:1,    jms:jme) )
    637647      ALLOCATE ( ubdy3dtemp2(ims:ime,kms:kme,jms:jme) )
     
    642652!!!***MARS INIT_ICE
    643653      ALLOCATE ( q2bdy3dtemp2(ims:ime,kms:kme,jms:jme) )
     654      ALLOCATE ( q3bdy3dtemp2(ims:ime,kms:kme,jms:jme) )
     655      ALLOCATE ( q4bdy3dtemp2(ims:ime,kms:kme,jms:jme) )
    644656      ALLOCATE ( mbdy2dtemp2(ims:ime,1:1,    jms:jme) )
    645657
     
    679691!                    ids, ide, jds, jde, kds, kde, ims, ime, jms, jme, kms, kme, ips, ipe, jps, jpe, kps, kpe )
    680692!!!!MARS : pb a regler avec P_QH2O qui n est pas reconnu si QH2O n est pas dans active dans le registry
     693!!!!MARS ----> pourquoi on ne fait pas une boucle sur les traceurs ??? a cause q2bdy3dtemp1
    681694IF ( (config_flags%mars .eq. 1) .OR. (config_flags%mars == 11) ) THEN
    682695      CALL couple ( grid%em_mu_2 , grid%em_mub , qbdy3dtemp1 , grid%scalar(:,:,:,2) , 't' , grid%msft , &
     
    684697!!!INIT_ICE
    685698      CALL couple ( grid%em_mu_2 , grid%em_mub , q2bdy3dtemp1 , grid%scalar(:,:,:,3) , 't' , grid%msft , &
     699                    ids, ide, jds, jde, kds, kde, ims, ime, jms, jme, kms, kme, ips, ipe, jps, jpe, kps, kpe )
     700ENDIF
     701IF (config_flags%mars == 11) THEN
     702      CALL couple ( grid%em_mu_2 , grid%em_mub , q3bdy3dtemp1 , grid%scalar(:,:,:,4) , 't' , grid%msft , &
     703                    ids, ide, jds, jde, kds, kde, ims, ime, jms, jme, kms, kme, ips, ipe, jps, jpe, kps, kpe )
     704      CALL couple ( grid%em_mu_2 , grid%em_mub , q4bdy3dtemp1 , grid%scalar(:,:,:,5) , 't' , grid%msft , &
    686705                    ids, ide, jds, jde, kds, kde, ims, ime, jms, jme, kms, kme, ips, ipe, jps, jpe, kps, kpe )
    687706ENDIF
     
    753772                                                                 ips , ipe , jps, jpe , kps , kpe )
    754773ENDIF
     774IF (config_flags%mars == 11) THEN
     775      CALL stuff_bdy     ( q3bdy3dtemp1 , grid%scalar_b(:,:,:,:,4)   , 'T' , ijds, ijde , spec_bdy_width      , &
     776                                                                 ids , ide , jds, jde , kds , kde , &
     777                                                                 ims , ime , jms, jme , kms , kme , &
     778                                                                 ips , ipe , jps, jpe , kps , kpe )
     779      CALL stuff_bdy     ( q4bdy3dtemp1 , grid%scalar_b(:,:,:,:,5)   , 'T' , ijds, ijde , spec_bdy_width      , &
     780                                                                 ids , ide , jds, jde , kds , kde , &
     781                                                                 ims , ime , jms, jme , kms , kme , &
     782                                                                 ips , ipe , jps, jpe , kps , kpe )
     783ENDIF
    755784!!!!MARS
    756785
     
    813842!!!INIT_ICE
    814843      CALL couple ( grid%em_mu_2 , grid%em_mub , q2bdy3dtemp2 , grid%scalar(:,:,:,3) , 't' , grid%msft , &
     844                    ids, ide, jds, jde, kds, kde, ims, ime, jms, jme, kms, kme, ips, ipe, jps, jpe, kps, kpe )
     845ENDIF
     846IF (config_flags%mars == 11) THEN
     847      CALL couple ( grid%em_mu_2 , grid%em_mub , q3bdy3dtemp2 , grid%scalar(:,:,:,4) , 't' , grid%msft , &
     848                    ids, ide, jds, jde, kds, kde, ims, ime, jms, jme, kms, kme, ips, ipe, jps, jpe, kps, kpe )
     849      CALL couple ( grid%em_mu_2 , grid%em_mub , q4bdy3dtemp2 , grid%scalar(:,:,:,5) , 't' , grid%msft , &
    815850                    ids, ide, jds, jde, kds, kde, ims, ime, jms, jme, kms, kme, ips, ipe, jps, jpe, kps, kpe )
    816851ENDIF
     
    887922                                                            ips , ipe , jps , jpe , kps , kpe )
    888923ENDIF
     924IF (config_flags%mars == 11) THEN
     925      CALL stuff_bdytend ( q3bdy3dtemp2 , q3bdy3dtemp1 , REAL(interval_seconds) , grid%scalar_bt(:,:,:,:,4) , 'T' , &
     926                                                            ijds , ijde , spec_bdy_width      , &
     927                                                            ids , ide , jds , jde , kds , kde , &
     928                                                            ims , ime , jms , jme , kms , kme , &
     929                                                            ips , ipe , jps , jpe , kps , kpe )
     930      CALL stuff_bdytend ( q4bdy3dtemp2 , q4bdy3dtemp1 , REAL(interval_seconds) ,grid%scalar_bt(:,:,:,:,5) , 'T' , &
     931                                                            ijds , ijde , spec_bdy_width      , &
     932                                                            ids , ide , jds , jde , kds , kde , &
     933                                                            ims , ime , jms , jme , kms , kme , &
     934                                                            ips , ipe , jps , jpe , kps , kpe )
     935ENDIF
    889936!!!!MARS
    890937
     
    9731020!!!INIT_ICE
    9741021                  q2bdy3dtemp1(i,k,j) = q2bdy3dtemp2(i,k,j)
     1022                  q3bdy3dtemp1(i,k,j) = q3bdy3dtemp2(i,k,j)
     1023                  q4bdy3dtemp1(i,k,j) = q4bdy3dtemp2(i,k,j)
    9751024               END DO
    9761025            END DO
     
    10401089                                                                    ips , ipe , jps , jpe , kps , kpe )
    10411090ENDIF
     1091IF (config_flags%mars == 11) THEN
     1092        CALL stuff_bdy     ( q3bdy3dtemp1 , grid%scalar_b(:,:,:,:,4)   , 'T', ijds , ijde , spec_bdy_width      , &
     1093                                                                    ids , ide , jds , jde , kds , kde , &
     1094                                                                    ims , ime , jms , jme , kms , kme , &
     1095                                                                    ips , ipe , jps , jpe , kps , kpe )
     1096        CALL stuff_bdy     ( q4bdy3dtemp1 , grid%scalar_b(:,:,:,:,5)   , 'T', ijds , ijde , spec_bdy_width      , &
     1097                                                                    ids , ide , jds , jde , kds , kde , &
     1098                                                                    ims , ime , jms , jme , kms , kme , &
     1099                                                                    ips , ipe , jps , jpe , kps , kpe )
     1100ENDIF
    10421101!!!!MARS
    10431102
  • trunk/mesoscale/LMD_MM_MARS/SRC/WRFV2/phys/module_lmd_driver.F

    r54 r55  
    176176#ifdef NEWPHYS
    177177   REAL,DIMENSION(:,:),ALLOCATABLE :: wisoil,wdsoil
     178   CHARACTER*20,DIMENSION(:),ALLOCATABLE :: wtnom
    178179#endif
    179180   ! ----------
     
    189190   REAL, DIMENSION(:), ALLOCATABLE  :: &
    190191     dz8w_prof,p8w_prof,p_prof,t_prof,t8w_prof, &
    191      u_prof,v_prof,z_prof, &
     192     u_prof,v_prof,z_prof
     193!!   pi_prof, rho_prof, th_prof, &
     194#ifdef NEWPHYS
     195   REAL, DIMENSION(:,:), ALLOCATABLE :: q_prof
     196#else
     197   REAL, DIMENSION(:), ALLOCATABLE  :: &
    192198     water_vapor_prof, water_ice_prof
    193 !!   pi_prof, rho_prof, th_prof, &
     199#endif
     200
    194201
    195202   ! Additional control variables
     
    553560!ALLOCATE(rho_prof(nlayer))
    554561!ALLOCATE(pi_prof(nlayer))
     562#ifdef NEWPHYS
     563ALLOCATE(q_prof(nlayer,nq))
     564ALLOCATE(wtnom(nq))
     565#else
    555566ALLOCATE(water_vapor_prof(nlayer))
    556567ALLOCATE(water_ice_prof(nlayer))
    557 
     568#endif
    558569
    559570!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     
    562573!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    563574!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    564 
     575#ifdef NEWPHYS
     576!!! name of tracers -- see Registry.EM for order and traceur.def for names
     577SELECT CASE (MARS_MODE)
     578    CASE(0)  !! NO TRACERS (mars=0)
     579      wtnom(nq) = 'co2'
     580    CASE(11) !! newwater mars==11 scalar:qh2o,qh2o_ice,qdust,qdust_number,qco2
     581      wtnom(nq) = 'co2'
     582      wtnom(1) = 'h2o_vap'
     583      wtnom(2) = 'h2o_ice'
     584      wtnom(3) = 'dust_mass'
     585      wtnom(4) = 'dust_number'
     586END SELECT
     587#endif
    565588
    566589DO j = jps,jpe
     
    595618! specific treatment for tracers !
    596619!--------------------------------!
     620#ifdef NEWPHYS
     621q_prof(:,1:nq) = SCALAR(i,kps:kpe,j,2:nq+1)  !! the names were set above !! one dummy tracer in WRF
     622q_prof(:,nq) = 0.95 !! cas du CO2 !! TEMPORAIRE
     623#else
    597624SELECT CASE (MARS_MODE)
    598625    CASE(0)  !! NO TRACERS (mars=0)
     
    606633    water_ice_prof(:) = 0.
    607634END SELECT
     635#endif
    608636
    609637!!**********************************************************!!
     
    764792PRINT *,'isoil ',isoil_val
    765793PRINT *,'dsoil ',dsoil_val
     794PRINT *,'q_prof ',q_prof
    766795#endif
    767796ENDIF
     
    833862
    834863!---------!
    835 ! Tracers !
     864! Tracers ! 
    836865!---------!
     866#ifdef NEWPHYS
     867pq(subs,:,:) = q_prof(:,:)  !! traceurs generiques, seuls noms sont specifiques
     868#else
    837869SELECT CASE (MARS_MODE)
    838870    CASE(0)  !! NO TRACERS (mars=0)
     
    844876    pq(subs,:,nq) = water_vapor_prof(:) !! NB: which is 0, actually (see above)
    845877END SELECT
    846 
     878#endif
    847879ENDDO
    848880ENDDO
     
    865897DEALLOCATE(u_prof)
    866898DEALLOCATE(v_prof)
     899#ifdef NEWPHYS
     900DEALLOCATE(q_prof)
     901#else
    867902DEALLOCATE(water_vapor_prof)
    868903DEALLOCATE(water_ice_prof)
     904#endif
    869905    !!! no use
    870906    !DEALLOCATE(pi_prof)
     
    944980DEALLOCATE(wisoil)
    945981DEALLOCATE(wdsoil)
     982DEALLOCATE(wtnom)
    946983#endif
    947984
     
    10191056
    10201057!---------!
    1021 ! Tracers !
     1058! Tracers ! 
    10221059!---------!
     1060#ifdef NEWPHYS
     1061SCALAR(i,kps:kpe,j,1)=0.
     1062SCALAR(i,kps:kpe,j,2:nq+1)=SCALAR(i,kps:kpe,j,2:nq+1)+pdq(subs,kps:kpe,1:nq)
     1063#else
    10231064SELECT CASE (MARS_MODE)
    10241065CASE(0)
     
    10321073        !!! Dust
    10331074        SCALAR(i,kps:kpe,j,2)=SCALAR(i,kps:kpe,j,2)+pdq(subs,kps:kpe,nq)
     1075!!CASE(11) !!!
    10341076END SELECT
    1035 
     1077#endif
    10361078        !!TODO: check if adding the whole tendency once, and set the
    10371079        !!TODO: following tendencies to 0 until physics is called again
  • trunk/mesoscale/LMD_MM_MARS/SRC/WRFV2/share/module_model_constants.F

    r28 r55  
    1818   REAL    , PARAMETER :: g = 3.72  ! acceleration due to gravity (m {s}^-2)
    1919
    20 #if ( NMM_CORE == 1 )
    21    REAL    , PARAMETER :: r_d          = 192.  ! gas constant m2 s-2 K-1
    22    REAL    , PARAMETER :: cp           = 844.6   ! r= 8.314511E+0 *1000.E+0/mugaz
    23 #else
    24    REAL    , PARAMETER :: r_d          = 192.
    25    REAL    , PARAMETER :: cp           = 844.6
    26 #endif
     20!#if ( NMM_CORE == 1 )
     21!   REAL    , PARAMETER :: r_d          = 192.  ! gas constant m2 s-2 K-1
     22!   REAL    , PARAMETER :: cp           = 844.6   ! r= 8.314511E+0 *1000.E+0/mugaz
     23!#else
     24!   REAL    , PARAMETER :: r_d          = 192.
     25!   REAL    , PARAMETER :: cp           = 844.6
     26!#endif
     27
     28   REAL    , PARAMETER :: r_d          = 191.
     29   REAL    , PARAMETER :: cp           = 744.5
    2730
    2831   REAL    , PARAMETER :: r_v          = 461.6  ! gas constant for water vapor
    2932   REAL    , PARAMETER :: cv           = cp-r_d
    30    REAL    , PARAMETER :: cpv          = 4.4*r_v  ! cp / R = 4.4 ?? ! rcp = r/cp  ~0.256793
     33!   REAL    , PARAMETER :: cpv          = 4.4*r_v  ! cp / R = 4.4 ?? ! rcp = r/cp  ~0.256793
     34   REAL    , PARAMETER :: cpv          = 3.9*r_v
    3135   REAL    , PARAMETER :: cvv          = cpv-r_v
    3236   REAL    , PARAMETER :: cvpm         = -cv/cp
Note: See TracChangeset for help on using the changeset viewer.