


PGF90 (Version     12.8)          08/30/2020  00:27:46      page 1

Switches: -noasm -nodclchk -debug -nodlines -line -list
          -idir ../include
          -inform warn -opt 0 -nosave -object -noonetrip
          -depchk on -nostandard     
          -symbol -noupcase    

Filename: initpost.f90

(    1)       subroutine initpost(nh)
(    2) 
(    3)        USE mod_vrbls
(    4)       USE mod_extra
(    5)        USE mod_masks
(    6)        USE mod_pvrbls
(    7)       implicit none
(    8)       include 'param_o.h'
(    9) !!JNT      include 'extra.comm'
../include/param_o.h
(    1)*      integer,parameter  :: im0=401
(    2)*      integer, parameter :: nm=6
(    3)*      integer, parameter :: lm = 50
(    4)*      integer, parameter :: nsub = 10
(    5)*
(    6)*      integer, parameter :: im=im0, jm=im
(    7)*      integer, parameter :: im1=im-1, jm1=jm-1
(    8)*
(    9)*      integer, parameter :: lm1 = lm-1, lp1 =lm +1  
(   10)*
(   11)*      integer, parameter :: ixm = nsub, jym = ixm, nxy = ixm*jym
(   12)*      integer, parameter :: ildom = (im - 1)/ixm, jldom = (jm - 1)/jym
(   13)*      integer, parameter :: ilm = (im - 1)/ixm +1, jlm = (jm - 1)/jym +1 
(   14)*
(   15)*      logical,parameter::flat=.false.
(   16)*      logical,parameter::hstst=.false.
(   17)*
(   18)*!      integer,parameter::igm=360, jgm = 181
(   19)*      integer,parameter::igm=(im0-1)*4, jgm = (igm/2)+1      
(   20)*      real,parameter::alfa=0.0, beta=0.0, gamm=0.0
(   21)*!      real,parameter::alfa=0.*3.1415926/180.,beta=66.*3.1415926/180. &
(   22)*!	              ,gamm=175.*3.1415926/180.
(   23)*
(   24)*!GSM      integer,parameter::lsm=20
(   25)*      integer,parameter::lsm=31
(   26)*
(   27)*!RESTART
(   28)*
(   29)*      character(len=10):: restartdate='2020080412'    !restart date to create appropriate folder name
(   10)       include 'mapot.comm'
../include/mapot.comm
(    1)*        real,dimension(lsm)::spl,alsl
(    2)*
(    3)*	common/mapot/ spl,alsl
(   11)       include 'const.h'
../include/const.h
(    1)*      logical :: run, first, restrt, subpost
(    2)*      integer :: nfcst,nbc,list,ntsd,nddamp,nprec, &
(    3)*                 nboco,nshde,ncp,ntddmp
(    4)*      logical,parameter::lcornerm=.FALSE.
(    5)*      






PGF90 (Version     12.8)          08/30/2020  00:27:46      page 2

(    6)*      real,parameter :: dt=40               ! length of each time step
(    7)*      logical,parameter:: sigma=.false.
(    8)*!GSM      integer,parameter::outnum=40            ! number of outputs
(    9)*!GSM      integer,parameter::nday=10                ! number of days
(   10)*      integer,parameter:: ntstm=3600*24*10/dt      ! total time steps
(   11)*!      integer,parameter:: idtad=1
(   12)*!      integer,parameter:: ncnvc=45
(   13)*!test      integer,parameter::nphs=45
(   14)* 
(   15)*      integer,parameter:: idtad=2
(   16)*      integer,parameter:: ncnvc=6
(   17)*      integer,parameter::nphs=6
(   18)* 
(   19)* 
(   20)*      integer,parameter::nradsh=1
(   21)*!GSM      integer,parameter::nradlh=2
(   22)*      integer,parameter::nradlh=1
(   23)*      real,parameter::tsph=3600./dt
(   24)*      integer,parameter::nrads=tsph*nradsh
(   25)*      integer,parameter::nradl=tsph*nradlh
(   26)*      real,parameter::weig=0.25
(   27)*      
(   28)*!
(   29)*! parameters for diagnostics
(   30)*!
(   31)*      
(   32)*      integer,parameter::idgns=10
(   33)*      integer,parameter::dgnstr=24*3600*200/dt
(   34)*      integer,parameter::dgnnum=(ntstm-dgnstr)/idgns+1
(   35)*      integer,parameter::ickmm=1
(   36)*      
(   37)*!
(   38)*!  parameter for initial values
(   39)*!
(   40)*            real(KIND=4),parameter::pt = 2500.0
(   41)*!!!test Dragan 1dec2015
(   42)*!!            real,parameter::pt=1000
(   43)*      
(   44)*!
(   45)*!  date
(   46)*!
(   47)*           integer::idat(3)
(   48)*!GSM           data idat/07,21,2020/
(   49)*!GSM           integer::ihrst=0
(   50)*
(   51)*! variable sst
(   52)*          logical::lvsst
(   53)*
(   54)*! data assimilation constants
(   55)*        
(   56)*	  integer,parameter::ndassim=3*3600/dt
(   57)*!	  integer,parameter::ndassimm=8*ndassim
(   58)*	  integer,parameter::ndassimm=0
(   59)*      integer,parameter::outstr=ndassimm      ! step at which starts output
(   60)*       integer,parameter::outend=  ntstm+ndassimm       ! step at which ends output
(   61)*!GSM      integer,parameter::iout=(outend-outstr)/outnum   ! steps between two output
(   62)*
(   63)*!  data choice






