


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

Switches: -noasm -nodclchk -nodebug -nodlines -noline -list
          -idir ../include
          -inform warn -opt 1 -nosave -object -noonetrip
          -depchk on -nostandard     
          -nosymbol -noupcase    

Filename: surfce.f90

(    1)         subroutine surfce
(    2) 
(    3)        USE mod_masks
(    4) 	USE mod_pvrbls
(    5) 	USE mod_vrbls
(    6) 	implicit none
(    7) 	include 'param_o.h'
../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
(    8) 	include 'params'
../include/params
(    1)*        real,parameter::p1000=1000.e2,CAPA=0.28589641E0
(    9) 	include 'const.h'
(   10) 	
../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)*      
(    6)*      real,parameter :: dt=40               ! length of each time step
(    7)*      logical,parameter:: sigma=.false.
(    8)*!GSM      integer,parameter::outnum=40            ! number of outputs






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

(    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
(   64)*
(   65)*      integer,parameter::sstc=1         ! 1 is NCEP sst data
(   66)*                                             ! 2 is TMI sst data






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

(   67)*
(   68)*    
(   11) 	integer::i,j,n
(   12)         real,dimension(0:im+1,0:jm+1,nm)::tsfc
(   13) 	real::psfc
(   14) 	
(   15)         do n=1,nm
(   16) 	do j=1,jm
(   17) 	do i=1,im
(   18) 	    
(   19) 	    psfc=pt+pd(i,j,n)
(   20)             TSFC(I,J,n) =THS(I,J,n)*(PSFC/P1000)**CAPA
(   21)        
(   22)         enddo
(   23)         enddo
(   24)         enddo
(   25) !+++++++++++++++++++++++
(   26)         open(1,file='tmpsfc.dat',form='unformatted')
(   27) 	write(1)tsfc
(   28) !jnt      
(   29) !jnt      write(1)tshltr
(   30) !jnt      write(1)qshltr
(   31) !jnt      write(1)plm
(   32) !jnt
(   33) !jnt
(   34) !jnt	write(1)sfclhx   !!!!!!!!!!!!!!!!DRAGAN
(   35) !jnt	write(1)sfcshx
(   36) !jnt    write(1)qwbs
(   37) !jnt    write(1)twbs        
(   38) !jnt	
(   39) !jnt	write(1)grnflx
(   40) !jnt	write(1)vegfrc
(   41) !jnt        write(1)IVGTYP
(   42) !jnt        write(1)ISLTYP
(   43) !jnt        write(1)glat
(   44) !jnt        write(1)glon
(   45) !jnt    write(1)sm	
(   46) !jnt!	write(1)htm 
(   47) !jnt!	write(1)vtm
(   48) !jnt	write(1)sice
(   49) !jnt	write(1)z0
(   50) !jnt        write(1)omgalf
(   51) !jnt	write(1)albedo
(   52) !jnt       
(   53) !jnt        write(1)albase
(   54) !jnt        write(1)mxsnal
(   55) !jnt         
(   56) !jnt        write(1)czen
(   57) !jnt        write(1)czmean	
(   58) !jnt   write(1)fis
(   59) !jnt   write(1)q10    
(   60) !jnt   write(1)th10    
(   61) !jnt   write(1)qz0    
(   62) !jnt   write(1)thz0   
(   63) !jnt   
(   64) !jnt   write(1)u10
(   65) !jnt   write(1)v10
(   66) !jnt   write(1)uz0






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

(   67) !jnt   write(1)vz0
(   68) !jnt   write(1)ustar
(   69) !jnt   
(   70) !jnt   write(1)ths	
(   71) !jnt    
(   72) !jnt   write(1)q2    
(   73) !jnt   write(1)tcucn    
(   74) !jnt   write(1)train    
(   75) !jnt   write(1)div  
(   76) !jnt   write(1)rtop 
(   77) !jnt      close(1)
(   78) !jnt!++++++++++++++++++++	
(   79) !jnt      open(2,file='./ETAPOST/sw_rdtn.dat',form='unformatted')
(   80) !jnt	write(2)RSWIN
(   81) !jnt	write(2)RSWOUT
(   82) !jnt	write(2)RSWTOA   !!!!!!!!!!!!!!!!DRAGAN
(   83) !jnt	write(2)ASWIN
(   84) !jnt	write(2)ASWOUT
(   85) !jnt	
(   86) !jnt	write(2)ASWTOA
(   87) !jnt	write(2)rswnet
(   88) !jnt	write(2)RSWTT
(   89) !jnt	
(   90) !jnt      close(2)
(   91) !jnt	
(   92) !jnt!++++++++++++++++++++++
(   93) !jnt      open(3,file='./ETAPOST/lw_rdtn.dat',form='unformatted')
(   94) !jnt	write(3)RLWIN
(   95) !jnt	write(3)RLWOUT
(   96) !jnt	write(3)RLWTOA   !!!!!!!!!!!!!!!!DRAGAN
(   97) !jnt	write(3)ALWIN
(   98) !jnt	write(3)ALWOUT
(   99) !jnt	
(  100) !jnt	write(3)ALWTOA
(  101) !jnt	write(3)rlwnet
(  102) !jnt	write(3)RLWTT
(  103) !jnt        write(3)epsr	
(  104) !jnt      write(3)radot   
(  105) !jnt      write(3)sigt4 
(  106) !jnt     
(  107) !jnt      close(3)
(  108) !jnt
(  109) !jnt!+++++++++++++++++++++++	
(  110) !jnt      open(4,file='./ETAPOST/clouds.dat',form='unformatted')
(  111) !jnt	write(4)CUPPT
(  112) !jnt	write(4)cfracl
(  113) !jnt	write(4)cfracm   !!!!!!!!!!!!!!!!DRAGAN
(  114) !jnt	write(4)cfrach
(  115) !jnt        write(4)acfrcv
(  116) !jnt        write(4)acfrst
(  117) !jnt!    write(4)f_ice
(  118) !jnt!    write(4)f_rain
(  119) !jnt!    write(4)f_RimeF
(  120) !jnt    
(  121) !jnt        write(4)cnvtop
(  122) !jnt        write(4)cnvbot
(  123) !jnt!        write(4)htop
(  124) !jnt!        write(4)hbot






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

(  125) !jnt      close(4)
(  126) !jnt!+++++++++++++++++++++++	
(  127) !jnt      open(5,file='./ETAPOST/precANDsoil.dat',form='unformatted')
(  128) !jnt	write(5)acprec
(  129) !jnt	write(5)cuprec
(  130) !jnt	write(5)aprec   !!!!!!!!!!!!!!!!DRAGAN
(  131) !jnt	write(5)acsnow
(  132) !jnt	
(  133) !jnt        write(5)acsnom	
(  134) !jnt	write(5)prec
(  135) !jnt	
(  136) !jnt	write(5)stc(:,:,:,1)
(  137) !jnt	write(5)stc(:,:,:,4)
(  138) !jnt	write(5)smc(:,:,:,1)
(  139) !jnt	write(5)smc(:,:,:,4)
(  140) !jnt	
(  141) !jnt	write(5)SMSTAV
(  142) !jnt	write(5)BGROFF
(  143) !jnt	write(5)SSROFF
(  144) !jnt        write(5)cmc
(  145) !jnt        write(5)potevp
(  146) !jnt        write(5)potflx
(  147) !jnt      write(5)sfcevp
(  148) !jnt      write(5)subshx
(  149) !jnt      write(5)snopcx
(  150) !jnt    
(  151) !jnt      write(5)si
(  152) !jnt      write(5)sno
(  153) !jnt     	 
(  154) !jnt      write(5)smstot
(  155) !jnt      write(5)soiltb  !!!!   
(  156) !jnt!     write(5)tg      !!!!
(  157) !jnt      write(5)sr 
(  158) !jnt      write(5)akhs
(  159) !jnt      write(5)akms
(  160) !jnt     	
(  161) !jnt	
(  162) !jnt		
(  163) !jnt      close(5)
(  164) !++++++++++++++++++++++
(  165)        
(  166) 
(  167)       end subroutine surfce
