UPP  V11.0.0
 All Data Structures Files Functions Pages
CTLBLK.f
1  module ctlblk_mod
2 !-----------------------------------------------------------------------
3 ! module: CTLBLK
4 !
5 ! ABSTRACT:
6 ! this module is replacing the CTLBLK.comm, all the comm block is
7 ! removed.
8 ! Revision Log:
9 ! 2011-02 Jun Wang - ADD variables for grib2
10 ! 2011-12-14 SARAH LU - ADD AER FILENAME
11 ! 2011-12-23 SARAH LU - ADD NBIN FOR DU, SS, OC, BC, SU
12 ! 2021-09-30 JESSE MENG- 2D DECOMPOSITION
13 !-----------------------------------------------------------------------
14 !
15  implicit none
16 !
17  type field_info
18  integer ifld
19  integer lvl
20  integer lvl1,lvl2
21  integer ntrange
22  integer tinvstat
23  end type
24  integer, parameter :: komax=70
25  integer, parameter :: lsmdef=46 ! default number of p levels
26  integer,PARAMETER :: nfd=18,nbnd=6
27  REAL, PARAMETER :: qmin = 1.e-15
28 !
29  integer :: novegtype ! max number of veg type
30 !
31  character(len=256) :: filename,filenameflux,filenamed3d,filenameaer, &
32  filenameflat
33  character(len=19) :: datestr
34  character(len=4) :: modelname, submodelname
35  character(len=8) :: fullmodelname
36  character(len=20) :: ioform
37  character(len=4) :: vtimeunits
38 !
39  character(5) :: grib
40  type(field_info),allocatable :: fld_info(:)
41  integer :: cfld,ntlfld,npset
42  real*8 :: gdsdegr
43  real,allocatable :: datapd(:,:,:)
44 !
45  logical :: gocart_on, d3d_on, hyb_sigp, rdaod, aqfcmaq_on
46  logical :: sigma,run,first,restrt
47  logical :: global
48  logical :: smflag
49  integer :: idat(5),ihrst, nfcst,nbc,list,iout,ifhr,ntstm, &
50  nddamp,nprec,idtad,nboco,nshde,ncp,imdlty,nphs, &
51  nrads,nradl,imin,ifmin,datahandle,imp_physics, &
52  icu_physics,isf_surface_physics,isec,icount_calmict, &
53  ivegsrc
54  real :: dt,sdat(3),avrain,avcnvc,dtq2,pt,pdtop, &
55  spl(komax),alsl(komax),prec_acc_dt,pt_tbl,prec_acc_dt1,spval
56 ! real :: SPVAL=9.9e10 ! Moorthi
57 !
58  integer :: num_procs,me,jsta,jend,ista,iend, &
59  jsta_m,jend_m, jsta_m2,jend_m2, &
60  ista_m,iend_m,ista_m2,iend_m2, &
61  iup,idn,icnt(0:1023),idsp(0:1023), icnt2(0:1023),idsp2(0:1023), &
62  jsta_2l, jend_2u,jvend_2u, &
63  ista_2l, iend_2u,ivend_2u, &
64  num_servers, mpi_comm_inter, &
65  mpi_comm_comp, im,jm,lm,nsoil,lp1,lm1,im_jm, &
66  ileft,iright, &
67  ileftb,irightb , &
68  ibsize,ibsum, &
69  lsm,lsmp1 !comm mpi
70  integer, allocatable :: icoords(:,:),ibcoords(:,:)
71  real , allocatable :: rcoords(:,:),rbcoords(:,:)
72  real, allocatable :: bufs(:),buff(:)
73  integer , allocatable :: isxa(:),iexa(:),jsxa(:),jexa(:)
74  integer numx
75  integer, allocatable :: ibufs(:)
76  real, allocatable :: rbufs(:)
77 !
78  real :: ardsw, ardlw, asrfc, tsrfc,trdlw,trdsw,tclod,theat, &
79  tprec,tmaxmin,td3d !comm rad
80 !
81  real pthresh ! moved from params because it is defined differently for NAM
82 !
83  real(kind=8) :: etafld2_tim=0.,eta2p_tim=0.,surfce2_tim=0., &
84  cldrad_tim=0.,miscln_tim=0.,fixed_tim=0., &
85  mdl2sigma_tim=0.,readxml_tim=0.,mdl2agl_tim=0., &
86  mdl2std_tim=0.,mdl2thandpv_tim=0.,calrad_wcloud_tim=0.!comm tim_info
87 !
88  real(kind=8) :: time_output=0., time_e2out=0. !comm jjt
89 !
90  real :: spldef(lsmdef) = &
91  (/200.,500.,700.,1000.,2000.,3000. &
92  ,5000.,7000.,7500.,10000.,12500.,15000.,17500.,20000.,22500. &
93  ,25000.,27500.,30000.,32500.,35000.,37500.,40000.,42500.,45000. &
94  ,47500.,50000.,52500.,55000.,57500.,60000.,62500.,65000. &
95  ,67500.,70000.,72500.,75000.,77500.,80000.,82500.,85000. &
96  ,87500.,90000.,92500.,95000.,97500.,100000./)
97 !
98  REAL htfd(nfd),petabnd(nbnd),sigbnd(nbnd)
99 
100 ! Add GOCART aerosol specification
101  integer, parameter :: nbin_du = 5 ! dust
102  integer, parameter :: nbin_ss = 5 ! sea salt
103  integer, parameter :: nbin_oc = 2 ! organic carbon
104  integer, parameter :: nbin_bc = 2 ! black carbon
105  integer, parameter :: nbin_su = 1 ! sulfate
106  integer, parameter :: nbin_sm = 1 ! smoke
107 !
108 ! SET FD LEVEL HEIGHTS IN GEOPOTENTAL METERS.
109  DATA htfd / 20.e0,30.e0,40.e0,50.e0,80.e0,100.e0,305.e0,457.e0,610.e0, &
110  914.e0,1524.e0,1829.e0,2134.e0,2743.e0,3658.e0,4572.e0, &
111  6000.e0,7010.e0/
112 !
113 ! SET MIDPOINT "SIGMA" VALUES FOR ETA BOUNDARY LAYERS.
114  DATA sigbnd / 0.985,0.955,0.925,0.895,0.865,0.835 /
115  DATA petabnd / 15.,45.,75.,105.,135.,165./
116 !
117 !-----------------------------------------------------------------------
118  end module ctlblk_mod