Ignore:
Timestamp:
Jun 23, 2015, 1:09:31 PM (9 years ago)
Author:
Laurent Fairhead
Message:

Modifications to run 1D Bomex case
MPL

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/phylmd/mod_1D_cases_read.F90

    r2191 r2307  
     1!
     2! $Id$
     3!
    14MODULE mod_1D_cases_read
    25
     
    1114        real heure_ini_cas
    1215        real day_ju_ini_cas   ! Julian day of case first day
    13         parameter (year_ini_cas=2011)
    14         parameter (mth_ini_cas=10)
    15         parameter (day_ini_cas=1)  ! 10 = 10Juil2006
     16!       parameter (year_ini_cas=2011)
     17        parameter (year_ini_cas=1969)
     18!       parameter (mth_ini_cas=10)
     19        parameter (mth_ini_cas=6)
     20!       parameter (day_ini_cas=1)  ! 10 = 10Juil2006
     21        parameter (day_ini_cas=24)  ! 24 = 24 juin 1969
    1622        parameter (heure_ini_cas=0.) !0h en secondes
    1723        real pdt_cas
     
    4349        real, allocatable::  vitw_cas(:,:)
    4450        real, allocatable::  ug_cas(:,:),vg_cas(:,:)
    45         real, allocatable::  lat_cas(:),sens_cas(:),ts_cas(:)
     51        real, allocatable::  lat_cas(:),sens_cas(:),ts_cas(:),ustar_cas(:)
    4652
    4753!champs interpoles
     
    7076
    7177
    72         real lat_prof_cas,sens_prof_cas,ts_prof_cas
     78        real lat_prof_cas,sens_prof_cas,ts_prof_cas,ustar_prof_cas
    7379     
    7480
     
    143149        allocate(ug_cas(nlev_cas,nt_cas))
    144150        allocate(vg_cas(nlev_cas,nt_cas))
    145         allocate(lat_cas(nt_cas),sens_cas(nt_cas),ts_cas(nt_cas))
     151        allocate(lat_cas(nt_cas),sens_cas(nt_cas),ts_cas(nt_cas),ustar_cas(nt_cas))
    146152
    147153
     
    175181     &     ,ug_cas,vg_cas,vitw_cas,du_cas,hu_cas,vu_cas,dv_cas,hv_cas,vv_cas &
    176182     &     ,dt_cas,dtrad_cas,ht_cas,vt_cas,dq_cas,hq_cas,vq_cas             &
    177      &     ,dth_cas,hth_cas,vth_cas,dr_cas,hr_cas,vr_cas,sens_cas,lat_cas,ts_cas)
     183     &     ,dth_cas,hth_cas,vth_cas,dr_cas,hr_cas,vr_cas,sens_cas,lat_cas,ts_cas,ustar_cas)
    178184
    179185
     
    203209        deallocate(ug_cas)
    204210        deallocate(vg_cas)
    205         deallocate(lat_cas,sens_cas,ts_cas)
     211        deallocate(lat_cas,sens_cas,ts_cas,ustar_cas)
    206212
    207213!champs interpoles
     
    241247     &     ,zz,pp,temp,qv,rh,theta,rv,u,v,ug,vg,w,                   &
    242248     &     du,hu,vu,dv,hv,vv,dt,dtrad,ht,vt,dq,hq,vq,                     &
    243      &     dth,hth,vth,dr,hr,vr,sens,flat,ts)
     249     &     dth,hth,vth,dr,hr,vr,sens,flat,ts,ustar)
    244250
    245251!program reading forcing of the case study
     
    265271      real dth(nlevel,ntime),hth(nlevel,ntime),vth(nlevel,ntime)
    266272      real dr(nlevel,ntime),hr(nlevel,ntime),vr(nlevel,ntime)
    267       real flat(ntime),sens(ntime),ts(ntime)
     273      real flat(ntime),sens(ntime),ts(ntime),ustar(ntime)
    268274
    269275
    270276      integer nid, ierr,rid
    271277      integer nbvar3d
    272       parameter(nbvar3d=34)
     278      parameter(nbvar3d=39)
    273279      integer var3didin(nbvar3d)
    274280
     
    478484           stop 'ts'
    479485         endif
     486
     487      ierr=NF_INQ_VARID(nid,"ustar",var3didin(35))
     488         if(ierr/=NF_NOERR) then
     489           write(*,*) NF_STRERROR(ierr)
     490           stop 'ustar'
     491         endif
    480492 
    481493#ifdef NC_DOUBLE
     
    853865         endif
    854866!          write(*,*)'lecture ts ok',ts
     867
     868#ifdef NC_DOUBLE
     869         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(35),ustar)
     870#else
     871         ierr = NF_GET_VAR_REAL(nid,var3didin(35),ustar)
     872#endif
     873         if(ierr/=NF_NOERR) then
     874            write(*,*) NF_STRERROR(ierr)
     875            stop "getvarup"
     876         endif
     877!         write(*,*)'lecture ustar ok',ustar
     878
    855879
    856880         return
     
    862886     &         ,ug_cas,vg_cas,vitw_cas,du_cas,hu_cas,vu_cas           &
    863887     &         ,dv_cas,hv_cas,vv_cas,dt_cas,ht_cas,vt_cas,dtrad_cas   &
    864      &         ,dq_cas,hq_cas,vq_cas,lat_cas,sens_cas          &
     888     &         ,dq_cas,hq_cas,vq_cas,lat_cas,sens_cas,ustar_cas       &
    865889     &         ,ts_prof_cas,plev_prof_cas,t_prof_cas,q_prof_cas       &
    866890     &         ,u_prof_cas,v_prof_cas,ug_prof_cas,vg_prof_cas         &
     
    868892     &         ,dv_prof_cas,hv_prof_cas,vv_prof_cas,dt_prof_cas       &
    869893     &         ,ht_prof_cas,vt_prof_cas,dtrad_prof_cas,dq_prof_cas    &
    870      &         ,hq_prof_cas,vq_prof_cas,lat_prof_cas,sens_prof_cas)
     894     &         ,hq_prof_cas,vq_prof_cas,lat_prof_cas,sens_prof_cas,ustar_prof_cas)
    871895         
    872896
     
    903927        real lat_cas(nt_cas)
    904928        real sens_cas(nt_cas)
     929        real ustar_cas(nt_cas)
    905930
    906931! outputs:
     
    915940        real dtrad_prof_cas(nlev_cas)
    916941        real dq_prof_cas(nlev_cas),hq_prof_cas(nlev_cas),vq_prof_cas(nlev_cas)
    917         real lat_prof_cas,sens_prof_cas,ts_prof_cas
     942        real lat_prof_cas,sens_prof_cas,ts_prof_cas,ustar_prof_cas
    918943! local:
    919944        integer it_cas1, it_cas2,k
     
    921946
    922947
    923         print*,'Check time',day1,day_ini_cas,day_ini_cas+90
     948        print*,'Check time',day1,day_ini_cas,day_ini_cas+1
    924949
    925950        if ((forcing_type.eq.10).and.(1.eq.1)) then
    926951! Check that initial day of the simulation consistent with the case:
    927        if (annee_ref.ne.2011) then
    928         print*,'Pour CINDY, annee_ref doit etre 2011'
     952       if (annee_ref.ne.1969) then
     953!       print*,'Pour CINDY, annee_ref doit etre 2011'
     954        print*,'Pour BOMEX, annee_ref doit etre 1969'
    929955        print*,'Changer annee_ref dans run.def'
    930956        stop
    931957       endif
    932        if (annee_ref.eq.2011 .and. day1.lt.day_ini_cas) then
    933         print*,'CINDY a débuté le 1 octobre 2011',day1,day_ini_cas
     958       if (annee_ref.eq.1969 .and. day1.lt.day_ini_cas) then
     959!       print*,'CINDY a debute le 1 octobre 2011',day1,day_ini_cas
     960        print*,'BOMEX a debute le 24 juin 1969',day1,day_ini_cas
    934961        print*,'Changer dayref dans run.def'
    935962        stop
    936963       endif
    937        if (annee_ref.eq.2011 .and. day1.gt.day_ini_cas+90) then
    938         print*,'CINDY a fini le 31 decembre'
     964       if (annee_ref.eq.1969 .and. day1.gt.day_ini_cas+1) then
     965!       print*,'CINDY a fini le 31 decembre'
     966        print*,'BOMEX a fini le 24 juin'
    939967        print*,'Changer dayref ou nday dans run.def',day1,day_ini_cas+90
    940968        stop
     
    950978       endif
    951979       if (annee_ref.eq.2006 .and. day1.lt.day_ini_cas) then
    952         print*,'AMMA a débuté le 10 juillet 2006',day1,day_ini_cas
     980        print*,'AMMA a debute le 10 juillet 2006',day1,day_ini_cas
    953981        print*,'Changer dayref dans run.def'
    954982        stop
     
    9991027       sens_prof_cas = sens_cas(it_cas2)                                     &
    10001028     &          -frac*(sens_cas(it_cas2)-sens_cas(it_cas1))
    1001        ts_prof_cas = ts_cas(it_cas2)                                     &
     1029       ts_prof_cas = ts_cas(it_cas2)                                         &
    10021030     &          -frac*(ts_cas(it_cas2)-ts_cas(it_cas1))
     1031       ustar_prof_cas = ustar_cas(it_cas2)                                   &
     1032     &          -frac*(ustar_cas(it_cas2)-ustar_cas(it_cas1))
    10031033
    10041034       do k=1,nlev_cas
Note: See TracChangeset for help on using the changeset viewer.