Changeset 117


Ignore:
Timestamp:
May 10, 2011, 6:33:29 PM (14 years ago)
Author:
aslmd
Message:

M 116 mesoscale/LMD_MM_MARS/SRC/WRFV2/phys/module_lmd_driver.F
* CORRECTION MAJEURE DE BUG : PSFC et TRACEURS PAS BIEN MIS A JOUR *

  • pdq au lieu de pdq*dt (dt = pas de temps dynamique)
  • idem pour pdpsrf

IMPACT SURTOUT SUR LES SIMULATIONS LONGUES ET LES SIMULATIONS TACHE DE POUSSIERE (stage Julien)
TEST A EFFECTUER POUR LES SIMULATIONS CYCLE DE L'EAU

M 116 mars/libf/phymars/newsedim.F
M 116 mars/README
Correction de deux bugs dans newsedim.F: 1-e(-x) trop faible et endif mal place

M 116 mesoscale/LMDZ.MARS.new/myGCM/start.nc
A 0 mesoscale/LMDZ.MARS.new/myGCM/DEFS_JB/SP51_HR_dq_r3.0n0.5a0.5_MY26_TM
A 0 mesoscale/LMDZ.MARS.new/myGCM/DEFS_JB/SP51_HR_dq_r3.0n0.5a0.5_MY26_TM/run.def
A 0 mesoscale/LMDZ.MARS.new/myGCM/DEFS_JB/SP51_HR_dq_r3.0n0.5a0.5_MY26_TM/traceur.def
A 0 mesoscale/LMDZ.MARS.new/myGCM/DEFS_JB/SP51_HR_dq_r3.0n0.5a0.5_MY26_TM/startfi72.nc
A 0 mesoscale/LMDZ.MARS.new/myGCM/DEFS_JB/SP51_HR_dq_r3.0n0.5a0.5_MY26_TM/start72.nc
A 0 mesoscale/LMDZ.MARS.new/myGCM/DEFS_JB/SP51_HR_dq_r3.0n0.5a0.5_MY26_TM/callphys.def
M 116 mesoscale/LMDZ.MARS.new/myGCM/traceur.def
M 116 mesoscale/LMDZ.MARS.new/myGCM/startfi.nc
M 116 mesoscale/LMDZ.MARS.new/myGCM/callphys.def
M 116 mesoscale/LMD_MM_MARS/SIMU/in_lmdz_mars_newphys/compile
M 116 mesoscale/LMD_MM_MARS/SIMU/in_lmdz_mars_newphys/myGCM/launch_gcm
M 116 mesoscale/LMD_MM_MARS/SIMU/in_lmdz_mars_newphys/myGCM/run_mcd_3days
Nouvelle base de donnees d'etats initiaux sans les nuages radiativement actifs

A 0 mesoscale/PLOT/SPEC/LES/turb_period_psfc.pro
A 0 mesoscale/PLOT/SPEC/LES/turb_inc.pro.new
M 116 mesoscale/PLOT/SPEC/GW/gravitwave2.pro
M 116 mesoscale/PLOT/SPEC/GW/gravitwaveprof.pro
Petites MAJ routines graphiques

Location:
trunk
Files:
8 added
13 edited

Legend:

