Ignore:
Timestamp:
Oct 5, 2012, 2:52:43 AM (12 years ago)
Author:
aslmd
Message:

MESOSCALE : adaptation for polar runs with new physics. co2 mr is now taken from GCM and given as an input (previously was initialized at 0.95). added mars=10 which is a case with CO2 being the only tracer.

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

Legend:

Unmodified
Added
Removed
  • trunk/MESOSCALE/LMD_MM_MARS/SRC/PREP_MARS/readmeteo.F90

    r665 r802  
    8888real, dimension(:,:,:), allocatable :: swatericefile!, swaterfile
    8989real, dimension(:,:,:,:), allocatable :: dustfile,dustnfile
     90real, dimension(:,:,:,:), allocatable :: co2file
    9091real, dimension(:,:,:,:), allocatable :: ccnfile,ccnnfile
    9192
     
    230231allocate(dustfile(lonlen,latlen,altlen,timelen))
    231232allocate(dustnfile(lonlen,latlen,altlen,timelen))
     233allocate(co2file(lonlen,latlen,altlen,timelen))
    232234allocate(ccnfile(lonlen,latlen,altlen,timelen))
    233235allocate(ccnnfile(lonlen,latlen,altlen,timelen))
     
    285287dustfile(:,:,:,:)=0
    286288dustnfile(:,:,:,:)=0
     289co2file(:,:,:,:)=0
    287290ccnfile(:,:,:,:)=0
    288291ccnnfile(:,:,:,:)=0
     
    636639!! special water stuff
    637640!!------------------------
     641
     642    print *,'CO2 mass mixing ratio'
     643    ierr=NF_INQ_VARID(nid,"co2",nvarid)
     644    if (ierr.ne.NF_NOERR) then
     645      write(*,*) "...No co2 - co2 mixing ratio set to 0.95"
     646      co2file(:,:,:,:)=0.95
     647    else
     648      ierr=NF_GET_VAR_REAL(nid,nvarid,co2file)
     649    endif
    638650
    639651!!------------------------
     
    12301242!    ... Copy&Paste part !
    12311243!------------------------!
     1244FIELD='CO2'
     1245UNITS='kg/kg'
     1246DESC='CO2 mixing ratio'
     1247XLVL=200100.
     1248SLAB=co2file(:,:,1,time_out(l))
     1249        ! And now put everything in the destination file
     1250        ! ... Header
     1251        write(1) IFV
     1252        write(1) HDATE,XFCST,SOURCE,FIELD,UNITS,DESC,XLVL,NX,NY,IPROJ
     1253        write(1) STARTLOC,STARTLAT,STARTLON,DELTALAT,DELTALON
     1254        ! ... Data
     1255        write(1) SLAB
     1256!print *,'The field '//DESC//' was written to '//output
     1257
     1258!------------------------!
     1259! >>> Write a variable   !
     1260!    ... Copy&Paste part !
     1261!------------------------!
    12321262FIELD='DUSTQ'
    12331263UNITS='kg/kg'
     
    15331563        XLVL=levels(k)
    15341564        SLAB=isoilfile(:,:,k,time_out(l))
     1565                ! And now put everything in the destination file
     1566                ! ... Header
     1567        write(1) IFV
     1568        write(1) HDATE,XFCST,SOURCE,FIELD,UNITS,DESC,XLVL,NX,NY,IPROJ
     1569        write(1) STARTLOC,STARTLAT,STARTLON,DELTALAT,DELTALON
     1570                ! ... Data
     1571                write(1) SLAB
     1572END DO
     1573!print *,'The field '//DESC//' was written to '//output
     1574
     1575!------------------------!
     1576! >>> Write a variable   !
     1577!    ... Copy&Paste part !
     1578!------------------------!
     1579FIELD='CO2'
     1580UNITS='kg/kg'
     1581DESC='CO2 mixing ratio'
     1582DO k = 1,altlen
     1583        XLVL=levels(k)
     1584        SLAB=co2file(:,:,k,time_out(l))
    15351585                ! And now put everything in the destination file
    15361586                ! ... Header
     
    16761726deallocate(dustfile)
    16771727deallocate(dustnfile)
     1728deallocate(co2file)
    16781729deallocate(ccnfile)
    16791730deallocate(ccnnfile)
  • trunk/MESOSCALE/LMD_MM_MARS/SRC/WPS/wps_mars/metgrid/METGRID.TBL.ARW_MarsBase_newphys

    r549 r802  
    562562         missing_value=-9.99e+33
    563563========================================
     564name=CO2
     565#        mandatory=yes    # MUST HAVE THIS FIELD
     566#        interp_option=sixteen_pt+four_pt+average_4pt
     567#        interp_option=sixteen_pt+four_pt
     568         interp_option=four_pt
     569#        fill_lev=200100:const(0.)
     570         fill_missing=-1.0e+30
     571         missing_value=-9.99e+33
     572========================================
    564573name=DUSTQ
    565574#        mandatory=yes    # MUST HAVE THIS FIELD
  • trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/Registry/Registry.EM

    r708 r802  
    132132state  real  qccn      ikjftb  scalar  1  -  i01rhusdf=(bdy_interp:dt)  "QCCN"         "CCN mixing ratio"          "kg kg-1"
    133133state  real  qccnn     ikjftb  scalar  1  -  i01rhusdf=(bdy_interp:dt)  "QCCNN"        "CCN number mixing ratio"   "kg kg-1"
    134 state  real  qco2      ikjftb  scalar  1  -  i01rusdf=(bdy_interp:dt)  "QCO2"          "CO2 mixing ratio"           "kg kg-1"
     134state  real  qco2      ikjftb  scalar  1  -  i01rhusdf=(bdy_interp:dt)  "QCO2"          "CO2 mixing ratio"           "kg kg-1"
    135135state  real  chem_co   ikjftb  scalar  1  -  i01rusdf=(bdy_interp:dt)  "chem_co"     ""   ""
    136136state  real  chem_o    ikjftb  scalar  1  -  i01rusdf=(bdy_interp:dt)  "chem_o"      ""   ""
     
    221221state  real   isoil_gc       igj   dyn_em  1  Z  i1  "ISOIL"            "soil thermal inertia"    "tiu"
    222222state  real   dsoil_gc       igj   dyn_em  1  Z  i1  "DSOIL"            "soil depths"             "m"
     223state  real   co2_gc         igj   dyn_em  1  Z  i1  "CO2"              "co2 mixing ratio"        "kg/kg"
    223224state  real   dustq_gc       igj   dyn_em  1  Z  i1  "DUSTQ"            "dust mixing ratio"       "kg/kg"
    224225state  real   dustn_gc       igj   dyn_em  1  Z  i1  "DUSTN"            "dust number density"     "part/kg"
     
    13741375package   dust1        mars==2                      -              scalar:qdust
    13751376package   dust2eq      mars==3                      -              scalar:qdust,qdustn
     1377package   newbasis     mars==10                     -              scalar:qco2
    13761378package   newwater     mars==11                     -              scalar:qh2o,qh2o_ice,qdust,qdustn
    13771379package   newwatersca  mars==12                     -              scalar:qh2o,qh2o_ice,qdust,qdustn,qccn,qccnn
  • trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/dyn_em/module_initialize_real.F

    r680 r802  
    13201320endif
    13211321#ifdef NEWPHYS
     1322if ( (config_flags%mars == 10) ) then
     1323       print *, '**** INTERPOLATE CO2 **** RANK 2 in SCALAR'
     1324       CALL vert_interp_old ( grid%em_co2_gc , grid%em_pd_gc , scalar(:,:,:,2) , grid%em_pb , &
     1325                                    num_metgrid_levels , 'Q' , &
     1326                                    interp_type , lagrange_order , lowest_lev_from_sfc , &
     1327                                    zap_close_levels , force_sfc_in_vinterp , &
     1328                                    ids , ide , jds , jde , kds , kde , &
     1329                                    ims , ime , jms , jme , kms , kme , &
     1330                                    its , ite , jts , jte , kts , kte )
     1331endif
    13221332if ( (config_flags%mars == 11) .OR. (config_flags%mars == 12) ) then
    13231333       print *, '**** INTERPOLATE DUSTQ **** RANK 4 in SCALAR'             
  • trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/dyn_em/solve_em.F

    r678 r802  
    27112711 .OR. (  config_flags%mars .eq.  2                    ) &    !! 2   pass the dust tracer
    27122712 .OR. (  config_flags%mars .eq.  3                    ) &    !! 3   pass dust Q and N
     2713 .OR. (  config_flags%mars .eq.  10                   ) &    !! 10  pass the co2 tracer
    27132714! .OR. ( (config_flags%mars .eq. 11) .AND. (is .EQ. 2) ) &    !! 11  pass only water vapor
    27142715 .OR. (  config_flags%mars .eq. 11                    ) &    !! 11  pass EVERYTHING
  • trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/main/real_em.F

    r598 r802  
    717717!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    718718IF (config_flags%mars .gt. 0) THEN
     719!! ceci suffit avec les modes 2 et 10 qui ne transportent qu'un seul traceur
    719720      CALL couple ( grid%em_mu_2 , grid%em_mub , qbdy3dtemp1 , grid%scalar(:,:,:,2) , 't' , grid%msft , &
    720721                    ids, ide, jds, jde, kds, kde, ims, ime, jms, jme, kms, kme, ips, ipe, jps, jpe, kps, kpe )
  • trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/phys/module_lmd_driver.F

    r774 r802  
    780780!!!                               SAME NAMING   AS IN THE LMD PHYSICS !!!!
    781781SELECT CASE (MARS_MODE)
    782     CASE(0
     782    CASE(0,10
    783783      wtnom(nq) = 'co2'
    784784    CASE(1)
     
    869869    q_prof(:,1:nq) = SCALAR(i,kps:kpe,j,2:nq+1)  !! the names were set above !! one dummy tracer in WRF
    870870ENDIF
    871   !!! CAS DU CO2
    872   DO iii=1,nq
    873   IF ( wtnom(iii) .eq. 'co2' .and. (.not. restart)) q_prof(:,iii) = 0.95
    874   ENDDO
     871  !!!! CAS DU CO2
     872  !DO iii=1,nq
     873  ! IF ( wtnom(iii) .eq. 'co2' .and. (.not. restart)) q_prof(:,iii) = 0.95
     874  !ENDDO
    875875  IF ((MARS_MODE .EQ. 20) .OR. (MARS_MODE .EQ. 21)) THEN
    876876   IF (firstcall .EQV. .true. .and. (.not. restart)) THEN
Note: See TracChangeset for help on using the changeset viewer.