Changeset 2933 for LMDZ5


Ignore:
Timestamp:
Jul 3, 2017, 6:15:15 PM (7 years ago)
Author:
fhourdin
Message:

Les insectes ont parfois une carapace solide.
Correction d'une correction qui en avait oublié un précédente.
(Frédéric pour Marie-Pierre)

Location:
LMDZ5/trunk/libf/phylmd/dyn1d
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/phylmd/dyn1d/1DUTILS.h

    r2920 r2933  
    496496       forc_v =0
    497497       CALL getin('forc_v',forc_v)
    498 
    499498!Config  Key  = forc_w
    500499!Config  Desc = forcage ou non par w
     
    667666
    668667      modname = 'dyn1deta0 : '
    669       nmq(1)="vap"
    670       nmq(2)="cond"
    671       do iq=3,nqtot
    672         write(nmq(iq),'("tra",i1)') iq-2
    673       enddo
     668!!      nmq(1)="vap"
     669!!      nmq(2)="cond"
     670!!      do iq=3,nqtot
     671!!        write(nmq(iq),'("tra",i1)') iq-2
     672!!      enddo
     673      DO iq = 1,nqtot
     674        nmq(iq) = trim(tname(iq))
     675      ENDDO
    674676      print*,'in dyn1deta0 ',fichnom,klon,klev,nqtot
    675677      CALL open_startphy(fichnom)
     
    818820      CALL open_restartphy(fichnom)
    819821      print*,'redm1 ',fichnom,klon,klev,nqtot
    820       nmq(1)="vap"
    821       nmq(2)="cond"
    822       nmq(3)="tra1"
    823       nmq(4)="tra2"
     822!!      nmq(1)="vap"
     823!!      nmq(2)="cond"
     824!!      nmq(3)="tra1"
     825!!      nmq(4)="tra2"
     826      DO iq = 1,nqtot
     827        nmq(iq) = trim(tname(iq))
     828      ENDDO
    824829
    825830      modname = 'dyn1dredem'
     
    14041409      cor(:) = rkappa*temp*(1.+q(:,1)*rv/rd)/(play*(1.+q(:,1)))
    14051410
     1411
    14061412      do k=2,llm-1
    14071413
     
    27962802         hq_mod_cas(l)= hq_prof_cas(k2) - frac*(hq_prof_cas(k2)-hq_prof_cas(k1))
    27972803         vq_mod_cas(l)= vq_prof_cas(k2) - frac*(vq_prof_cas(k2)-vq_prof_cas(k1))
     2804         dtrad_mod_cas(l)= dtrad_prof_cas(k2) - frac*(dtrad_prof_cas(k2)-dtrad_prof_cas(k1))
    27982805     
    27992806         else !play>plev_prof_cas(1)
     
    28222829         hq_mod_cas(l)= frac1*hq_prof_cas(k1) - frac2*hq_prof_cas(k2)
    28232830         vq_mod_cas(l)= frac1*vq_prof_cas(k1) - frac2*vq_prof_cas(k2)
     2831         dtrad_mod_cas(l)= frac1*dtrad_prof_cas(k1) - frac2*dtrad_prof_cas(k2)
    28242832
    28252833         endif ! play.le.plev_prof_cas(1)
     
    28502858         hq_mod_cas(l)= hq_prof_cas(nlev_cas)*fact                            !jyg
    28512859         vq_mod_cas(l)= vq_prof_cas(nlev_cas)*fact                            !jyg
     2860         dtrad_mod_cas(l)= dtrad_prof_cas(nlev_cas)*fact                      !jyg
    28522861 
    28532862        endif ! play
     
    50295038      REAL tau
    50305039!c      DATA tau /3600./
    5031       DATA tau /5400./
     5040!      DATA tau /5400./
     5041       DATA tau /43200./
    50325042!
    50335043   INTEGER k,i
     
    50415051        DO k = 1,klev
    50425052         DO i = 1,klon
    5043            IF (paprs(i,1)-pplay(i,k) .GT. 10000.) THEN
     5053!CR: nudging everywhere
     5054!           IF (paprs(i,1)-pplay(i,k) .GT. 10000.) THEN
    50445055!
    50455056            d_u(i,k) = d_u(i,k) + 1./tau*(u_targ(i,k)-u(i,k))
     
    50485059            print *,' k,u,d_u,v,d_v ',    &
    50495060                      k,u(i,k),d_u(i,k),v(i,k),d_v(i,k)
    5050            ENDIF
     5061!           ENDIF
    50515062!
    50525063         ENDDO
     
    51755186         hq_mod_cas(l)= hq_prof_cas(k2) - frac*(hq_prof_cas(k2)-hq_prof_cas(k1))
    51765187         vq_mod_cas(l)= vq_prof_cas(k2) - frac*(vq_prof_cas(k2)-vq_prof_cas(k1))
     5188         dtrad_mod_cas(l)= dtrad_prof_cas(k2) - frac*(dtrad_prof_cas(k2)-dtrad_prof_cas(k1))
    51775189     
    51785190         else !play>plev_prof_cas(1)
     
    52115223         hq_mod_cas(l)= frac1*hq_prof_cas(k1) - frac2*hq_prof_cas(k2)
    52125224         vq_mod_cas(l)= frac1*vq_prof_cas(k1) - frac2*vq_prof_cas(k2)
     5225         dtrad_mod_cas(l)= frac1*dtrad_prof_cas(k1) - frac2*dtrad_prof_cas(k2)
    52135226
    52145227         endif ! play.le.plev_prof_cas(1)
     
    52475260         hq_mod_cas(l)= hq_prof_cas(nlev_cas)*fact                     !jyg
    52485261         vq_mod_cas(l)= vq_prof_cas(nlev_cas)*fact                     !jyg
     5262         dtrad_mod_cas(l)= dtrad_prof_cas(nlev_cas)*fact               !jyg
    52495263 
    52505264        endif ! play
  • LMDZ5/trunk/libf/phylmd/dyn1d/lmdz1d.F90

    r2920 r2933  
    2020       wake_deltaq, wake_deltat, wake_s, wake_dens, &
    2121       zgam, zmax0, zmea, zpic, zsig, &
    22        zstd, zthe, zval, ale_bl, ale_bl_trig, alp_bl
     22       zstd, zthe, zval, ale_bl, ale_bl_trig, alp_bl, ql_ancien, qs_ancien, &
     23       prlw_ancien, prsw_ancien, prw_ancien
    2324 
    2425   USE dimphy
     
    206207      REAL, ALLOCATABLE, DIMENSION(:,:):: d_q_adv
    207208      REAL, ALLOCATABLE, DIMENSION(:,:):: d_q_nudge
    208 !      REAL, ALLOCATABLE, DIMENSION(:):: d_t_adv
     209!      REAL, ALLOCATABLE, DIMENSION(:):: d_th_adv
    209210
    210211!---------------------------------------------------------------------
     
    580581      allocate(d_q_adv(llm,nqtot))
    581582      allocate(d_q_nudge(llm,nqtot))
    582 !      allocate(d_t_adv(llm))
     583!      allocate(d_th_adv(llm))
    583584
    584585      q(:,:) = 0.
     
    813814        t_ancien(1,:)=temp(:)
    814815        q_ancien(1,:)=q(:,1)
     816        ql_ancien = 0.
     817        qs_ancien = 0.
     818        prlw_ancien = 0.
     819        prsw_ancien = 0.
     820        prw_ancien = 0.
    815821!jyg<
    816822!!        pbl_tke(:,:,:)=1.e-8
     
    10781084       endif
    10791085
     1086!CRio:Attention modif spécifique cas de Caroline
     1087      if (forcing_les) then
     1088         fcoriolis=0.
     1089!Nudging
     1090       
     1091!on calcule dt_cooling
     1092        do l=1,llm
     1093        if (play(l).ge.20000.) then
     1094            dt_cooling(l)=-1.5/86400.
     1095        elseif ((play(l).ge.10000.).and.((play(l).lt.20000.))) then
     1096            dt_cooling(l)=-1.5/86400.*(play(l)-10000.)/(10000.)-1./86400.*(20000.-play(l))/10000.*(temp(l)-200.)
     1097        else
     1098            dt_cooling(l)=-1.*(temp(l)-200.)/86400.
     1099        endif
     1100        enddo
     1101
     1102      endif     
     1103!RC
     1104
    10801105      IF (prt_level >= 5) print*, 'fcoriolis, xlat,mxcalc ', &
    10811106                                   fcoriolis, xlat,mxcalc
Note: See TracChangeset for help on using the changeset viewer.