Unmodified
Added
Removed
  • trunk/chantiers/commit_importants.log

    r110 r117  
    838838* Ajout de disvert.tex[/.pdf] dans la doc
    839839
     840*********************
     841**** commit_v117 ****
     842*********************
     843
     844M              116   mesoscale/LMD_MM_MARS/SRC/WRFV2/phys/module_lmd_driver.F
     845*** CORRECTION MAJEURE DE BUG : PSFC et TRACEURS PAS BIEN MIS A JOUR ***
     846- pdq au lieu de pdq*dt (dt = pas de temps dynamique)
     847- idem pour pdpsrf
     848IMPACT SURTOUT SUR LES SIMULATIONS LONGUES ET LES SIMULATIONS TACHE DE POUSSIERE (stage Julien)
     849TEST A EFFECTUER POUR LES SIMULATIONS CYCLE DE L'EAU
     850
     851M              116   mars/libf/phymars/newsedim.F
     852M              116   mars/README
     853Correction de deux bugs dans newsedim.F: 1-e(-x) trop faible et endif mal place
     854
     855M              116   mesoscale/LMDZ.MARS.new/myGCM/start.nc
     856A                0   mesoscale/LMDZ.MARS.new/myGCM/DEFS_JB/SP51_HR_dq_r3.0n0.5a0.5_MY26_TM
     857A                0   mesoscale/LMDZ.MARS.new/myGCM/DEFS_JB/SP51_HR_dq_r3.0n0.5a0.5_MY26_TM/run.def
     858A                0   mesoscale/LMDZ.MARS.new/myGCM/DEFS_JB/SP51_HR_dq_r3.0n0.5a0.5_MY26_TM/traceur.def
     859A                0   mesoscale/LMDZ.MARS.new/myGCM/DEFS_JB/SP51_HR_dq_r3.0n0.5a0.5_MY26_TM/startfi72.nc
     860A                0   mesoscale/LMDZ.MARS.new/myGCM/DEFS_JB/SP51_HR_dq_r3.0n0.5a0.5_MY26_TM/start72.nc
     861A                0   mesoscale/LMDZ.MARS.new/myGCM/DEFS_JB/SP51_HR_dq_r3.0n0.5a0.5_MY26_TM/callphys.def
     862M              116   mesoscale/LMDZ.MARS.new/myGCM/traceur.def
     863M              116   mesoscale/LMDZ.MARS.new/myGCM/startfi.nc
     864M              116   mesoscale/LMDZ.MARS.new/myGCM/callphys.def
     865M              116   mesoscale/LMD_MM_MARS/SIMU/in_lmdz_mars_newphys/compile
     866M              116   mesoscale/LMD_MM_MARS/SIMU/in_lmdz_mars_newphys/myGCM/launch_gcm
     867M              116   mesoscale/LMD_MM_MARS/SIMU/in_lmdz_mars_newphys/myGCM/run_mcd_3days
     868Nouvelle base de donnees d'etats initiaux sans les nuages radiativement actifs
     869
     870A                0   mesoscale/PLOT/SPEC/LES/turb_period_psfc.pro
     871A                0   mesoscale/PLOT/SPEC/LES/turb_inc.pro.new
     872M              116   mesoscale/PLOT/SPEC/GW/gravitwave2.pro
     873M              116   mesoscale/PLOT/SPEC/GW/gravitwaveprof.pro
     874Petites MAJ routines graphiques
     875
  • trunk/mars/README

    r90 r117  
    622622>> new version version for aeroptproperties.F in phymars to limit uncertainties and be able to play with ngau
    623623>> this was coded by JBM in his personal reference version but not transmitted to the team reference version
     624
     625== 10/05/2011 == AS + JF
     626>> in newsedim.F used for mesoscale computations, spurious values close to the surface
     627   --> this was related to 1 - exp(-x) calculated as zero in w(ig,l) if x is very small
     628   --> fix: when this happens, replace exp(-x) by 1 - x since x ~ 0
     629>> in newsedim.F, "if (dztop.gt.epaisseur(ig,l)) then" was closed too soon by an "endif"
     630   --> hence basically the simple method was never used
     631       and useless calculations with the complex method were carried out
     632   --> fix by moving the closing "endif" [in addition to corrections mentioned in the previous point]
     633
  • trunk/mars/libf/phymars/newsedim.F

    r38 r117  
    6767
    6868
    69 
    7069c    ** un petit test de coherence
    7170c       --------------------------
     
    138137             k=0
    139138
     139            w(ig,l) = 0. !! JF+AS ajout initialisation
    140140c **************************************************************
    141141c            Simple Method
    142              w(ig,l) =
    143      &       (1- exp(-dztop*g/(r*pt(ig,l))))*pplev(ig,l) / g
    144 cc           write(*,*) 'OK simple method l,w =', l, w(ig,l)
    145 cc           write(*,*) 'OK simple method dztop =', dztop
     142
     143cc             w(ig,l) =
     144cc     &       (1.- exp(-dztop*g/(r*pt(ig,l))))*pplev(ig,l) / g
     145cccc           write(*,*) 'OK simple method l,w =', l, w(ig,l)
     146cccc           write(*,*) 'OK simple method dztop =', dztop
     147
     148             w(ig,l) = 1. - exp(-dztop*g/(r*pt(ig,l)))
     149             !!! Diagnostic: JF. Fix: AS. Date: 05/11
     150             !!! Probleme arrondi avec la quantite ci-dessus
     151             !!! ---> vaut 0 pour -dztop*g/(r*pt(ig,l)) trop petit
     152             !!! ---> dans ce cas on utilise le developpement limite !
     153             !!! ---> exp(-x) = 1 - x lorsque x --> 0 avec une erreur de x^2 / 2           
     154             IF ( w(ig,l) .eq. 0. ) THEN
     155                w(ig,l) = ( dztop*g/(r*pt(ig,l)) ) * pplev(ig,l) / g
     156             ELSE
     157                w(ig,l) = w(ig,l) * pplev(ig,l) / g 
     158             ENDIF
     159
     160
    146161c **************************************************************
    147162cccc         Complex method :
    148             if (dztop.gt.epaisseur(ig,l)) then
     163            if (dztop.gt.epaisseur(ig,l)) then                !!!if on traverse plus d'une couche
    149164cccc            Cas ou on "epuise" la couche l : On calcule le flux
    150165cccc            Venant de dessus en tenant compte de la variation de Vstokes
    151 
     166c **************************************************************
    152167               Ep= epaisseur(ig,l)
    153168               Stra= traversee(ig,l)
     
    159174               enddo
    160175               Ep = Ep - epaisseur(ig,l+k)
    161              end if
    162              ptop=pplev(ig,l+k)*exp(-(dztop-Ep)*g/(r*pt(ig,l+k)))
    163              w(ig,l) = (pplev(ig,l) -Ptop)/g
    164 c
     176             !ptop=pplev(ig,l+k)*exp(-(dztop-Ep)*g/(r*pt(ig,l+k)))
     177
     178             !!! JF+AS 05/11 Probleme arrondi potentiel, meme solution que ci-dessus
     179             ptop=exp(-(dztop-Ep)*g/(r*pt(ig,l+k)))
     180             IF ( ptop .eq. 1. ) THEN
     181                PRINT*, 'exposant trop petit ', ig, l
     182                ptop=pplev(ig,l+k) * ( 1. - (dztop-Ep)*g/(r*pt(ig,l+k)))
     183             ELSE
     184                ptop=pplev(ig,l+k) * ptop
     185             ENDIF
     186             w(ig,l) = (pplev(ig,l) - Ptop)/g
     187
     188            endif                !!!!!if complex method
     189
     190
    165191cc           write(*,*) 'OK new    method l,w =', l, w(ig,l)
    166192cc           write(*,*) 'OK new    method dztop =', dztop
     
    171197cc            if(l.eq.8)write(*,*)'l=8,k, w',k, w(1,l)
    172198c **************************************************************
     199
     200
    173201        end do
    174202      end do
  • trunk/mesoscale/LMDZ.MARS.new/myGCM/callphys.def

    r77 r117  
    1 link DEFS_JB/callphys.def.orig
     1link DEFS_JB/SP51_HR_dq_r3.0n0.5a0.5_MY26_TM/callphys.def
  • trunk/mesoscale/LMDZ.MARS.new/myGCM/start.nc

    r54 r117  
    1 link DEFS_JB/start40.nc
     1link /d5/aslmd/LMD_MM_MARS_DATA/STARTBASE_64_48_25_t2dust_JBM//start284.nc
  • trunk/mesoscale/LMDZ.MARS.new/myGCM/startfi.nc

    r54 r117  
    1 link DEFS_JB/startfi40.nc
     1link /d5/aslmd/LMD_MM_MARS_DATA/STARTBASE_64_48_25_t2dust_JBM//startfi284.nc
  • trunk/mesoscale/LMDZ.MARS.new/myGCM/traceur.def

    r54 r117  
    1 link DEFS_JB/traceur.def
     1link DEFS_JB/SP51_HR_dq_r3.0n0.5a0.5_MY26_TM/traceur.def
  • trunk/mesoscale/LMD_MM_MARS/SIMU/in_lmdz_mars_newphys/compile

    r54 r117  
    2828ny=48
    2929nz=25
     30##################
     31#tracers=2
     32#nx=64
     33#ny=48
     34#nz=25
    3035##################
    3136
  • trunk/mesoscale/LMD_MM_MARS/SIMU/in_lmdz_mars_newphys/myGCM/launch_gcm

    r31 r117  
    1717#startbase='/tmp7/aslmd/flush/'
    1818#startbase='/tmp7/aslmd/flush2/'
    19 startbase='/d6/vblmd/MERIDIANI_EXOMARS/starts_en_cours/tau05/'
     19#startbase='/d6/vblmd/MERIDIANI_EXOMARS/starts_en_cours/tau05/'
     20startbase='/d5/aslmd/LMD_MM_MARS_DATA/STARTBASE_64_48_25_t2dust_JBM/'
    2021##################
    2122
  • trunk/mesoscale/LMD_MM_MARS/SIMU/in_lmdz_mars_newphys/myGCM/run_mcd_3days

    r93 r117  
    1717runnum=0 ## 0 whatever, this is just the way one counts successive runs
    1818runnum_obsolete=0
    19 daynum=61 #0
     19daynum=0 #61 #0
    2020
    2121while [ ${daynum} -lt ${daylim} ] 
  • trunk/mesoscale/LMD_MM_MARS/SRC/WRFV2/phys/module_lmd_driver.F

    r111 r117  
    11151115DEALLOCATE(output_tab3d)
    11161116
     1117
     1118!!!!!!!
     1119!!!!!!! SPECIAL POUR AJOUTER UNE TACHE DE POUSSIERE (sparadrap)
     1120!!!!!!! ps: induit une erreur benigne sur la partie de pdq qui n'est pas zdqnorm
     1121!!!!!!! ps: la raison est que dt n'est pas passe dans meso_physiq
     1122!!!!!!!
     1123!IF (firstcall .EQV. .true.) THEN
     1124!  pdq(:,:,:) = pdq(:,:,:) / dt
     1125!ENDIF
     1126
     1127
    11171128!---------------------------------------------------------------------------------!
    11181129! PHYSIQ TENDENCIES ARE SAVED TO BE SPLIT WITHIN INTERMEDIATE DYNAMICAL TIMESTEPS !
     
    11781189! (cf CO2 cycle in physics) !
    11791190!---------------------------!
    1180 PSFC(i,j)=PSFC(i,j)+pdpsrf(subs) 
     1191PSFC(i,j)=PSFC(i,j)+pdpsrf(subs)*dt    !!! here dt is needed
    11811192
    11821193!---------!
     
    11851196#ifdef NEWPHYS
    11861197SCALAR(i,kps:kpe,j,1)=0.
    1187 SCALAR(i,kps:kpe,j,2:nq+1)=SCALAR(i,kps:kpe,j,2:nq+1)+pdq(subs,kps:kpe,1:nq)
     1198SCALAR(i,kps:kpe,j,2:nq+1)=SCALAR(i,kps:kpe,j,2:nq+1)+pdq(subs,kps:kpe,1:nq)*dt  !!! here dt is needed
    11881199#else
    11891200SELECT CASE (MARS_MODE)
     
    11921203CASE(1)
    11931204        !!! Water vapor
    1194         SCALAR(i,kps:kpe,j,2)=SCALAR(i,kps:kpe,j,2)+pdq(subs,kps:kpe,nq)
     1205        SCALAR(i,kps:kpe,j,2)=SCALAR(i,kps:kpe,j,2)+pdq(subs,kps:kpe,nq)*dt  !!! here dt is needed
    11951206        !!! Water ice
    1196         SCALAR(i,kps:kpe,j,3)=SCALAR(i,kps:kpe,j,3)+pdq(subs,kps:kpe,nq-1)
     1207        SCALAR(i,kps:kpe,j,3)=SCALAR(i,kps:kpe,j,3)+pdq(subs,kps:kpe,nq-1)*dt  !!! here dt is needed
    11971208CASE(2)
    11981209        !!! Dust
    1199         SCALAR(i,kps:kpe,j,2)=SCALAR(i,kps:kpe,j,2)+pdq(subs,kps:kpe,nq)
     1210        SCALAR(i,kps:kpe,j,2)=SCALAR(i,kps:kpe,j,2)+pdq(subs,kps:kpe,nq)*dt  !!! here dt is needed
    12001211CASE(3:)
    12011212        print *, 'OOOPS... not ready yet.'
     
    13091320
    13101321END MODULE module_lmd_driver
    1311 
  • trunk/mesoscale/PLOT/SPEC/GW/gravitwave2.pro

    r114 r117  
    1313folder='/d5/aslmd/GRAVITWAVE/GW_MARS_highwind_narrowmountain_2D.morepoints.160818/'
    1414folder='/d5/aslmd/GRAVITWAVE/GW_MARS_highwind_3D_loweropacity_morepoints_LT15.161544/'
     15folder='/home/aslmd/GRAVITWAVE/GW_MARS_highwind_3D_loweropacity_morepoints_LTcst.168440/'
     16folder='/home/aslmd/GRAVITWAVE/GW_MARS_highwind_3D_loweropacity_morepoints_widehill.168468/'
    1517file=folder+'wrfout_d01_9999-09-09_09:00:00_z'
    1618charvar='W' & charvarc='W'
  • trunk/mesoscale/PLOT/SPEC/GW/gravitwaveprof.pro

    r114 r117  
    99        path='../TESTGW/'
    1010        path='/tmp7/aslmd/'
    11 path='/d5/aslmd/GRAVITWAVE/'
     11path='/home/aslmd/GRAVITWAVE/'
    1212        experiment='mcd_lt16_rcpcst'
    1313        ;experiment='mcd_lt16'
     
    2929experiment='GW_MARS_highwind_3D_loweropacity_morepoints.161542'
    3030experiment='GW_MARS_highwind_3D_loweropacity_morepoints_LT15.161544'
     31experiment='GW_MARS_highwind_3D_loweropacity_morepoints_LTcst.168440'
     32experiment='GW_MARS_highwind_3D_loweropacity_morepoints_widehill.168468'
    3133        file=path+experiment+'_wrfout_d01_9999-09-09_09:00:00_z'
    3234file=path+experiment+'/wrfout_d01_9999-09-09_09:00:00_z'
     
    8890        ;mean_columnp = TOTAL(columnp(*,*,*,nts:nte),4) / float(nte-nts+1)
    8991        anomal_invar = invar & for i=0,s[4]-1 do anomal_invar(*,*,*,i) = anomal_invar(*,*,*,i) - mean_invar
    90 ;
    91 ;
    92 ;
    93         ;goto, perturb
     92;;
     93;;
     94;;
     95;       goto, perturb
    9496for nt=nts,nte do begin
    9597for nx=nxs,nxe do begin
     
    257259        oplot, overplot, overplot_column
    258260     endfor
     261
     262        ;temppp = reform(mean_invar(nxs,middle,*))
     263        ;hache = 191.*temppp/3.72/1000.
     264        ;ok = column / ( 2. * hache )
     265        ;print, exp(ok)
     266        ;yeah = exp(ok)
     267        ;oplot, yeah, column
     268
    259269PS_End, /PNG
    260270
Note: See TracChangeset for help on using the changeset viewer.