Changeset 73


Ignore:
Timestamp:
Feb 20, 2011, 12:20:51 PM (14 years ago)
Author:
aslmd
Message:

LMD_MM_MARS: corrections cycle de l'eau propagees a la nouvelle physique. + corrections readmeteo.F90 [version synchronisee precedemment n etait pas la plus a jour] + corrections api.F90 pour avoir cp, R comme GCM

Location:
trunk
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/mars/libf/phymars/meso_physiq.F

    r61 r73  
    192192      REAL ust(ngridmx)    !! pour LES avec isfflx!=0
    193193      LOGICAL flag_LES     !! pour LES avec isfflx!=0
     194      REAL qsurflast(ngridmx) !! pour diagnostics
    194195      real alpha,lay1 ! coefficients for building layers
    195196      integer iloop
     
    12501251
    12511252      IF (tracer.AND.water.AND.(ngridmx.NE.1)) THEN
    1252          if (caps.and.(obliquit.lt.27.)) then
    1253            ! NB: Updated surface pressure, at grid point 'ngrid', is
    1254            !     ps(ngrid)=pplev(ngrid,1)+pdpsrf(ngrid)*ptimestep
    1255            tsurf(ngrid)=1./(1./136.27-r/5.9e+5*alog(0.0095*
    1256      &                     (pplev(ngrid,1)+pdpsrf(ngrid)*ptimestep)))
    1257          endif
     1253!         if (caps.and.(obliquit.lt.27.)) then
     1254!           ! NB: Updated surface pressure, at grid point 'ngrid', is
     1255!           !     ps(ngrid)=pplev(ngrid,1)+pdpsrf(ngrid)*ptimestep
     1256!           tsurf(ngrid)=1./(1./136.27-r/5.9e+5*alog(0.0095*
     1257!     &                     (pplev(ngrid,1)+pdpsrf(ngrid)*ptimestep)))
     1258!         endif
     1259!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     1260!!!!! note WRF MESOSCALE AYMERIC -- mot cle "caps"
     1261!!!!! watercaptag n'est plus utilise que dans vdifc
     1262!!!!! ... pour que la sublimation ne soit pas stoppee
     1263!!!!! ... dans la calotte permanente nord si qsurf=0
     1264!!!!! on desire garder cet effet regle par caps=T
     1265!!!!! on a donc commente "if (caps.and.(obliquit.lt.27.))" ci-dessus
     1266!!!!! --- remplacer ces lignes par qqch de plus approprie
     1267!!!!!      si on s attaque a la calotte polaire sud
     1268!!!!! pas d'autre occurrence majeure du mot-cle "caps"
     1269!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     1270
    12581271c       -------------------------------------------------------------
    12591272c       Change of surface albedo (set to 0.4) in case of ground frost
     
    15631576         wtsurf(ig) = tsurf(ig)    !! surface temperature
    15641577         wco2ice(ig) = co2ice(ig)  !! co2 ice
     1578
     1579         !!! TEMP TEMP TEMP TEMP TEMP TEMP TEMP
     1580         !!! specific to WRF WRF WRF
     1581         !!! just to output water ice on surface
     1582         !!! [it might not be water ice on surface but OK]
     1583         !!! uncomment the Registry entry
     1584         qsurflast(ig) = qsurf(ig,nqmx)
     1585
    15651586      enddo
    15661587c
  • trunk/mesoscale/LMDZ.MARS.new/libf/phymars/physiq.F

    r54 r73  
    13241324
    13251325            !!!! waterice = q01, voir readmeteo.F90
    1326             call WRITEDIAGFI(ngridmx,'q01',noms(iq),
     1326            call WRITEDIAGFI(ngridmx,'q01',noms(igcm_h2o_ice),
    13271327     &                      'kg/kg',3,
    13281328     &                       zq(1:ngridmx,1:nlayermx,igcm_h2o_ice))
    13291329            !!!! watervapor = q02, voir readmeteo.F90
    1330             call WRITEDIAGFI(ngridmx,'q02',noms(iq),
     1330            call WRITEDIAGFI(ngridmx,'q02',noms(igcm_h2o_vap),
    13311331     &                      'kg/kg',3,
    13321332     &                       zq(1:ngridmx,1:nlayermx,igcm_h2o_vap))
    1333 
    1334 c            call WRITEDIAGFI(ngridmx,'qsurf'//str2,noms(iq),
    1335 c     &                     'kg.m-2',2,qsurf(1,iq))
    1336 
     1333            !!!! surface waterice qsurf02 (voir readmeteo)
     1334            call WRITEDIAGFI(ngridmx,'qsurf02','surface tracer',
     1335     &                      'kg.m-2',2,
     1336     &                       qsurf(1:ngridmx,igcm_h2o_ice))
    13371337
    13381338c             CALL WRITEDIAGFI(ngridmx,'mtot',
  • trunk/mesoscale/LMD_MM_MARS/SIMU/in_lmdz_mars/myGCM/run.def.INIT

    r11 r73  
    66- Nombre de jours d'integration                                         
    77     nday
    8  10 30 10
     8 5 10 30 10
    99
    1010- nombre de pas par jour (multiple de iperiod) ( ici pour  dt = 1 min )     
  • trunk/mesoscale/LMD_MM_MARS/SRC/POSTPROC/api.F90

    r19 r73  
    4848      ! MARS CONSTANTS
    4949      !
    50       REAL, PARAMETER :: Rd  = 192.     ! gas constant m2 s-2 K-1
    51       REAL, PARAMETER :: Cp  = 844.6    ! r= 8.314511E+0*1000.E+0/mugaz
    52 !REAL, PARAMETER :: Rd  = 191.0
    53 !REAL, PARAMETER :: Cp  = 744.5
     50      !REAL, PARAMETER :: Rd  = 192.     ! gas constant m2 s-2 K-1
     51      !REAL, PARAMETER :: Cp  = 844.6    ! r= 8.314511E+0*1000.E+0/mugaz
     52      REAL, PARAMETER :: Rd  = 191.0
     53      REAL, PARAMETER :: Cp  = 744.5
    5454      REAL, PARAMETER :: RCP = Rd/Cp
    5555      REAL, PARAMETER :: p0  = 610.
  • trunk/mesoscale/LMD_MM_MARS/SRC/PREP_MARS/readmeteo.F90

    r72 r73  
    7474!! Intermediate data arrays
    7575integer :: k,l,m,n,p
    76 real, dimension(:), allocatable :: lat,lon,time,alt,aps,bps,levels,dsoilvert
     76real, dimension(:), allocatable :: lat,lon,time,alt,aps,bps,levels,vertdsoil
    7777real, dimension(:,:), allocatable :: vide,ones,ghtsfile
    7878real, dimension(:,:), allocatable :: interm
     
    207207allocate(dsoilfile(lonlen,latlen,altlen,timelen))
    208208allocate(isoilfile(lonlen,latlen,altlen,timelen))
    209 allocate(dsoilvert(altlen))
     209allocate(vertdsoil(altlen))
    210210!allocate(tfileorig(lonlen,latlen,altlen,timelen))
    211211allocate(ufile(lonlen,latlen,altlen,timelen))
     
    240240isoilfile(:,:,:,:)=0
    241241dsoilfile(:,:,:,:)=0
    242 dsoilvert(:)=0.
     242vertdsoil(:)=0.
    243243!tfileorig(:,:,:,:)=0
    244244!ufileorig(:,:,:,:)=0
     
    591591
    592592    print *,'Surface Water ice'
    593     ierr=NF_INQ_VARID(nid,"qsurf01",nvarid)
     593!!!!!! ATTENTION ATTENTION
     594!!!!!! water ice a la surface est qsurf(ig,nqmx)
     595    ierr=NF_INQ_VARID(nid,"qsurf02",nvarid)
    594596    if (ierr.ne.NF_NOERR) then
    595       write(*,*) "...No qsurf01 - surface Water ice set to 0"
     597      write(*,*) "...No qsurf02 - surface Water ice set to 0"
    596598      swatericefile(:,:,:)=0.
    597599    else
     
    648650        write(*,*) "...No soildepth - Set to -999"  !!! see soil_settings in LMD physics
    649651        DO l=1,altlen
    650                 dsoilvert(l)=-999.
     652                vertdsoil(l)=-999.
    651653        ENDDO
    652654    else
    653         ierr=NF_GET_VAR_REAL(nid,nvarid,dsoilvert)
     655        ierr=NF_GET_VAR_REAL(nid,nvarid,vertdsoil)
    654656    endif
    655657    print *, 'wait a minute' !! AS: I know this could be better
     
    657659     DO n=1,latlen
    658660      DO p=1,timelen
    659        dsoilfile(m,n,:,p) = dsoilvert(:)
     661       dsoilfile(m,n,:,p) = vertdsoil(:)
    660662      ENDDO
    661663     ENDDO
     
    10501052!------------------------!
    10511053FIELD='SM100200'
    1052 UNITS='kg/kg'
     1054UNITS='kg/m2'
    10531055DESC='Surf water ice'
    10541056XLVL=200100.
     
    14701472deallocate(isoilfile)
    14711473deallocate(dsoilfile)
    1472 !deallocate(dsoilvert)
    14731474!deallocate(tfileorig)
    14741475deallocate(ufile)
  • trunk/mesoscale/LMD_MM_MARS/SRC/WRFV2/mars_lmd/libf/phymars/meso_physiq.F

    r72 r73  
    13211321       
    13221322      IF (tracer.AND.water.AND.ngridmx.NE.1) THEN
    1323          if (caps.and.(obliquit.lt.27.)) then
    1324            tsurf(ngrid)=1/(1/136.27-r/5.9e+5*alog(0.0095*ps(ngrid)))
    1325          endif
     1323         !if (caps.and.(obliquit.lt.27.)) then
     1324         !  tsurf(ngrid)=1/(1/136.27-r/5.9e+5*alog(0.0095*ps(ngrid)))
     1325         !endif
     1326!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     1327!!!!! note WRF MESOSCALE AYMERIC -- mot cle "caps"
     1328!!!!! watercaptag n'est plus utilise que dans vdifc
     1329!!!!! ... pour que la sublimation ne soit pas stoppee
     1330!!!!! ... dans la calotte permanente nord si qsurf=0
     1331!!!!! on desire garder cet effet regle par caps=T
     1332!!!!! on a donc commente "if (caps.and.(obliquit.lt.27.))" ci-dessus
     1333!!!!! --- remplacer ces lignes par qqch de plus approprie
     1334!!!!!      si on s attaque a la calotte polaire sud
     1335!!!!! pas d'autre occurrence majeure du mot-cle "caps"
     1336!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     1337
    13261338c       -------------------------------------------------------------
    13271339c       Change of surface albedo (set to 0.4) in case of ground frost
  • trunk/mesoscale/LMD_MM_MARS/SRC/WRFV2/phys/module_lmd_driver.F

    r72 r73  
    154154!-------------------------------------------
    155155   INTEGER ::    i,j,k,its,ite,jts,jte,ij
    156    INTEGER ::    subs
     156   INTEGER ::    subs,iii
    157157
    158158   ! *** for LMD physics
     
    623623    CASE(0)  !! NO TRACERS (mars=0)
    624624      wtnom(nq) = 'co2'
     625    CASE(1)
     626      wtnom(1) = 'h2o_vap' 
     627      wtnom(2) = 'h2o_ice'
     628    CASE(2)
     629      wtnom(1) = 'dust'     
    625630    CASE(11) !! newwater mars==11 scalar:qh2o,qh2o_ice,qdust,qdust_number,qco2
    626631      wtnom(nq) = 'co2'
     
    665670#ifdef NEWPHYS
    666671q_prof(:,1:nq) = SCALAR(i,kps:kpe,j,2:nq+1)  !! the names were set above !! one dummy tracer in WRF
    667 q_prof(:,nq) = 0.95 !! cas du CO2 !! TEMPORAIRE
     672  !!! CAS DU CO2
     673  DO iii=1,nq
     674   IF ( wtnom(iii) .eq. 'co2' ) q_prof(:,iii) = 0.95
     675  ENDDO
    668676#else
    669677SELECT CASE (MARS_MODE)
     
    790798! Tracer at surface !
    791799!-------------------!
    792 #ifdef NEWPHYS
    793   !!! a faire !!!
    794   PRINT *, 'WARNING WARNING no tracer at surface'
    795   qsurf_val(:)=0.
    796 #else
    797800SELECT CASE (MARS_MODE)
    798801    CASE(0)  !! NO TRACERS (mars=0)
    799802    qsurf_val(:)=0.
    800803    CASE(1)  !! WATER CYCLE (mars=1)
     804#ifdef NEWPHYS   
     805    qsurf_val(2)=MARS_WICE(i,j)    !! logique avec wtnom(2) = 'h2o_ice' defini ci-dessus
     806    qsurf_val(1)=0.
     807#else
    801808    qsurf_val(2)=MARS_WICE(i,j)    !! attention... H2O ice is tracer nqmx in qsurf in LMD physics
    802     qsurf_val(1)=0.               
     809    qsurf_val(1)=0.
     810#endif   
    803811    CASE(2)  !! DUST CYCLE (mars=2)
    804812    qsurf_val(:)=0.
     813#ifdef NEWPHYS
     814    CASE(11)
     815    qsurf_val(:)=0. !! provisoire       
     816#endif
    805817END SELECT
    806 #endif
    807818
    808819!-------------------!
  • trunk/mesoscale/LMD_MM_MARS/makemeso

    r71 r73  
    171171    if [[ "${phys}" == "newphys_" ]]
    172172    then
     173     \rm copy_model_tmp > /dev/null
    173174     sed s+"mars_lmd"+"mars_lmd_new"+g copy_model > copy_model_tmp
    174175     chmod 755 copy_model_tmp
  • trunk/mesoscale/NOTES.txt

    r72 r73  
     1
     2
     3more than 4 procs w/ nest ??? y reflechir
     4-----------------------------------------------------------------------
     5-- si possible comment determiner taille ?
     6nproc doit diviser e_we-1 (1er nest)
     7grid_ratio doit diviser e_we-1 +4 (1er nest)
     8soit e_we=ye+1
     9grid_ratio divise ye+4 et nproc divise ye
     10soit nproc=8, ye=8*i
     11ainsi il existe j tel que 8i + 4 = 3j ou encore 4*[2i+1] = 3j
     12verifie par exemple si 2i+1 est multiple de 3
     13il suffit donc de trouver un multiple impair de 3 et de deduire i
     14par exemple 2i+1=33 >>>> i=16
     15>>>> e_we = 129 pour le 1er nest (et ajouter 4 pour les suivants)
     16------------------------------------------------------------------------
     17
     18pour le cycle de l'eau c'est OK de regler caps=F dans le mesoscale
     19sauf si on commence a devoiler la calotte permanente nord
     20
     21NE SERAIT-CE PAS MIEUX DE TOUT TRANSMETTRE AUX BORNES ???
     22tous les traceurs, pas seulement vapor
     23
    124
    225- attention il faut les trois MARS sinon il s arrete sans message clair
Note: See TracChangeset for help on using the changeset viewer.