PGF90 (Version     12.8)          08/30/2020  00:27:46      page 3

(   64)*
(   65)*      integer,parameter::sstc=1         ! 1 is NCEP sst data
(   66)*                                             ! 2 is TMI sst data
(   67)*
(   68)*    
(   12)       include 'dynam.comm'
(   13)      
(   14)       
../include/dynam.comm
(    1)*      real::fadv,fadv2, fadt, rd,  f4d, ef4t, fkin
(    2)*      real, dimension (lm) :: deta, rdeta, aeta, daeta,f4q2
(    3)*      real, dimension (lp1) :: eta, dfl
(    4)*
(    5)*      common/dynam/ fadv,fadv2,fadt,rd,f4d,f4q2,ef4t,fkin,deta,rdeta, &
(    6)*                    eta,dfl,aeta,daeta
(    7)*
(    8)*
(    9)*!!!!!!!!!!!copy from dynam_comm.h
(   10)*!      real ::  fadv, fadv2,fadt, rd,  f4d, ef4t, fkin, fcp     
(   11)*!      real, dimension (lm) :: deta, rdeta, aeta, daeta,f4q2
(   12)*!      real, dimension (lp1) :: eta, dfl
(   13)*!      real, dimension (0:im+1,0:jm+1,nm) :: wpdar, f11, f12, f21, f22, &
(   14)*!                                    p11, p12, p21, p22, fdiv, fddmp,fvdiff &
(   15)*!				    ,hbmsk,hsinp,hcosp
(   16)*!      common /dynam/ fadv,fadv2, fadt, rd, f4d,f4q2, ef4t, fkin, &
(   17)*!                    deta, rdeta, aeta, eta, dfl, daeta, &
(   18)*!                    wpdar, f11, f12, f21, f22, &
(   19)*!                    p11, p12, p21, p22, fcp, fdiv, fddmp,hsinp,hcosp,&
(   20)*!                    fvdiff,hbmsk
(   15)       integer,parameter::npes=nsub*nsub*nm
(   16)       integer::nh,n,mype0,ix,jy,imaxV,imaxH,imin,jmaxV,jmaxH,jmin, &
(   17)                mype,i,j,l
(   18)       real, dimension(0:ilm+1,0:jlm+1):: dum1
(   19)       real, dimension(0:ilm+1,0:jlm+1,lm):: dum2
(   20)       real, dimension(0:ilm+1,0:jlm+1,nsoil):: dum3!!!!!!!!!!!!!!!!!!!!!!!!
(   21)       
(   22)     !  character (len=03):: c_mype, c_nh !!!!!!!!DRAGAN
(   23)       character (len=04):: c_mype, c_nh  !DRAGAN
(   24)       !character (len=02):: c_mype!DRAGAN
(   25)       
(   26)       
(   27)       character (len=150):: c_filename1 !!!!!!!!!!!!!!!!!!!!!!!
(   28)      
(   29)      
(   30)       real::pbi
(   31)       integer::lmap1
(   32)       real,parameter::R=287.04
(   33) 
(   34) !      spl=(/50000./)
(   35) !      spl=(/100000./)
(   36) !GSM      spl=(/5000.,10000.,15000.,20000.,25000.,30000.,35000.,40000.,  &
(   37) !GSM            45000.,50000.,55000., &
(   38) !GSM            60000.,65000.,70000.,75000.,80000.,85000.,90000.,95000.,100000./)
(   39) !JBF: Niveis inclusos sao os mesmos do GFS (31 Níveis)
(   40) 
(   41)       spl=(/100.,200.,300.,500.,700.,1000.,2000.,3000., &
(   42)             5000.,7000.,10000.,15000.,20000.,25000., &
(   43)             30000.,35000.,40000., &






PGF90 (Version     12.8)          08/30/2020  00:27:46      page 4

(   44)             45000.,50000.,55000., &
(   45)             60000.,65000.,70000.,75000.,80000.,85000., &
(   46)             90000.,92500.,95000.,97500.,100000./)
(   47) 
(   48) 
(   49)       alsl=alog(spl)
(   50) 
(   51)       write(c_nh,1000) nh
(   52)  !1000 format(i3.3) !!!!!!!!!!!DRAGAN
(   53)  
(   54)  1000 format(i4.4)
(   55)  
(   56) !* !$omp parallel do private(mype,n,mype0,jy,ix,list,c_filename1,c_mype,imaxV,imaxH,imin,jmaxV,jmaxH,jmin,dum1,dum2,dum3)
(   57) !***************************************************************************   
(   58)         do mype = 0, npes-1
(   59) !***************************************************************************
(   60)          n = mype/nxy + 1
(   61)          mype0 = mype - (n-1)*nxy
(   62)           jy = (mype0/ixm) + 1
(   63)           ix = mod(mype0, ixm)+1
(   64)           list = 110 + mype + 1
(   65)           if (mod(mype,100).eq.0) print *,'mype = ', mype, 'list = ', list
(   66) 
(   67) !-----------------------------------------------------------------------   
(   68)           write(c_mype,1000) mype
(   69) !          c_filename1='../../RUN/data/data_out/GEFfcst_'//   &
(   70) 
(   71) !!!          print*,"C_MYPE =", C_MYPE, "C_NH =", C_NH
(   72) 
(   73)          c_filename1='GEFfcst_'//   &
(   74)                   c_mype//"."//c_nh
(   75) 
(   76) !Dragan 03/07/2019
(   77) !           c_filename1='/scratchout/grupos/grpeta/projetos/tempo/oper/GEF_v1.0.0-KF/2018111300/GEFfcst_'//   &
(   78) !                  c_mype//"."//c_nh!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
(   79) 
(   80)          if (mod(mype,100).eq.0) print *,"c_fname1 = ", c_filename1
(   81)          open(unit=list, file=c_filename1, form='unformatted')
(   82) !-----------------------------------------------------------------------   
(   83)          imaxV = ix * ildom
(   84)          imaxH = imaxV + 1
(   85)          imin  = imaxH - ildom
(   86)          jmaxV = jy * jldom
(   87)          jmaxH = jmaxV + 1
(   88)          jmin  = jmaxH - jldom
(   89) !-----------------------------------------------------------------------   
(   90)          read(list) dum1 
(   91)          pd(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(   92) 	 read(list)dum2
(   93)          t(imin:imaxH, jmin:jmaxH,n,:) = dum2(1:ilm,1:jlm,:)
(   94) 	 read(list)dum2
(   95)          u(imin:imaxH, jmin:jmaxH,n,:) = dum2(1:ilm,1:jlm,:)
(   96)  	 read(list)dum2
(   97)          v(imin:imaxH, jmin:jmaxH,n,:) = dum2(1:ilm,1:jlm,:)
(   98)  	 read(list)dum2
(   99)          q(imin:imaxH, jmin:jmaxH,n,:) = dum2(1:ilm,1:jlm,:)
(  100) !! 	   read(list)dum2
(  101) !!         q2(imin:imaxH, jmin:jmaxH,n,:) = dum2(1:ilm,1:jlm,:)






PGF90 (Version     12.8)          08/30/2020  00:27:46      page 5

(  102)  	 read(list)dum2
(  103) 
(  104)         
(  105)          cwm(imin:imaxH, jmin:jmaxH,n,:) = dum2(1:ilm,1:jlm,:)
(  106)          read(list) dum1 
(  107)          ths(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  108)          read(list) dum1 
(  109)          u00(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  110) 
(  111)           read(list)ul
(  112)        
(  113) !         read(list) dum1 
(  114) !         tshltr(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  115)           
(  116) 
(  117) !         read(list) dum1 
(  118) !         qshltr(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  119)  
(  120) !         read(list) dum1 
(  121) !         plm(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  122) 
(  123) !!!!!!!!!!!!!!!!!!!!non-hydrostatic!!!!!!!!!!!!!!!
(  124) 
(  125) !!!avg2017         w(imin:imaxH, jmin:jmaxH,n,:) = dum2(1:ilm,1:jlm,:)
(  126) !!!avg2017 	 read(list)dum2
(  127) 	 
(  128) !!!avg2017	 dwdt(imin:imaxH, jmin:jmaxH,n,:) = dum2(1:ilm,1:jlm,:)
(  129) !!!avg2017 	 read(list)dum2
(  130) 	 
(  131) !!!avg2017	 z(imin:imaxH, jmin:jmaxH,n,:) = dum2(1:ilm,1:jlm,:)
(  132) !!!avg2017 	 read(list)dum2
(  133) !!!!!!!!!!!!!!!!!!!!!
(  134) 
(  135) 
(  136) 
(  137) 
(  138) 
(  139)       close(list)
(  140) 
(  141) 
(  142) !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
(  143) 
(  144) !         c_filename1='../../RUN/data/data_out/GEFfcstVEG_'//   &
(  145) !                  c_mype//"."//c_nh
(  146)          c_filename1='GEFfcstVEG_'//  &
(  147) 	 c_mype//"."//c_nh
(  148) 
(  149) !Dragan 03/07/2019
(  150) !         c_filename1='/scratchout/grupos/grpeta/projetos/tempo/oper/GEF_v1.0.0-KF/2018111300/GEFfcstVEG_'//  &
(  151) !	 c_mype//"."//c_nh
(  152) 
(  153) 	 
(  154)          if (mod(mype,100).eq.0) print *,"c_fname1 = ", c_filename1
(  155) 	 open(unit=list, file=c_filename1, form='unformatted')
(  156)          
(  157) 	 read(list) dum1 
(  158)          tshltr(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  159) 	 






PGF90 (Version     12.8)          08/30/2020  00:27:46      page 6

(  160) 	 read(list) dum1 
(  161)          qshltr(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  162) 	 
(  163) 	 
(  164) 	 read(list) dum1 
(  165)          plm(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  166) 	 
(  167) 	 
(  168) 	 
(  169) 	 read(list) dum1 
(  170)          sfclhx(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  171) 	
(  172) 	 read(list) dum1 
(  173)          sfcshx(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  174) 	 
(  175) 	   read(list) dum1   !!!avg2017
(  176)            qwbs(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)  !!!avg2017
(  177) 	 
(  178) 	   read(list) dum1   !!!avg2017
(  179)            twbs(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)  !!!avg2017
(  180) 	 
(  181) 	   read(list) dum1   !!!avg2017
(  182)            grnflx(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)  !!!avg2017
(  183) 	 
(  184) 	 read(list) dum1 
(  185)          vegfrc(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  186) 	
(  187) 	   read(list) dum1   !!!avg2017
(  188)            IVGTYP(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)  !!!avg2017
(  189) 	 
(  190) 	   read(list) dum1   !!!avg2017
(  191)            ISLTYP(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)  !!!avg2017
(  192) 	
(  193) 	   read(list) dum1   !!!avg2017
(  194)            glat(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)  !!!avg2017
(  195) 	 
(  196) 	   read(list) dum1   !!!avg2017
(  197)            glon(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)  !!!avg2017
(  198) 	 
(  199) 	 read(list) dum1 
(  200)          sm(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  201) 	 
(  202) 	    read(list)dum2  !!!avg2017
(  203)             htm(imin:imaxH, jmin:jmaxH,n,:) = dum2(1:ilm,1:jlm,:)
(  204) 	 
(  205) 	    read(list)dum2  !!!avg2017
(  206)             vtm(imin:imaxH, jmin:jmaxH,n,:) = dum2(1:ilm,1:jlm,:)
(  207) 	
(  208) 	 read(list) dum1 
(  209)          sice(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  210) 	 
(  211) 	 read(list) dum1 
(  212)          z0(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  213) 	
(  214) 	 read(list)dum2
(  215)          omgalf(imin:imaxH, jmin:jmaxH,n,:) = dum2(1:ilm,1:jlm,:)
(  216) 	
(  217) 	 read(list) dum1 






PGF90 (Version     12.8)          08/30/2020  00:27:46      page 7

(  218)          albedo(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  219) 	 
(  220) 	 read(list) dum1 
(  221)          albase(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  222) 	
(  223) 	    read(list) dum1 !!!avg2017
(  224)             mxsnal(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  225) 	
(  226) 	    read(list) dum1  !!!avg2017
(  227)             czen(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  228) 	 
(  229) 	    read(list) dum1   !!!avg2017
(  230)             czmean(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  231) 	 
(  232) 	    read(list) dum1   !!!avg2017
(  233)             fis(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  234) 	
(  235) 	    read(list) dum1   !!!avg2017
(  236)             q10(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  237) 	
(  238) 	    read(list) dum1   !!!avg2017
(  239)             th10(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  240) 	
(  241) 	    read(list) dum1   !!!avg2017
(  242)             qz0(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  243) 	
(  244) 	    read(list) dum1   !!!avg2017
(  245)             thz0(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  246) 	
(  247) 	read(list) dum1 
(  248)         u10(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  249) 	
(  250) 	read(list) dum1 
(  251)         v10(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  252) 	
(  253)             read(list) dum1   !!!avg2017
(  254)             uz0(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  255) 	
(  256) 	    read(list) dum1   !!!avg2017
(  257)             vz0(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  258) 	
(  259) 	    read(list) dum1   !!!avg2017
(  260)             ustar(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  261) 	
(  262) 	    read(list) dum1   !!!avg2017
(  263)             ths(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm) 
(  264) 	 
(  265)             read(list)dum2  !!!avg2017
(  266)             q2(imin:imaxH, jmin:jmaxH,n,:) = dum2(1:ilm,1:jlm,:)
(  267) 	 
(  268) 	    read(list)dum2    !!!avg2017
(  269)             tcucn(imin:imaxH, jmin:jmaxH,n,:) = dum2(1:ilm,1:jlm,:)
(  270) 	 
(  271) 	    read(list)dum2   !!!avg2017
(  272)             train(imin:imaxH, jmin:jmaxH,n,:) = dum2(1:ilm,1:jlm,:)
(  273) 	 
(  274) 	    read(list)dum2    !!!avg2017
(  275)             div(imin:imaxH, jmin:jmaxH,n,:) = dum2(1:ilm,1:jlm,:)






PGF90 (Version     12.8)          08/30/2020  00:27:46      page 8

(  276) 	 
(  277) 	    read(list)dum2    !!!avg2017
(  278)             rtop(imin:imaxH, jmin:jmaxH,n,:) = dum2(1:ilm,1:jlm,:)
(  279) 
(  280)       close(list)
(  281) 
(  282) 
(  283) !++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
(  284) 
(  285) 
(  286) !         c_filename1='../../RUN/data/data_out/GEF_sw_rdtn'//   &
(  287) !Dragan 03/07/2019  
(  288)              c_filename1='GEF_sw_rdtn'//   &
(  289)                   c_mype//"."//c_nh
(  290) 
(  291) !             c_filename1='/scratchout/grupos/grpeta/projetos/tempo/oper/GEF_v1.0.0-KF/2018111300/GEF_sw_rdtn'//   &
(  292) !                  c_mype//"."//c_nh
(  293) 
(  294)          if (mod(mype,100).eq.0) print *,"c_fname1 = ", c_filename1
(  295)          open(unit=list, file=c_filename1, form='unformatted')
(  296)              read(list) dum1   !!!avg2017
(  297)              RSWIN(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  298) 	
(  299) 	     read(list) dum1    !!!avg2017
(  300)              RSWOUT(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  301) 	 
(  302) 	     read(list) dum1    !!!avg2017
(  303)              RSWTOA(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  304) 	 
(  305) 	 read(list) dum1 
(  306)          ASWIN(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  307) 	
(  308) 	 read(list) dum1 
(  309)          ASWOUT(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  310) 	
(  311)   	     read(list) dum1   !!!avg2017
(  312)              ASWTOA(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  313) 	 
(  314)              read(list) dum1   !!!avg2017
(  315)              rswnet(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  316) 	
(  317)              read(list)dum2   !!!avg2017
(  318)              RSWTT(imin:imaxH, jmin:jmaxH,n,:) = dum2(1:ilm,1:jlm,:)
(  319) 
(  320)          close(list)
(  321) !++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
(  322) 
(  323) 
(  324) !         c_filename1='../../RUN/data/data_out/GEF_lw_rdtn'//   &
(  325) !Dragan 03/07/2019 
(  326)              c_filename1='GEF_lw_rdtn'//   &
(  327)                    c_mype//"."//c_nh
(  328) 
(  329) 
(  330) !             c_filename1='/scratchout/grupos/grpeta/projetos/tempo/oper/GEF_v1.0.0-KF/2018111300/GEF_lw_rdtn'//   &
(  331) !                  c_mype//"."//c_nh
(  332) 
(  333) 






PGF90 (Version     12.8)          08/30/2020  00:27:46      page 9

(  334) 
(  335)          if (mod(mype,100).eq.0) print *,"c_fname1 = ", c_filename1
(  336)          open(unit=list, file=c_filename1, form='unformatted')
(  337)              read(list) dum1   !!!avg2017
(  338)              RLWIN(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  339) 	
(  340)        	     read(list) dum1   !!!avg2017
(  341)              RLWOUT(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  342) 	 
(  343)              read(list) dum1    !!!avg2017
(  344)              RLWTOA(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  345) 	 
(  346) 	 read(list) dum1 
(  347)          ALWIN(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  348) 	
(  349) 	 read(list) dum1 
(  350)          ALWOUT(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  351) 	
(  352) 	 read(list) dum1 
(  353)          ALWTOA(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  354) 	 
(  355)   	     read(list) dum1    !!!avg2017
(  356)              rlwnet(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  357) 	
(  358)              read(list)dum2    !!!avg2017
(  359)              RLWTT(imin:imaxH, jmin:jmaxH,n,:) = dum2(1:ilm,1:jlm,:)
(  360) 	 
(  361)              read(list) dum1     !!!avg2017
(  362)              epsr(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  363) 
(  364)              read(list) dum1    !!!avg2017
(  365)              radot(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  366) 	
(  367)              read(list) dum1     !!!avg2017
(  368)              sigt4(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  369) 
(  370)          close(list)
(  371) !++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
(  372) !        c_filename1='../../RUN/data/data_out/GEF_clouds'//   &
(  373) 
(  374) 
(  375) !Dragan 03/07/2019     
(  376)              c_filename1='GEF_clouds'//   &
(  377)                    c_mype//"."//c_nh
(  378) 
(  379) 
(  380) !             c_filename1='/scratchout/grupos/grpeta/projetos/tempo/oper/GEF_v1.0.0-KF/2018111300/GEF_clouds'//   &
(  381) !                  c_mype//"."//c_nh
(  382) 
(  383)          if (mod(mype,100).eq.0) print *,"c_fname1 = ", c_filename1
(  384)          open(unit=list, file=c_filename1, form='unformatted')
(  385)              read(list) dum1   !!!avg2017
(  386)              CUPPT(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  387) 	
(  388)              read(list) dum1   !!!avg2017
(  389)              cfracl(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  390) 	 
(  391)              read(list) dum1   !!!avg2017






PGF90 (Version     12.8)          08/30/2020  00:27:46      page 10

(  392)              cfracm(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  393) 	 
(  394)              read(list) dum1   !!!avg2017
(  395)              cfrach(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  396) 
(  397)              read(list) dum1   !!!avg2017
(  398)              acfrcv(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  399) 	 
(  400)              read(list) dum1    !!!avg2017
(  401)              acfrst(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  402) 
(  403)              read(list) dum1    !!!avg2017
(  404)              f_ice(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  405) 	 
(  406) 	     read(list) dum1     !!!avg2017
(  407)              f_rain(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  408) 	 
(  409) 	     read(list) dum1     !!!avg2017
(  410)              f_RimeF(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  411) 
(  412)              read(list) dum1     !!!avg2017
(  413)              cnvtop(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  414) 	
(  415)              read(list) dum1    !!!avg2017
(  416)              cnvbot(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  417) 	 
(  418)        read(list) dum1 
(  419)        htop(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  420) 	 
(  421)        read(list) dum1 
(  422)        hbot(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  423) 
(  424) 
(  425)          close(list)
(  426) !++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
(  427) !        c_filename1='../../RUN/data/data_out/GEF_precANDsoil'//   &
(  428) 
(  429) !Dragan 03/07/2019  
(  430)              c_filename1='GEF_precandsoil'//   &
(  431)                   c_mype//"."//c_nh
(  432) 
(  433) 
(  434) !             c_filename1='/scratchout/grupos/grpeta/projetos/tempo/oper/GEF_v1.0.0-KF/2018111300/GEF_precandsoil'//   &
(  435) !                  c_mype//"."//c_nh
(  436) 
(  437)          if (mod(mype,100).eq.0) print *,"c_fname1 = ", c_filename1
(  438)          open(unit=list, file=c_filename1, form='unformatted')
(  439)          
(  440) 	 read(list) dum1 
(  441)          acprec(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  442) 	
(  443) 	 read(list) dum1 
(  444)          cuprec(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  445) 	 
(  446) 	 read(list) dum1 
(  447)          aprec(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  448) 	 
(  449) 	 read(list) dum1 






PGF90 (Version     12.8)          08/30/2020  00:27:46      page 11

(  450)          acsnow(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  451) 
(  452)               read(list) dum1 !!!avg2017
(  453)               acsnom(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  454) 
(  455)          read(list) dum1 
(  456)          prec(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  457) 	 
(  458) !- - - - - - - - - - - 
(  459)      
(  460)          read(list)dum3
(  461)          stc(imin:imaxH, jmin:jmaxH,n,:) = dum3(1:ilm,1:jlm,:)
(  462) 
(  463) 
(  464)          read(list)dum3
(  465)          smc(imin:imaxH, jmin:jmaxH,n,:) = dum3(1:ilm,1:jlm,:)
(  466) 
(  467)          read(list) dum1 
(  468)          SMSTAV(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  469) 	 
(  470) 	 read(list) dum1 
(  471)          BGROFF(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  472) 
(  473)          read(list) dum1 
(  474)          SSROFF(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  475) 
(  476)               read(list) dum1   !!!avg2017
(  477)               cmc(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  478) 	 
(  479)         read(list) dum1 
(  480)         potevp (imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  481) 
(  482)         read(list) dum1 
(  483)         potflx(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  484)            	 
(  485)         read(list) dum1 
(  486)         sfcevp(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm) 
(  487) 	
(  488) 	read(list) dum1 
(  489)         subshx(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  490) 	
(  491) 	read(list) dum1 
(  492)         snopcx(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  493) 	
(  494) 	read(list) dum1 
(  495)         si(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  496) 	
(  497)    	      read(list) dum1   !!!avg2017
(  498)               sno(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  499) 	
(  500)    	      read(list) dum1    !!!avg2017
(  501)               smstot(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  502) 	
(  503)               read(list) dum1    !!!avg2017
(  504)               soiltb(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  505) 	
(  506)   	      read(list) dum1   !!!avg2017
(  507)               tg(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)






PGF90 (Version     12.8)          08/30/2020  00:27:46      page 12

(  508) 	
(  509)    	      read(list) dum1  !!!avg2017 
(  510)               sr(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  511) 	
(  512) 	      read(list) dum1   !!!avg2017
(  513)               akhs(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm)
(  514) 	
(  515) 	      read(list) dum1    !!!avg2017
(  516)               akms(imin:imaxH, jmin:jmaxH,n) = dum1(1:ilm,1:jlm) 
(  517) 
(  518)    close(list)
(  519) 
(  520) 
(  521) 
(  522) !***********************************************************************
(  523)             end do
(  524) 
(  525) !* !$omp end parallel do
(  526)   
(  527) !***********************************************************************
(  528) 
(  529) 
(  530) 
(  531) !-----------------------------------------------------------------------   
(  532)        
(  533) 
(  534) 	do j=1,jm
(  535) 	do i=1,im
(  536) !	   print *,i,j,q2(i,j,3,36)
(  537)         enddo
(  538)         enddo
(  539) 	
(  540)          open(1,file='sfceta.dat',form='unformatted')
(  541) 
(  542) !Dragan 03/07/1982        open(1,file='/scratchout/grupos/grpeta/projetos/tempo/oper/GEF_v1.0.0-KF/2018111300/sfceta.dat',form='unformatted')
(  543) 
(  544) 	read(1)fis,res,htm,vtm,lmh,lmv
(  545) 	close(1)
(  546) 
(  547) 
(  548) 	open(1,file='dynam.dat',form='unformatted')
(  549) !Dragan 03/07/1982        open(1,file='/scratchout/grupos/grpeta/projetos/tempo/oper/GEF_v1.0.0-KF/2018111300/dynam.dat',form='unformatted')
(  550) 	read(1)fadv, fadv2,fadt, rd,  f4d,f4q2, ef4t, fkin, &
(  551)                     deta, rdeta, aeta, eta, dfl, daeta
(  552) 	close(1)
(  553) 
(  554) !      print *,fadv,fadt,rd,f4d
(  555)       do l=1,lp1
(  556) !        print *,l,deta(l),dfl(l)
(  557)       enddo
(  558) !      stop
(  559) 
(  560)       do n=1,nm
(  561)       DO J=1,jm
(  562)       DO I=1,IM
(  563)         PDSL(I,J,n)    =RES(I,J,n)*PD(I,J,n)
(  564)         PBI            =PD(I,J,n)+PT
(  565)         PINT(I,J,n,LP1)  =PBI






PGF90 (Version     12.8)          08/30/2020  00:27:46      page 13

(  566)         ALPINT(I,J,n,LP1)=ALOG(PBI)
(  567) 	if(i.eq.56.and.j.eq.65.and.n.eq.6)then
(  568) !	  print *,i,j,n,pd(i,j,n),pdsl(i,j,n),res(i,j,n),pint(i,j,n,lp1)
(  569)         endif
(  570)       ENDDO
(  571)       ENDDO
(  572)       ENDDO
(  573) 
(  574) !
(  575) !     COMPUTE PRESSURE VALUES ABOVE THE SURFACE.
(  576) !
(  577)       DO L=LM,1,-1
(  578)       do n=1,nm
(  579)       DO J=1,jm
(  580)       DO I=1,IM
(  581)           PBI          =PDSL(I,J,n)*ETA(L)+PT
(  582)           PINT(I,J,n,L)  =PBI
(  583)           ALPINT(I,J,n,L)=ALOG(PBI)
(  584) 	if(i.eq.1.and.j.eq.21.and.n.eq.1)then
(  585) !	  print *,i,j,n,l,pbi,pdsl(i,j,n),res(i,j,n),eta(l)
(  586)         endif
(  587)       ENDDO
(  588)       ENDDO
(  589)       ENDDO
(  590)       ENDDO
(  591) 
(  592)       do n=1,nm
(  593)       DO J=1,JM-1
(  594)       DO I=1,IM-1
(  595)         PDVP1(I,J,n)=0.25*(PDSL(I,J,n)+PDSL(I+1,J,n)  &
(  596)                        +PDSL(I,J+1,n)+PDSL(I+1,J+1,n))
(  597)       ENDDO
(  598)       ENDDO
(  599)       ENDDO
(  600) 
(  601) !C
(  602) !C       COMPUTE ALPINT AND PINT ONLY FOR THOSE POINTS THAT WE OWN
(  603) !C
(  604) !C       IF ( J .GE. JSTA .AND. J .LE. JEND ) THEN
(  605) !C
(  606)       do n=1,nm
(  607)       do j=1,jm
(  608)       do i=1,im
(  609)         LMAP1=LMH(I,J,n)+1
(  610)         DO L=LMAP1,LM
(  611)           ALPINT(I,J,n,L+1)=(DFL(L)-DFL(L+1))/(R*T(I,J,n,L))  &
(  612)                         +ALPINT(I,J,n,L)
(  613)           PINT(I,J,n,L+1)=EXP(ALPINT(I,J,n,L+1))
(  614)         ENDDO
(  615)       enddo
(  616)       enddo
(  617)       enddo
(  618) 
(  619)       do l=1,lm
(  620) !        print *,l,t(30,101,3,l),t(30,81,3,l),q(30,101,3,l)
(  621)       enddo
(  622) 
(  623)       end subroutine initpost



