Changeset 549 for trunk


Ignore:
Timestamp:
Mar 1, 2012, 12:57:47 AM (13 years ago)
Author:
aslmd
Message:

MESOSCALE: for improved watercycle runs: ccn_mass and ccn_number are now passed through boundaries.

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

Legend:

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

    r324 r549  
    8888real, dimension(:,:,:), allocatable :: swatericefile!, swaterfile
    8989real, dimension(:,:,:,:), allocatable :: dustfile,dustnfile
     90real, dimension(:,:,:,:), allocatable :: ccnfile,ccnnfile
    9091
    9192!! Reading the parameter file
     
    229230allocate(dustfile(lonlen,latlen,altlen,timelen))
    230231allocate(dustnfile(lonlen,latlen,altlen,timelen))
     232allocate(ccnfile(lonlen,latlen,altlen,timelen))
     233allocate(ccnnfile(lonlen,latlen,altlen,timelen))
    231234allocate(psfile(lonlen,latlen,timelen))
    232235allocate(tsfile(lonlen,latlen,timelen))
     
    282285dustfile(:,:,:,:)=0
    283286dustnfile(:,:,:,:)=0
     287ccnfile(:,:,:,:)=0
     288ccnnfile(:,:,:,:)=0
    284289psfile(:,:,:)=0
    285290tsfile(:,:,:)=0
     
    651656    else
    652657      ierr=NF_GET_VAR_REAL(nid,nvarid,dustnfile)
     658    endif
     659
     660    print *,'CCN mass'
     661    ierr=NF_INQ_VARID(nid,"ccn",nvarid)
     662    if (ierr.ne.NF_NOERR) then
     663      write(*,*) "...No ccn - CCN mass set to 0"
     664      dustfile(:,:,:,:)=0.
     665    else
     666      ierr=NF_GET_VAR_REAL(nid,nvarid,ccnfile)
     667    endif
     668
     669    print *,'CCN number'
     670    ierr=NF_INQ_VARID(nid,"ccnN",nvarid)
     671    if (ierr.ne.NF_NOERR) then
     672      write(*,*) "...No ccnN - CCN number set to 0"
     673      dustnfile(:,:,:,:)=0.
     674    else
     675      ierr=NF_GET_VAR_REAL(nid,nvarid,ccnnfile)
    653676    endif
    654677!!------------------------
     
    12411264!------------------------!
    12421265! >>> Write a variable   !
     1266!    ... Copy&Paste part !
     1267!------------------------!
     1268FIELD='CCNQ'
     1269UNITS='kg/kg'
     1270DESC='CCN mixing ratio'
     1271XLVL=200100.
     1272SLAB=ccnfile(:,:,1,time_out(l))
     1273        ! And now put everything in the destination file
     1274        ! ... Header
     1275        write(1) IFV
     1276        write(1) HDATE,XFCST,SOURCE,FIELD,UNITS,DESC,XLVL,NX,NY,IPROJ
     1277        write(1) STARTLOC,STARTLAT,STARTLON,DELTALAT,DELTALON
     1278        ! ... Data
     1279        write(1) SLAB
     1280!print *,'The field '//DESC//' was written to '//output
     1281
     1282!------------------------!
     1283! >>> Write a variable   !
     1284!    ... Copy&Paste part !
     1285!------------------------!
     1286FIELD='CCNN'
     1287UNITS='part/kg'
     1288DESC='CCN number density'
     1289XLVL=200100.
     1290SLAB=ccnnfile(:,:,1,time_out(l))
     1291        ! And now put everything in the destination file
     1292        ! ... Header
     1293        write(1) IFV
     1294        write(1) HDATE,XFCST,SOURCE,FIELD,UNITS,DESC,XLVL,NX,NY,IPROJ
     1295        write(1) STARTLOC,STARTLAT,STARTLON,DELTALAT,DELTALON
     1296        ! ... Data
     1297        write(1) SLAB
     1298!print *,'The field '//DESC//' was written to '//output
     1299
     1300
     1301!------------------------!
     1302! >>> Write a variable   !
    12431303!     PHOTOCHEMISTRY     !
    12441304!------------------------!
     
    15131573        XLVL=levels(k)
    15141574        SLAB=dustnfile(:,:,k,time_out(l))
     1575                ! And now put everything in the destination file
     1576                ! ... Header
     1577        write(1) IFV
     1578        write(1) HDATE,XFCST,SOURCE,FIELD,UNITS,DESC,XLVL,NX,NY,IPROJ
     1579        write(1) STARTLOC,STARTLAT,STARTLON,DELTALAT,DELTALON
     1580                ! ... Data
     1581                write(1) SLAB
     1582END DO
     1583!print *,'The field '//DESC//' was written to '//output
     1584
     1585!------------------------!
     1586! >>> Write a variable   !
     1587!    ... Copy&Paste part !
     1588!------------------------!
     1589FIELD='CCNQ'
     1590UNITS='kg/kg'
     1591DESC='CCN mixing ratio'
     1592DO k = 1,altlen
     1593        XLVL=levels(k)
     1594        SLAB=ccnfile(:,:,k,time_out(l))
     1595                ! And now put everything in the destination file
     1596                ! ... Header
     1597        write(1) IFV
     1598        write(1) HDATE,XFCST,SOURCE,FIELD,UNITS,DESC,XLVL,NX,NY,IPROJ
     1599        write(1) STARTLOC,STARTLAT,STARTLON,DELTALAT,DELTALON
     1600                ! ... Data
     1601                write(1) SLAB
     1602END DO
     1603!print *,'The field '//DESC//' was written to '//output
     1604
     1605!------------------------!
     1606! >>> Write a variable   !
     1607!    ... Copy&Paste part !
     1608!------------------------!
     1609FIELD='CCNN'
     1610UNITS='part/kg'
     1611DESC='CCN number density'
     1612DO k = 1,altlen
     1613        XLVL=levels(k)
     1614        SLAB=ccnnfile(:,:,k,time_out(l))
    15151615                ! And now put everything in the destination file
    15161616                ! ... Header
     
    15761676deallocate(dustfile)
    15771677deallocate(dustnfile)
     1678deallocate(ccnfile)
     1679deallocate(ccnnfile)
    15781680deallocate(psfile)
    15791681deallocate(tsfile)
  • trunk/MESOSCALE/LMD_MM_MARS/SRC/WPS/wps_mars/metgrid/METGRID.TBL.ARW_MarsBase_newphys

    r72 r549  
    580580         missing_value=-9.99e+33
    581581========================================
     582name=CCNQ
     583#        mandatory=yes    # MUST HAVE THIS FIELD
     584#        interp_option=sixteen_pt+four_pt+average_4pt
     585#        interp_option=sixteen_pt+four_pt
     586         interp_option=four_pt
     587#        fill_lev=200100:const(0.)
     588         fill_missing=-1.0e+30
     589         missing_value=-9.99e+33
     590========================================
     591name=CCNN
     592#        mandatory=yes    # MUST HAVE THIS FIELD
     593#        interp_option=sixteen_pt+four_pt+average_4pt
     594#        interp_option=sixteen_pt+four_pt
     595         interp_option=four_pt
     596#        fill_lev=200100:const(0.)
     597         fill_missing=-1.0e+30
     598         missing_value=-9.99e+33
     599========================================
  • trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/Registry/Registry.EM

    r523 r549  
    221221state  real   dsoil_gc       igj   dyn_em  1  Z  i1  "DSOIL"            "soil depths"             "m"
    222222state  real   dustq_gc       igj   dyn_em  1  Z  i1  "DUSTQ"            "dust mixing ratio"       "kg/kg"
    223 state  real   dustn_gc       igj   dyn_em  1  Z  i1  "DUSTN"            "dust number density"     "kg/kg"
     223state  real   dustn_gc       igj   dyn_em  1  Z  i1  "DUSTN"            "dust number density"     "part/kg"
     224state  real   ccnq_gc        igj   dyn_em  1  Z  i1  "CCNQ"             "ccn mixing ratio"        "kg/kg"
     225state  real   ccnn_gc        igj   dyn_em  1  Z  i1  "CCNN"             "ccn number density"      "part/kg"
    224226####
    225227#### variables dans wrf
  • trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/dyn_em/module_initialize_real.F

    r488 r549  
    13221322                                    ims , ime , jms , jme , kms , kme , &
    13231323                                    its , ite , jts , jte , kts , kte )
    1324        print *, '**** INTERPOLATE DUSTQ **** RANK 5 in SCALAR'
     1324       print *, '**** INTERPOLATE DUSTN **** RANK 5 in SCALAR'
    13251325       CALL vert_interp_old ( grid%em_dustn_gc , grid%em_pd_gc , scalar(:,:,:,5) , grid%em_pb , &
    13261326                                    num_metgrid_levels , 'Q' , &
     
    13321332endif
    13331333if ( config_flags%mars == 12 ) then
    1334        print *, "**** mars=12... CCN TRACERS SET TO 0"
    1335        DO k = 1, kte
    1336        DO j = jts, MIN(jte,jde-1)
    1337        DO i = its, MIN(ite,ide-1)
    1338          scalar(i,k,j,6) = 1.E-30
    1339          scalar(i,k,j,7) = 1.E-30
    1340        ENDDO
    1341        ENDDO
    1342        ENDDO
     1334       print *, '**** INTERPOLATE CCNQ **** RANK 6 in SCALAR'
     1335       CALL vert_interp_old ( grid%em_ccnq_gc , grid%em_pd_gc , scalar(:,:,:,6) , grid%em_pb , &
     1336                                    num_metgrid_levels , 'Q' , &
     1337                                    interp_type , lagrange_order , lowest_lev_from_sfc , &
     1338                                    zap_close_levels , force_sfc_in_vinterp , &
     1339                                    ids , ide , jds , jde , kds , kde , &
     1340                                    ims , ime , jms , jme , kms , kme , &
     1341                                    its , ite , jts , jte , kts , kte )
     1342       print *, '**** INTERPOLATE CCNN **** RANK 7 in SCALAR'
     1343       CALL vert_interp_old ( grid%em_ccnn_gc , grid%em_pd_gc , scalar(:,:,:,7) , grid%em_pb , &
     1344                                    num_metgrid_levels , 'Q' , &
     1345                                    interp_type , lagrange_order , lowest_lev_from_sfc , &
     1346                                    zap_close_levels , force_sfc_in_vinterp , &
     1347                                    ids , ide , jds , jde , kds , kde , &
     1348                                    ims , ime , jms , jme , kms , kme , &
     1349                                    its , ite , jts , jte , kts , kte )
    13431350endif
    13441351#endif
  • trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/main/real_em.F

    r481 r549  
    566566   REAL , DIMENSION(:,:,:) , ALLOCATABLE , SAVE :: q3bdy3dtemp1
    567567   REAL , DIMENSION(:,:,:) , ALLOCATABLE , SAVE :: q4bdy3dtemp1
     568   REAL , DIMENSION(:,:,:) , ALLOCATABLE , SAVE :: q5bdy3dtemp1
     569   REAL , DIMENSION(:,:,:) , ALLOCATABLE , SAVE :: q6bdy3dtemp1
    568570!!!!***MARS <<
    569571   REAL , DIMENSION(:,:,:) , ALLOCATABLE , SAVE :: mbdy2dtemp1
     
    573575   REAL , DIMENSION(:,:,:) , ALLOCATABLE , SAVE :: q3bdy3dtemp2
    574576   REAL , DIMENSION(:,:,:) , ALLOCATABLE , SAVE :: q4bdy3dtemp2
     577   REAL , DIMENSION(:,:,:) , ALLOCATABLE , SAVE :: q5bdy3dtemp2
     578   REAL , DIMENSION(:,:,:) , ALLOCATABLE , SAVE :: q6bdy3dtemp2
    575579!!!!***MARS <<
    576580   REAL , DIMENSION(:,:,:) , ALLOCATABLE , SAVE :: mbdy2dtemp2
     
    625629      IF ( ALLOCATED ( q3bdy3dtemp1 ) ) DEALLOCATE ( q3bdy3dtemp1 )
    626630      IF ( ALLOCATED ( q4bdy3dtemp1 ) ) DEALLOCATE ( q4bdy3dtemp1 )
     631      IF ( ALLOCATED ( q3bdy3dtemp1 ) ) DEALLOCATE ( q5bdy3dtemp1 )
     632      IF ( ALLOCATED ( q4bdy3dtemp1 ) ) DEALLOCATE ( q6bdy3dtemp1 )
    627633!!!!***MARS <<
    628634      IF ( ALLOCATED ( mbdy2dtemp1 ) ) DEALLOCATE ( mbdy2dtemp1 )
     
    636642      IF ( ALLOCATED ( q3bdy3dtemp2 ) ) DEALLOCATE ( q3bdy3dtemp2 )
    637643      IF ( ALLOCATED ( q4bdy3dtemp2 ) ) DEALLOCATE ( q4bdy3dtemp2 )
     644      IF ( ALLOCATED ( q3bdy3dtemp2 ) ) DEALLOCATE ( q5bdy3dtemp2 )
     645      IF ( ALLOCATED ( q4bdy3dtemp2 ) ) DEALLOCATE ( q6bdy3dtemp2 )
    638646!!!!***MARS <<
    639647      IF ( ALLOCATED ( mbdy2dtemp2 ) ) DEALLOCATE ( mbdy2dtemp2 )
     
    648656      ALLOCATE ( q3bdy3dtemp1(ims:ime,kms:kme,jms:jme) )
    649657      ALLOCATE ( q4bdy3dtemp1(ims:ime,kms:kme,jms:jme) )
     658      ALLOCATE ( q5bdy3dtemp1(ims:ime,kms:kme,jms:jme) )
     659      ALLOCATE ( q6bdy3dtemp1(ims:ime,kms:kme,jms:jme) )
    650660!!!!***MARS <<
    651661      ALLOCATE ( mbdy2dtemp1(ims:ime,1:1,    jms:jme) )
     
    659669      ALLOCATE ( q3bdy3dtemp2(ims:ime,kms:kme,jms:jme) )
    660670      ALLOCATE ( q4bdy3dtemp2(ims:ime,kms:kme,jms:jme) )
     671      ALLOCATE ( q5bdy3dtemp2(ims:ime,kms:kme,jms:jme) )
     672      ALLOCATE ( q6bdy3dtemp2(ims:ime,kms:kme,jms:jme) )
    661673!!!!***MARS <<
    662674      ALLOCATE ( mbdy2dtemp2(ims:ime,1:1,    jms:jme) )
     
    721733                    ids, ide, jds, jde, kds, kde, ims, ime, jms, jme, kms, kme, ips, ipe, jps, jpe, kps, kpe )
    722734      CALL couple ( grid%em_mu_2 , grid%em_mub , q4bdy3dtemp1 , grid%scalar(:,:,:,5) , 't' , grid%msft , &
     735                    ids, ide, jds, jde, kds, kde, ims, ime, jms, jme, kms, kme, ips, ipe, jps, jpe, kps, kpe )
     736ENDIF
     737IF ((config_flags%mars .eq. 12)) THEN
     738      CALL couple ( grid%em_mu_2 , grid%em_mub , q5bdy3dtemp1 , grid%scalar(:,:,:,6) , 't' , grid%msft , &
     739                    ids, ide, jds, jde, kds, kde, ims, ime, jms, jme, kms, kme, ips, ipe, jps, jpe, kps, kpe )
     740      CALL couple ( grid%em_mu_2 , grid%em_mub , q6bdy3dtemp1 , grid%scalar(:,:,:,7) , 't' , grid%msft , &
    723741                    ids, ide, jds, jde, kds, kde, ims, ime, jms, jme, kms, kme, ips, ipe, jps, jpe, kps, kpe )
    724742ENDIF
     
    804822                                                                 ips , ipe , jps , jpe , kps , kpe )
    805823ENDIF
     824IF ((config_flags%mars .eq. 12)) THEN
     825      CALL stuff_bdy     ( q5bdy3dtemp1 , grid%scalar_b(:,:,:,:,6)   , 'T' , ijds , ijde , spec_bdy_width      , &
     826                                                                 ids , ide , jds , jde , kds , kde , &
     827                                                                 ims , ime , jms , jme , kms , kme , &
     828                                                                 ips , ipe , jps , jpe , kps , kpe )
     829      CALL stuff_bdy     ( q6bdy3dtemp1 , grid%scalar_b(:,:,:,:,7)   , 'T' , ijds , ijde , spec_bdy_width      , &
     830                                                                 ids , ide , jds , jde , kds , kde , &
     831                                                                 ims , ime , jms , jme , kms , kme , &
     832                                                                 ips , ipe , jps , jpe , kps , kpe )
     833ENDIF
    806834!!!!MARS <<
    807835
     
    874902                    ids, ide, jds, jde, kds, kde, ims, ime, jms, jme, kms, kme, ips, ipe, jps, jpe, kps, kpe )
    875903      CALL couple ( grid%em_mu_2 , grid%em_mub , q4bdy3dtemp2 , grid%scalar(:,:,:,5) , 't' , grid%msft , &
     904                    ids, ide, jds, jde, kds, kde, ims, ime, jms, jme, kms, kme, ips, ipe, jps, jpe, kps, kpe )
     905ENDIF
     906IF ((config_flags%mars .eq. 12)) THEN
     907      CALL couple ( grid%em_mu_2 , grid%em_mub , q5bdy3dtemp2 , grid%scalar(:,:,:,6) , 't' , grid%msft , &
     908                    ids, ide, jds, jde, kds, kde, ims, ime, jms, jme, kms, kme, ips, ipe, jps, jpe, kps, kpe )
     909      CALL couple ( grid%em_mu_2 , grid%em_mub , q6bdy3dtemp2 , grid%scalar(:,:,:,7) , 't' , grid%msft , &
    876910                    ids, ide, jds, jde, kds, kde, ims, ime, jms, jme, kms, kme, ips, ipe, jps, jpe, kps, kpe )
    877911ENDIF
     
    964998                                                            ips , ipe , jps , jpe , kps , kpe )
    965999ENDIF
     1000IF ((config_flags%mars .eq. 12)) THEN
     1001      CALL stuff_bdytend ( q5bdy3dtemp2 , q5bdy3dtemp1 , REAL(interval_seconds) , grid%scalar_bt(:,:,:,:,6) , 'T' , &
     1002                                                            ijds , ijde , spec_bdy_width      , &
     1003                                                            ids , ide , jds , jde , kds , kde , &
     1004                                                            ims , ime , jms , jme , kms , kme , &
     1005                                                            ips , ipe , jps , jpe , kps , kpe )
     1006      CALL stuff_bdytend ( q6bdy3dtemp2 , q6bdy3dtemp1 , REAL(interval_seconds) ,grid%scalar_bt(:,:,:,:,7) , 'T' , &
     1007                                                            ijds , ijde , spec_bdy_width      , &
     1008                                                            ids , ide , jds , jde , kds , kde , &
     1009                                                            ims , ime , jms , jme , kms , kme , &
     1010                                                            ips , ipe , jps , jpe , kps , kpe )
     1011ENDIF
    9661012!!!!!MARS <<
    9671013
     
    10521098                  q3bdy3dtemp1(i,k,j) = q3bdy3dtemp2(i,k,j)
    10531099                  q4bdy3dtemp1(i,k,j) = q4bdy3dtemp2(i,k,j)
     1100                  q5bdy3dtemp1(i,k,j) = q5bdy3dtemp2(i,k,j)
     1101                  q6bdy3dtemp1(i,k,j) = q6bdy3dtemp2(i,k,j)
    10541102!!!!MARS <<
    10551103               END DO
     
    11331181                                                                    ips , ipe , jps , jpe , kps , kpe )
    11341182ENDIF
     1183IF ((config_flags%mars .eq. 12)) THEN
     1184        CALL stuff_bdy     ( q5bdy3dtemp1 , grid%scalar_b(:,:,:,:,6)   , 'T', ijds , ijde , spec_bdy_width      , &
     1185                                                                    ids , ide , jds , jde , kds , kde , &
     1186                                                                    ims , ime , jms , jme , kms , kme , &
     1187                                                                    ips , ipe , jps , jpe , kps , kpe )
     1188        CALL stuff_bdy     ( q6bdy3dtemp1 , grid%scalar_b(:,:,:,:,7)   , 'T', ijds , ijde , spec_bdy_width      , &
     1189                                                                    ids , ide , jds , jde , kds , kde , &
     1190                                                                    ims , ime , jms , jme , kms , kme , &
     1191                                                                    ips , ipe , jps , jpe , kps , kpe )
     1192ENDIF
    11351193!!!!MARS <<
    11361194         CALL stuff_bdy     ( mbdy2dtemp1 , grid%em_mu_b    , 'M' , ijds , ijde , spec_bdy_width      , &
Note: See TracChangeset for help on using the changeset viewer.