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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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
Note: See TracChangeset for help on using the changeset viewer.