Ignore:
Timestamp:
Nov 30, 2016, 1:28:41 PM (8 years ago)
Author:
Laurent Fairhead
Message:

Merged trunk changes r2664:2719 into testing branch

Location:
LMDZ5/branches/testing
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/branches/testing

  • LMDZ5/branches/testing/libf/phylmd/dyn1d/lmdz1d.F90

    r2641 r2720  
    2121       zgam, zmax0, zmea, zpic, zsig, &
    2222       zstd, zthe, zval, ale_bl, ale_bl_trig, alp_bl
     23 
    2324   USE dimphy
    2425   USE surface_data, only : type_ocean,ok_veget
     
    3132   USE indice_sol_mod
    3233   USE phyaqua_mod
    33    USE mod_1D_cases_read
     34!  USE mod_1D_cases_read
     35   USE mod_1D_cases_read2
    3436   USE mod_1D_amma_read
    3537   USE print_control_mod, ONLY: lunout, prt_level
     
    131133        logical :: forcing_amma    = .false.
    132134        logical :: forcing_dice    = .false.
     135        logical :: forcing_gabls4  = .false.
     136
    133137        logical :: forcing_GCM2SCM = .false.
    134138        logical :: forcing_GCSSold = .false.
     
    137141        logical :: forcing_fire    = .false.
    138142        logical :: forcing_case    = .false.
     143        logical :: forcing_case2   = .false.
    139144        integer :: type_ts_forcing ! 0 = SST constant; 1 = SST read from a file
    140145!                                                            (cf read_tsurf1d.F)
     
    174179      real :: pzero=1.e5
    175180      real :: play (llm),zlay (llm),sig_s(llm),plev(llm+1)
    176       real :: playd(llm),zlayd(llm),ap_amma(llm+1),bp_amma(llm+1),poub
     181      real :: playd(llm),zlayd(llm),ap_amma(llm+1),bp_amma(llm+1)
    177182
    178183!---------------------------------------------------------------------
     
    189194      real :: du_phys(llm),dv_phys(llm),dt_phys(llm)
    190195      real :: dt_dyn(llm)
    191       real :: dt_cooling(llm),d_th_adv(llm),d_t_nudge(llm)
     196      real :: dt_cooling(llm),d_t_adv(llm),d_th_adv(llm),d_t_nudge(llm)
    192197      real :: d_u_nudge(llm),d_v_nudge(llm)
    193198      real :: du_adv(llm),dv_adv(llm)
     
    322327!             Different stages: soil model alone, atm. model alone
    323328!             then both models coupled
     329!forcing_type = 8 ==> forcing_gabls4 = .true.
     330!             initial profiles and large scale forcings in gabls4_driver.nc
    324331!forcing_type >= 100 ==> forcing_case = .true.
    325332!             initial profiles and large scale forcings in cas.nc
     
    327334!             101=cindynamo
    328335!             102=bomex
     336!forcing_type >= 100 ==> forcing_case2 = .true.
     337!             temporary flag while all the 1D cases are not whith the same cas.nc forcing file
     338!             103=arm_cu2 ie arm_cu with new forcing format
     339!             104=rico2 ie rico with new forcing format
    329340!forcing_type = 40 ==> forcing_GCSSold = .true.
    330341!             initial profile from GCSS file
     
    363374      elseif (forcing_type .eq.7) THEN
    364375       forcing_dice = .true.
     376      elseif (forcing_type .eq.8) THEN
     377       forcing_gabls4 = .true.
    365378      elseif (forcing_type .eq.101) THEN ! Cindynamo starts 1-10-2011 0h
    366379       forcing_case = .true.
     
    375388       mth_ini_cas=6
    376389       day_deb=24
     390       heure_ini_cas=0.
     391       pdt_cas=1800.         ! forcing frequency
     392      elseif (forcing_type .eq.103) THEN ! Arm_cu starts 21-6-1997 11h30
     393       forcing_case2 = .true.
     394       year_ini_cas=1997
     395       mth_ini_cas=6
     396       day_deb=21
     397       heure_ini_cas=11.5
     398       pdt_cas=1800.         ! forcing frequency
     399      elseif (forcing_type .eq.104) THEN ! rico starts 16-12-2004 0h
     400       forcing_case2 = .true.
     401       year_ini_cas=2004
     402       mth_ini_cas=12
     403       day_deb=16
    377404       heure_ini_cas=0.
    378405       pdt_cas=1800.         ! forcing frequency
     
    449476      endif
    450477      print *,'fnday=',fnday
    451 
     478!     start_time doit etre en FRACTION DE JOUR
    452479      start_time=time_ini/24.
    453480
    454481! Special case for arm_cu which lasts less than one day : 53100s !! (MPL 20111026)
    455482      IF(forcing_type .EQ. 61) fnday=53100./86400.
     483      IF(forcing_type .EQ. 103) fnday=53100./86400.
    456484! Special case for amma which lasts less than one day : 64800s !! (MPL 20120216)
    457485      IF(forcing_type .EQ. 6) fnday=64800./86400.
    458486!     IF(forcing_type .EQ. 6) fnday=50400./86400.
     487 IF(forcing_type .EQ. 8 ) fnday=129600./86400.
    459488      annee_ref = anneeref
    460489      mois = 1
     
    487516     & (year_ini_dice,mth_ini_dice,day_ini_dice,heure_ini_dice             &
    488517     & ,day_ju_ini_dice)
     518 ELSEIF (forcing_type .eq.8 ) THEN
     519! Convert the initial date of GABLS4 to Julian day
     520      call ymds2ju                                                         &
     521     & (year_ini_gabls4,mth_ini_gabls4,day_ini_gabls4,heure_ini_gabls4     &
     522     & ,day_ju_ini_gabls4)
    489523      ELSEIF (forcing_type .gt.100) THEN
    490524! Convert the initial date to Julian day
     
    492526      print*,'time case',year_ini_cas,mth_ini_cas,day_ini_cas
    493527      call ymds2ju                                                         &
    494      & (year_ini_cas,mth_ini_cas,day_ini_cas,heure_ini_cas              &
     528     & (year_ini_cas,mth_ini_cas,day_ini_cas,heure_ini_cas*3600            &
    495529     & ,day_ju_ini_cas)
    496530      print*,'time case 2',day_ini_cas,day_ju_ini_cas
     
    514548      ENDIF
    515549
     550      IF (forcing_type .gt.100) THEN
     551      daytime = day + heure_ini_cas/24. ! 1st day and initial time of the simulation
     552      ELSE
    516553      daytime = day + time_ini/24. ! 1st day and initial time of the simulation
     554      ENDIF
    517555! Print out the actual date of the beginning of the simulation :
    518556      call ju2ymds(daytime,year_print, month_print,day_print,sec_print)
     
    699737
    700738        fder=0.
    701         snsrf(1,:)=0.        ! couverture de neige des sous surface
     739        snsrf(1,:)=snowmass ! masse de neige des sous surface
    702740        qsurfsrf(1,:)=qsurf ! humidite de l'air des sous surface
    703741        fevap=0.
    704742        z0m(1,:)=rugos     ! couverture de neige des sous surface
    705         z0h(1,:)=rugos     ! couverture de neige des sous surface
     743        z0h(1,:)=rugosh    ! couverture de neige des sous surface
    706744        agesno  = xagesno
    707745        tsoil(:,:,:)=tsurf
     
    726764        print*,'avant phyredem'
    727765        pctsrf(1,:)=0.
    728         if (nat_surf.eq.0.) then
     766          if (nat_surf.eq.0.) then
    729767          pctsrf(1,is_oce)=1.
    730768          pctsrf(1,is_ter)=0.
    731         else
     769          pctsrf(1,is_lic)=0.
     770          pctsrf(1,is_sic)=0.
     771        else if (nat_surf .eq. 1) then
    732772          pctsrf(1,is_oce)=0.
    733773          pctsrf(1,is_ter)=1.
    734         end if
     774          pctsrf(1,is_lic)=0.
     775          pctsrf(1,is_sic)=0.
     776        else if (nat_surf .eq. 2) then
     777          pctsrf(1,is_oce)=0.
     778          pctsrf(1,is_ter)=0.
     779          pctsrf(1,is_lic)=1.
     780          pctsrf(1,is_sic)=0.
     781        else if (nat_surf .eq. 3) then
     782          pctsrf(1,is_oce)=0.
     783          pctsrf(1,is_ter)=0.
     784          pctsrf(1,is_lic)=0.
     785          pctsrf(1,is_sic)=1.
     786
     787     end if
     788
    735789
    736790        print*,'nat_surf,pctsrf(1,is_oce),pctsrf(1,is_ter)',nat_surf         &
     
    10051059
    10061060       if (forcing_toga .or. forcing_GCSSold .or. forcing_twpice            &
    1007      &    .or.forcing_amma) then
     1061     &    .or.forcing_amma .or. forcing_type.eq.101) then
    10081062         fcoriolis=0.0 ; ug=0. ; vg=0.
    10091063       endif
    1010          if(forcing_rico) then
     1064
     1065       if(forcing_rico) then
    10111066          dt_cooling=0.
    1012         endif
     1067       endif
    10131068
    10141069      IF (prt_level >= 5) print*, 'fcoriolis, xlat,mxcalc ', &
     
    11721227!#endif
    11731228
     1229
Note: See TracChangeset for help on using the changeset viewer.