! ! !################################################################## !################################################################## !###### ###### !###### GLOBCST.INC ###### !###### ###### !###### Developed by ###### !###### Center for Analysis and Prediction of Storms ###### !###### University of Oklahoma ###### !###### ###### !################################################################## !################################################################## ! ! !----------------------------------------------------------------------- ! ! PURPOSE: ! ! Include file 'globcst.inc' for ARPS ! ! This file contains most of the model run control parameters ! and parameters used by various physics packages. ! ! These parameters are allocated in named common blocks and are ! accessible to subroutines that include this file. ! !----------------------------------------------------------------------- ! ! AUTHOR: Ming Xue ! 10/01/1991 ! ! MODIFICATION HISTORY: ! ! 5/03/1992 (M. Xue and K. Droegemeier) ! Major restructuring. Some parameter names changed. ! ! 7/21/1992 (M. Xue) ! Added parameters for energy statistics calculations, initial ! random perturbation option, model run controls and additional ! history dump format. ! ! 3/10/1993 (M. Xue) ! Added parameters for advection options, and for terrain ! specifications. ! ! 2/12/94 (Y. Liu) ! Added parameters for the surface energy budget model. ! ! 9/10/94 (Weygandt & Y. Lu) ! Cleaned up documentation. ! ! 1/28/95 (G. Bassett) ! Added new parameter, buoyopt ! ! 02/07/1995 (Yuhe Liu) ! Deleted the table data array, veg(14) and added an input ! parameter, veg0. ! ! 2/2/96 (Donghai Wang & yuhe Liu) ! Added parameters for the map projection factor. ! ! 03/26/96 (Yuhe Liu) ! Added parameters for radiation computing. ! ! 4/2/96 (Donghai Wang, X. Song and M. Xue) ! Added parameters for the vertically implicit mixing. ! ! 5/7/96 (Donghai Wang and M. Xue) ! Added a new option for Rayleigh damping. ! ! 10/21/97 (Donghai Wang) ! Added two new options, buoy2nd and rhofctopt. ! ! 03/13/2002 (Eric Kemp) ! Added bmjcum_acct to time accounting flags. ! ! 02/11/02 (J. Brotzge, D. Weber) ! Added an option for a choice of soil schemes. ! ! 03/19/02 (D. Weber, M. Xue & Xin Jin) ! Added three new options, impfallopt, fallvalpha, fallvbeta ! ! 08/27/02 (D. Weber) ! Added new option fallopt for using various fall velocity schemes ! and update coefficients. ! !----------------------------------------------------------------------- ! INTEGER :: mgrdmax ! Maximum of mgrid PARAMETER ( mgrdmax = 100 ) INTEGER :: mgrid ! Grid identifier INTEGER :: nestgrd ! Nested grid option ! = 0, no grid nesting ! = 1, grid nesting COMMON /arpsc001/ mgrid, nestgrd ! !----------------------------------------------------------------------- ! ! runname: A character string containing the pertinent information ! for this run. The initial characters before a blank space, a comma ! or otherwise the first 6 characters will be used to construct ! history data and restart data dump file names. This string is ! written into the output data file. ! !----------------------------------------------------------------------- ! CHARACTER (LEN=80 ) :: runname ! Name of this run INTEGER :: lfnkey ! Length of string (no. of characters) ! to be used for naming files (file name ! keys). INTEGER :: nocmnt ! Number of comment lines CHARACTER (LEN=80 ) :: cmnt(50) ! String of comments on this model run COMMON /arpsc010/ runname, cmnt COMMON /arpsc011/ lfnkey, nocmnt ! !----------------------------------------------------------------------- ! ! Model initialization control parameters. ! !----------------------------------------------------------------------- ! INTEGER :: runmod ! Model configuration option. ! = 1, model run in 3-D mode ! = 2, model run in 2-D mode (x-z plane) ! = 3, model run in 2-D mode (y-z plane) ! = 4, model run in 1-D mode (z direction) COMMON /arpsc020/ runmod ! !----------------------------------------------------------------------- ! ! Model initialization control parameters. ! !----------------------------------------------------------------------- ! INTEGER :: initopt ! Model initialization option. ! = 1, self initialization ! (e.g. analytical field). ! = 2, restart run, initialize from a ! restart file. ! = 3, initialize from an external data ! set. INTEGER :: timeopt ! Option to check the consistence between ! the user specified time and data time ! = 1, check, but continue with the ! specified time (see initime and tstart) ! = 2, check, but continue with data time ! else, check and stop for inconsistence INTEGER :: inibasopt ! Initialization option for base state ! fields. ! = 1, Initialize the base state using a ! single sounding. ! = 2, isentropic atmosphere ! = 3, isothermal atmosphere ! = 4, atmosphere with a constant static ! stability. ! = 5, an analytical thermodynamic ! sounding profile after Weisman and ! Klemp (1982, WMR) ! For options rather than 1, additional ! parameters are hardwired inside ! subroutine INIBASE. INTEGER :: viniopt ! Initialization option for base state ! velocity when inibasopt.ne.1. ! = 1, ubar= ubar0, vbar= vbar0 ! = 2, ubar0 and vbar0 are specified by user ! inside code. By default, ubar0=vbar0=0.0. INTEGER :: soilinitopt ! Initialization option for soil variables ! = 1, integrate soil model using initial ! initial atmospheric forcing INTEGER :: tsfcopt ! Initialization option for skin temperature ! = 0, no adjustment ! = 1, adjustment by offset to air temp (k=2) ! = 2, adjustment by iterating energy budget INTEGER :: pt0opt ! Initial potential temperature ! perturbation ! option for initopt=1. ! = 1, initial perturbation is ! bubble-shaped, ! = 2, initial perturbation has a random ! distribution. ! = 3, random initial perturbation symmetric ! about x and y axis. ! = 4, initial perturbation as given in ! Skamarock and Klemp (1994) INTEGER :: inifmt ! Format option for the history dump type ! restart file ! See hdmpfmt. CHARACTER (LEN=256) :: inifile ! Filename of t-dependent variable ! initialization for initopt=3. CHARACTER (LEN=256) :: inigbf ! Filename of base&grid variable ! initialization for initopt=3. INTEGER :: inifunt ! Fortran I/O unit number for initial ! data input. INTEGER :: buoyopt ! Flag for turning off buoyancy terms ! (buoyopt = 0 dissables buoyancy). INTEGER :: buoy2nd ! Option for the second order terms in ! the linerized buoyancy terms ! = 1, including the 2nd-order terms ! = 0, only the 1st-order terms INTEGER :: rhofctopt ! Option for removing the density approximation ! in the pressure gradient force(PGF) terms ! = 1, removing the approximation ! = 0, using the approximation INTEGER :: bsnesq ! Bousinessq approximation? ! = 1, yes ! = 0, no COMMON /arpsc030/ initopt,inibasopt,viniopt,pt0opt,inifunt, & inifmt,soilinitopt,timeopt,tsfcopt COMMON /arpsc031/ inifile,inigbf,buoyopt,buoy2nd,rhofctopt, & bsnesq REAL :: soiltintv ! Time interval in soil model initialization ! integration REAL :: ptpert0 ! The magnitude of initial potential ! temperature perturbation (K) REAL :: pt0radx ! The radius of bubble in x-direction. REAL :: pt0rady ! The radius of bubble in y-direction. REAL :: pt0radz ! The radius of bubble in z-direction. REAL :: pt0ctrx ! The x coordinate of the bubble center. REAL :: pt0ctry ! The y coordinate of the bubble center. REAL :: pt0ctrz ! The z coordinate of the bubble center. REAL :: ubar0 ! User specified base state wind in x-dir. REAL :: vbar0 ! User specified base state wind in y-dir. COMMON /arpsc040/ ptpert0, pt0radx, pt0rady, pt0radz, & pt0ctrx, pt0ctry, pt0ctrz, ubar0,vbar0, & soiltintv ! !----------------------------------------------------------------------- ! ! Coordinate transforamtion and terrain option parameters: ! !----------------------------------------------------------------------- ! INTEGER :: crdtrns ! Coordinate transformation option ! = 0, no coordinate transforamtion at all ! = 1, with coordinate transforamtion. INTEGER :: ternopt ! Model terrain option. ! = 0, no terrain, the ground is flat; ! = 1, bell-shaped mountain; ! = 2, terrain data read from terrain data ! base (not implemented yet) INTEGER :: mntopt ! Option for choosing idealized mountain type. REAL :: hmount ! The mountain height (m) REAL :: mntwidx ! The half-width of bell-shaped mountain in x-dir. REAL :: mntwidy ! The half-width of bell-shaped mountain in y-dir. REAL :: mntctrx ! The x coordinate of the bell-shaped ! mountain center. REAL :: mntctry ! The y coordinate of the bell-shaped ! mountain center. CHARACTER (LEN=256 ) :: terndta ! Name of the terrain data file COMMON /arpsc045/ crdtrns, ternopt, mntopt COMMON /arpsc046/ hmount, mntwidx, mntwidy, mntctrx, mntctry COMMON /arpsc047/ terndta ! !----------------------------------------------------------------------- ! ! Environmental sounding file name and Fortran I/O input unit. ! !----------------------------------------------------------------------- ! CHARACTER (LEN=256 ) :: sndfile ! Name of the input sounding file. INTEGER :: sfunit ! Fortran I/O unit used by sounding input. COMMON /arpsc050/ sndfile COMMON /arpsc051/ sfunit ! !----------------------------------------------------------------------- ! ! Options for solution used in w equation ! ! Acoustic/sound wave speed definition used in the pressure ! equation. ! !----------------------------------------------------------------------- ! INTEGER :: vimplct ! Vertical implicit option for ! the w and p equations. ! = 1, implicit solution ! = 0, explicit solution INTEGER :: ptsmlstp ! Option to solve potential temperature ! eqaution. ! = 0, solve potential temperature eq. ! outside small time steps ! = 1, solve potential temperature eq. ! within small time steps INTEGER :: peqopt ! Option parameter of p-equation formulations ! = 1 or 2 (1 is as in 4.0 User's guide). INTEGER :: csopt ! Sound wave speed option used in the ! pressure equation. ! = 1, csound = cp/cv * rd * T ! = 2, csound = cp/cv * rd * T * csfactr ! = 3, csound = specfied constant. REAL :: csfactr ! A multiplication factor for the sound speed. REAL :: csound ! User specified constant sound speed. COMMON /arpsc080/ vimplct, ptsmlstp,csopt, csfactr, csound,peqopt ! !----------------------------------------------------------------------- ! ! Model integration time step and integration control parameters. ! !----------------------------------------------------------------------- ! REAL :: dtbig ! Model integration time step. REAL :: dtsml ! Small time step for the acoustic wave ! integrations. REAL :: tstart ! Time when the model is initialized. REAL :: tstop ! Time when the integration is to be stoped. REAL :: curtim ! Current model time. REAL :: tacoef ! Time average weighting coefficient used ! in the vertically implicit solver. INTEGER :: nstep ! Current number of time steps taken. INTEGER :: nsteps ! The total number of time steps in ! this run. INTEGER :: nsmstp ! The number of small acoustic wave time ! integration steps per large time step. COMMON /arpsc090/ dtbig, tstart, tstop, curtim, dtsml, tacoef COMMON /arpsc100/ nstep, nsteps, nsmstp ! !----------------------------------------------------------------------- ! ! Parameters of the reference calendar day and real time ! !----------------------------------------------------------------------- ! INTEGER :: year ! Year of the reference calendar day INTEGER :: month ! Month of the reference calendar day INTEGER :: day ! Day of the reference calendar day INTEGER :: hour ! Hours of the reference real time INTEGER :: minute ! Minutes of the reference real time INTEGER :: second ! Seconds of the reference real time INTEGER :: jday ! Julian day starting from Jan. 1 of the ! year COMMON /arpsc101/ year, month, day, hour, minute, second, jday ! !----------------------------------------------------------------------- ! ! Robert-Asselin time filter coefficient for leapfrog time ! integration: ! !----------------------------------------------------------------------- ! REAL :: flteps ! Robert-Asselin time filter coefficient ! (non-dimensional). COMMON /arpsc110/ flteps ! !----------------------------------------------------------------------- ! ! Option parameters for momentum and scalar advections. ! !----------------------------------------------------------------------- ! INTEGER :: madvopt ! Option parameter for momentum advection ! = 1, 2nd order centerd; ! = 2, 4th order centerd; ! = 3, ... INTEGER :: sadvopt ! Option parameter for scalar advection ! = 1, 2nd order centerd; ! = 2, 4th order centerd; ! = 3, Flux-corrected transport (FCT) INTEGER :: fctorderopt ! Option of the spactial order of accuracy of ! the FCT advection (sadvopt=4) and MPDCD ! advection schemes (sadvopt=5) ! = 1 2nd order ! = 2 4th order INTEGER :: fctadvptprt ! Option for FCT advection for potential temperature. ! Used only when sadvopt=4. ! = 0, FCT scheme is applied to ptbar+ptprt. ! = 1, FCT scheme is applied to ptprt only. ! = 2, FCT scheme is applied to ! ptbar+ptprt-min(ptbar+ptprt). COMMON /arpsc111/ madvopt, sadvopt, fctorderopt, fctadvptprt ! !----------------------------------------------------------------------- ! ! Subgrid-scale turbulent mixing parameters. ! !----------------------------------------------------------------------- ! INTEGER :: tmixopt ! Control parameter for turbulent mixing ! options. ! = 0, zero turbulent mixing ! = 1, constant mixing coefficient, ! km = tmixcst ! = 2, Smagorinsky mixing coefficient. ! = 3, Smagorinsky mixing coefficient ! plus a constant coeffcient, tmixcst INTEGER :: trbisotp ! Option for isotropic subgrid scale ! turbulence. ! = 0, the turbulence is assumed to be ! anisotropic; ! = 1, the turbulence is assumed to be ! isotropic. INTEGER :: tkeopt ! Option for 1.5 order TKE formulation ! used by tmixopt=4 ! = 1, after Wyngaard; ! = 2, after Deardroff; ! = 3, after Sun and Chang. INTEGER :: trbvimp ! Option parameter for the vertically ! implicit mixing ! = 0, vertical explicit ! = 1, vertical implicit INTEGER :: tmixvert ! Option parameter for the computing ! only the vertical turb. mixing terms ! = 0, all terms computed ! = 1, only vertical terms computed. REAL :: alfcoef ! Time average weighting coefficient used ! in the vertically implicit mixing REAL :: prantl ! Turbulent prantl number for Smagorinsky turb. REAL :: tmixcst ! Value of the constant mixing coefficient REAL :: kmlimit ! Constant used to set a limit of km ! COMMON /arpsc120/ tmixopt,trbisotp,tkeopt,trbvimp,tmixvert COMMON /arpsc121/ prantl, tmixcst, kmlimit,alfcoef ! !----------------------------------------------------------------------- ! ! Computational mixing parameters. ! !----------------------------------------------------------------------- ! INTEGER :: cmix2nd ! 2nd order computational mixing option. ! = 0, mixing off ! = 1, mixing on REAL :: cfcm2h ! 2nd order horizontal computational mixing ! coefficient caled by horizontal grid ! spacing (1/s). REAL :: cfcm2v ! 2nd order vertical computational mixing ! coefficient scaled by vertical grid ! spacing (1/s). REAL :: cfcmh2 ! Dimensional 2nd order horizontal ! computational mixing coefficient (m**2/s) REAL :: cfcmv2 ! Dimensional 2nd order vertical ! computational mixing coefficient (m**2/s) INTEGER :: cmix4th ! 4th order computational mixing option ! = 0, mixing off ! = 1, mixing on REAL :: cfcm4h ! 4th order horizontal computational mixing ! coefficient scaled by horizontal grid ! spacing (1/s). REAL :: cfcm4v ! 4th order vertical computational mixing ! coefficient scaled by vertical grid ! spacing (1/s). REAL :: cfcmh4 ! Dimensional 4th order horizontal ! computational mixing coefficient (m**2/s) REAL :: cfcmv4 ! Dimensional 4th order vertical ! computational mixing coefficient (m**2/s) REAL :: scmixfctr ! Reduction factor of the computational ! mixing coefficients for scalars relative to ! those of velocities. INTEGER :: cmix_opt, scmix_opt ! options for monotonic computational ! mixing. COMMON /arpsc130/ cmix2nd, cmix4th COMMON /arpsc131/ cfcm2h, cfcm2v, cfcm4h, cfcm4v COMMON /arpsc132/ cfcmh2, cfcmv2, cfcmh4, cfcmv4 COMMON /arpsc133/ scmixfctr,cmix_opt, scmix_opt ! !----------------------------------------------------------------------- ! ! Upper level Rayleigh damping parameters. ! !----------------------------------------------------------------------- ! INTEGER :: raydmp ! Rayleigh damping option. ! = 0, damping off. ! = 1, damping the difference between the ! total and base state fields. ! = 2, damping the difference between the ! total and external fields defined ! in the EXBC file. REAL :: zbrdmp ! Height of the bottom of Rayleigh damping ! (sponge) layer (m). REAL :: cfrdmp ! Rayleigh damping coefficient (1/second). INTEGER :: rayklow ! Lowest level with Rayleigh damping COMMON /arpsc140/ zbrdmp, cfrdmp COMMON /arpsc141/ raydmp, rayklow ! !----------------------------------------------------------------------- ! ! Acoustic wave divergence damping parameters. ! !----------------------------------------------------------------------- ! INTEGER :: divdmp ! Acoustic wave divergence damping option. ! = 0, divergence damping off ! = 1, divergence damping on REAL :: cdvdmph ! Divergence damping coefficient (m**2/s) ! in horizontal REAL :: cdvdmpv ! Divergence damping coefficient (m**2/s) ! in vertical REAL :: divdmpndh ! Non-dimensional divergence damping ! coefficient in horizontal REAL :: divdmpndv ! Non-dimensional divergence damping ! coefficient in vertical COMMON /arpsc150/ divdmp COMMON /arpsc151/ cdvdmph,cdvdmpv, divdmpndh,divdmpndv ! !----------------------------------------------------------------------- ! ! Moisture/ice microphysics parameters. ! !----------------------------------------------------------------------- ! INTEGER :: mphyopt ! Microphysics option. ! = 0, no microphysics. ! = 1, Kessler warm rain microphysics. ! = 2, Ice microphysics. INTEGER :: moist ! Moist processes option. ! = 0, dry run, all processes ! related to moisture are turned off ! = 1, moist processes are activated INTEGER :: nmphystp ! Microphysics calls interval, in timesteps ! = 1, called in each time step ! > 1, called every nmphystp time steps. INTEGER :: cnvctopt ! Option for convective cumulus ! parameterization ! = 0, no convective parameterization ! = 1, Kuo scheme ! = 2, Kuo scheme and warm rain microphysics ! = 3, Kain and Fristch INTEGER :: ice ! Ice microphysics option. ! = 0, ice processes are turned off ! = 1, ice processes are activated. INTEGER :: impfallopt ! option for vertically implicit scheme. ! = 0, explicit scheme ! = 1, implicit scheme REAL :: fallvalpha ! weight coefficient for time level n+1. REAL :: fallvbeta ! weight coefficient for time level n. INTEGER :: fallopt ! option for fall velocity scheme/coeff. ! = 1, exisiting Lin fomulation ! = 2, Ferrier (1994) with updated fall ! velocity coefficients from observations. INTEGER :: subsatopt ! Sub-saturation option. ! = 0, condensation occurs when RH>=100% ! = 1, condensation occurs when RH>=rhsat, ! a user specified value. ! = 2, rhsat is defined as a linear function ! of grid size instead. ! COMMON /arpsc160/ mphyopt, moist, nmphystp, cnvctopt, ice, subsatopt, & impfallopt, fallvalpha, fallvbeta, fallopt !----------------------------------------------------------------------- ! ! Cumulus physics parameters. ! !----------------------------------------------------------------------- ! REAL :: kffbfct ! A feedback factor for K-F scheme. INTEGER :: kfsubsattrig ! The sub-saturation trigger for for K-F scheme. REAL :: wcldbs ! Vertical motion needed at cloud base for ! convection. REAL :: confrq ! Frequency of conv param. updates in sec. REAL :: qpfgfrq ! Frequency of grid param. updates in sec. INTEGER :: idownd ! Downdraft flag ! = 0, no downdrafts. ! = 1, simple downdraft model. COMMON /arpsc161/ kffbfct,kfsubsattrig,wcldbs,confrq,qpfgfrq,idownd ! !----------------------------------------------------------------------- ! ! Sub-saturation parameters. ! !----------------------------------------------------------------------- ! REAL :: rhsat ! Threshold of RH for condensation REAL :: rhsatmin ! Minimum threshold of RH for condesation REAL :: dx_rhsatmin ! Grid size corresponding to rhsatmin REAL :: dx_rhsat100 ! Grid size corresponding to RH =100% COMMON /arpsc162/ rhsat, rhsatmin, dx_rhsatmin, dx_rhsat100 ! !----------------------------------------------------------------------- ! ! Microphysics constants. ! !----------------------------------------------------------------------- ! REAL :: autotr ! Cloud water mixing ratio threshold for ! autoconversion from cloud to rain water ! (kg/kg). PARAMETER ( autotr = 1.0E-3 ) REAL :: autort ! Autoconversion rate (1/seconds). PARAMETER ( autort = 1.0E-3 ) REAL :: accrrt ! Accretion rate (1/seconds). PARAMETER ( accrrt = 2.2 ) REAL :: rho0 ! Reference density (kg/meter**3). ) PARAMETER ( rho0 = 1.225 ) ! !----------------------------------------------------------------------- ! ! Saturation specific humidity parameters used in enhanced Teten's ! formula. (See A. Buck, JAM 1981) ! !----------------------------------------------------------------------- ! REAL :: satfwa, satfwb PARAMETER ( satfwa = 1.0007 ) PARAMETER ( satfwb = 3.46E-8 ) ! for p in Pa REAL :: satewa, satewb, satewc PARAMETER ( satewa = 611.21 ) ! es in Pa PARAMETER ( satewb = 17.502 ) PARAMETER ( satewc = 32.18 ) REAL :: satfia, satfib PARAMETER ( satfia = 1.0003 ) PARAMETER ( satfib = 4.18E-8 ) ! for p in Pa REAL :: sateia, sateib, sateic PARAMETER ( sateia = 611.15 ) ! es in Pa PARAMETER ( sateib = 22.452 ) PARAMETER ( sateic = 0.6 ) ! !----------------------------------------------------------------------- ! ! The x and y component of the domain translation speed ! (ground-relative). ! !----------------------------------------------------------------------- ! REAL :: umove ! Model domain translation speed in x ! direction. REAL :: vmove ! Model domain translation speed in y ! direction. COMMON /arpsc170/ umove, vmove ! !----------------------------------------------------------------------- ! ! Surface physics parameters. ! !----------------------------------------------------------------------- ! INTEGER :: sfcphy ! Surface physics option. ! = 0, no surface physics parameterization ! = 1, simple bulk aerodynamic formulation INTEGER :: landwtr ! Flag to indicate if land and water will be ! distinquished when the surface roughness ! length is calculated. If yes,the ! vagetation data (in sfcdtfl) has to be ! read in for all active options of sfcopt ! = 0, no distinquishing. ! = 1, surface roughness length is ! calculated differently for land ! and water. INTEGER :: cdhwtropt ! Option to set constant value of cdh ! (cdq) over water. INTEGER :: wtrexist ! Flag to check if any grid point is ! covered by water. REAL :: cdmlnd ! Bulk aerodynamic momentum drag ! coefficient. REAL :: cdmwtr ! Bulk aerodynamic momentum drag ! coefficient. REAL :: cdhlnd ! Bulk aerodynamic heat flux drag ! coefficient. REAL :: cdhwtr ! Bulk aerodynamic heat flux drag ! coefficient. REAL :: cdqlnd ! Bulk aerodynamic moisture flux drag ! coefficient. REAL :: cdqwtr ! Bulk aerodynamic moisture flux drag ! coefficient. ! cdm, cdh and cdq are all non-dimensional INTEGER :: pbldopt ! Option for determining PBL depth. REAL :: pbldpth0 ! User-specified PBL depth. REAL :: lsclpbl0 ! Length scale INTEGER :: sflxdis ! Option for distributing fluxes in PBL ! = 0, without flux distribution; ! = 1, with flux distribution for heat, ! moist, and momentum; ! = 2, with flux distribution for heat, moist. INTEGER :: tqflxdis ! Option for distributing heat and moisture ! fluxes qudratically in a specified ! depth dtqflxdis ! = 0, no distribution; ! = 1, with distribution REAL :: dtqflxdis ! Depth of flux distribution for tqflxdis=1 ! 200 m recommended. INTEGER :: smthflx ! Option to smooth surface fluxes ! = 0, no smoothing ! = 1, smoothing INTEGER :: numsmth ! Number of smoothing passes ! >=1 when smthflx = 1 INTEGER :: sfcdiag ! Flag of surface diagnotic calculation REAL :: ztime ! Zulu time for any give day ! Used to read Mesonet data files COMMON /arpsc180/ sfcphy,landwtr,cdhwtropt,sfcdiag,pbldopt, & wtrexist,sflxdis,tqflxdis,smthflx,numsmth,ztime COMMON /arpsc181/ cdmlnd,cdmwtr, cdhlnd,cdhwtr, & cdqlnd,cdqwtr,pbldpth0,lsclpbl0,dtqflxdis INTEGER :: sfcdat ! Surface data input flag. INTEGER :: soilinit ! Soil model varialble initialization flag. INTEGER :: sfcunit ! Fortran I/O unit number for surface data ! input. REAL :: dtsfc ! Time step for surface energy budget model INTEGER :: nsfcst ! Number of steps for surface energy budget model COMMON /arpsc182/ sfcdat, soilinit, sfcunit, nsfcst COMMON /arpsc183/ dtsfc INTEGER :: soilmodel_forced ! Option for forcing soil scheme ! = 0, Non-forced mode ! = 1, Forced mode (e.g.,Mesonet forcing) INTEGER :: soilmodel_option ! Option for soil scheme ! = 1, Two-layer force-restore method ! = 2, Multi-layer 'OUSoil' scheme INTEGER :: nstyp ! Number of soil types INTEGER :: styp ! Soil type INTEGER :: vtyp ! Vegetation type REAL :: lai0 ! Leaf Area Index REAL :: roufns0 ! Surface roughness REAL :: veg0 ! Vegetation fraction REAL :: tsoilint(100) ! Soil temperature REAL :: qsoilint(100) ! Soil moisture REAL :: ptslnd0 ! Initial ground-level soil potential ! temperature over land REAL :: ptswtr0 ! Initial ground-level soil potential ! temperature over water REAL :: tsoil0 ! Initial deep soil temperature REAL :: wetsfc0 ! Initial surface soil moisture REAL :: wetdp0 ! Initial deep soil moisture REAL :: wetcanp0 ! Initial canopy moisture REAL :: snowdpth0 ! Snow depth (m) REAL :: ttprt ! Offset of tsfc from sfc air temperature REAL :: tbprt ! Offset of tsoil from sfc air temperature REAL :: wgrat ! Saturation rate of sfc soil moisture REAL :: w2rat ! Saturation rate of deep soil moisture COMMON /arpsc184/ soilmodel_forced,soilmodel_option,nstyp,styp,vtyp COMMON /arpsc185/ lai0,roufns0,veg0,tsoilint,qsoilint, & ptslnd0,ptswtr0,tsoil0, & wetsfc0,wetdp0,wetcanp0,snowdpth0, & ttprt,tbprt,wgrat,w2rat CHARACTER (LEN=256 ) :: sfcdtfl ! File name of surface data. CHARACTER (LEN=256 ) :: sitemeso ! File name of site file name. CHARACTER (LEN=256 ) :: siteflux ! File name of site file name. CHARACTER (LEN=256 ) :: siternet ! File name of site file name. CHARACTER (LEN=256 ) :: sitesoil ! File name of site file name. CHARACTER (LEN=256 ) :: siteveg ! File name of site file name. CHARACTER (LEN=256 ) :: soilinfl ! File name of surface initialization data. COMMON /arpsc186/ sfcdtfl, sitemeso, siteflux, siternet, sitesoil, & siteveg, soilinfl ! !----------------------------------------------------------------------- ! ! Coriolis parameters ! !----------------------------------------------------------------------- ! INTEGER :: coriopt ! Coriolis term option. ! = 0, no coriolis terms ! = 1, coriolis terms involving horizontal wind ! = 2, coriolis terms involving both ! horizontal and vertical wind ! = 3, as 1, but Coriolis parameters are altitude ! dependent and effects of spatial gradient ! of map factor and of earth curvature are ! also included ! = 4, as 2, but Coriolis parameters are altitude ! dependent and effects of spatial gradient ! of map factor and of earth curvature are ! also included INTEGER :: earth_curvature ! Earth curvature term option ! = 0, earth curvature terms are neglected ! = 1, those terms are included when coriopt = 3 or 4 INTEGER :: coriotrm ! A flag indicating if total or perturbation ! wind is used in the Coriolis terms ! in the horizontal momemtum equations. ! = 1, total wind, ! = 2, perturbation wind. REAL :: latitud ! Model center latitude (degrees). REAL :: longitud ! Model center longitude (degrees). COMMON /arpsc190/ coriopt, coriotrm, earth_curvature COMMON /arpsc191/ latitud, longitud !---------------------------------------------------------------------- ! ! The amplitude of the annual cycle of the difference in deep and skin ! layer soil seasonal-mean temperatures. ! !---------------------------------------------------------------------- INTEGER :: tsoil_offset REAL :: tsoil_offset_amplitude COMMON /arpsc197/ tsoil_offset, tsoil_offset_amplitude ! !----------------------------------------------------------------------- ! ! The name of the directory into which output files will be written: ! !----------------------------------------------------------------------- ! CHARACTER (LEN=256 ) :: dirname ! The name of output directory INTEGER :: ldirnam ! The length of the directory name string COMMON /arpsc200/ ldirnam COMMON /arpsc201/ dirname ! !----------------------------------------------------------------------- ! ! Model output parameters. ! !----------------------------------------------------------------------- ! INTEGER :: nfmtprt ! time steps between formatted print out REAL :: tfmtprt ! time interval between formatted print out INTEGER :: nmaxmin ! time steps between max/min statistics calc. REAL :: tmaxmin ! time interval between max/min statistics calc. INTEGER :: nenergy ! time steps between energy statistics calc. REAL :: tenergy ! time interval between energy statistics calc. INTEGER :: nrstout ! time steps between restart data dumps REAL :: trstout ! time interval between restart data dumps COMMON /arpsc210/ nfmtprt, nmaxmin, nenergy, nrstout COMMON /arpsc220/ tfmtprt, tmaxmin, tenergy, trstout INTEGER :: totout ! Flag to indicate that the history dump ! contains total values instead of ! perturbation ! = 0, Perturbations ! = 1, total values INTEGER :: grdout ! Grid output option. ! = 0, no grid output ! = 1, grid output INTEGER :: basout ! Base state field output option. ! = 0, no base state fields output ! = 1, base state fields output INTEGER :: varout ! Mass & perturbation wind output option. ! = 0, no mass or perturbation wind output ! = 1, mass & perturbation wind output INTEGER :: mstout ! Moist variable output option. ! = 0, no moisture variables output ! = 1, qv, qc, qr, qi, qs and qh output. INTEGER :: rainout ! Rain variable output option. ! = 0, no rain variables output ! = 1, raing and rainc output. INTEGER :: prcout ! Precipitation rates output option. ! = 0, no rain variables output ! = 1, prcrate output. INTEGER :: iceout ! Ice variable ouptu option. ! = 0, no ice variables output ! = 1, qi, qs and qh output INTEGER :: tkeout ! TKE output option. ! = 0, no output ! = 1, output INTEGER :: trbout ! Turbulence field (km) output option. ! = 0, km not output ! = 1, km output INTEGER :: sfcout ! Surface variable output option. ! = 0, no surface variables output ! = 1, tsfc,tsoil,wetsfc,wetdp,wetsfc output INTEGER :: snowout ! Snow cover output option ! = 0, no snow cover output ! = 1, snow cover output INTEGER :: landout ! Surface property array output option. ! = 0, no surface property array output ! = 1, soiltyp,vegtyp,lai,roufns,veg output INTEGER :: radout ! Radiation arrays output option. ! = 0, no radiation arrays output ! = 1, radfrc, radsw, rnflx output INTEGER :: flxout ! Surface fluxes output option. ! = 0, no surface fluxes output ! = 1, usflx, vsflx, ptsflx, qvsflx output INTEGER :: exbcdmp ! Flag to dump the ARPS fields into an ! additional file to make the ARPS ! external boundary data set (if lbcopt=2). ! = 0, no EXBC dumping; ! = 1, EXBC dumping; ! = 3, HDF4 format dumping; INTEGER :: exbchdfcompr ! HDF4 compression option for exbcdmp = 3. INTEGER :: extdadmp ! Flag to dump the fields that contains ! external data array interpolated to the ! current model time. When lbcopt.ne.2, ! reset extdadmp to 0. ! = 0, no dumping ! = 1, dump. INTEGER :: sfcdmp ! Flag to dump the ARPS surface data into ! a surface data file. ! = 0, no surface data file ! = 1, dump in Fortran unformatted format ! = 3, dump in HDF4 uncompresses format. INTEGER :: soildmp ! Flag to dump the ARPS soil data into ! a soil data file. ! = 0, no soil data file ! = 1, dump in Fortran unformatted format ! = 3, dump in HDF4 uncompresses format. INTEGER :: terndmp ! Flag to dump the ARPS terrain data into ! a terrain data file. ! = 0, no terrain data file ! = 1, dump in Fortran unformatted format ! = 3, dump in HDF4 uncompresses format. INTEGER :: exbcfmt ! Format of EXBC file to be read in. ! = 1, Fortran unformatted ! = 3, HDF4 (uncompressed or compressed). INTEGER :: incrfmt ! Format of nudging file to be read in. ! = 1, Fortran unformatted ! = 3, HDF4 (uncompressed or compressed). INTEGER :: sfcfmt ! Format of surface data file to be read in. ! = 1, Fortran unformatted ! = 3, HDF4 (uncompressed). INTEGER :: soilfmt ! Format of soil data file to be read in. ! = 1, Fortran unformatted ! = 3, HDF4 (uncompressed). INTEGER :: ternfmt ! Format of terrain data file to be read in. ! = 1, Fortran unformatted ! = 3, HDF4 (uncompressed). INTEGER :: qcexout ! Flag to dump qc into EXBC file ! = 0, no EXBC dumping ! = 1, EXBC dumping if exbcdmp \= 0 INTEGER :: qrexout ! Flag to dump qr into EXBC file ! = 0, no EXBC dumping ! = 1, EXBC dumping if exbcdmp \= 0 INTEGER :: qiexout ! Flag to dump qi into EXBC file ! = 0, no EXBC dumping ! = 1, EXBC dumping if exbcdmp \= 0 INTEGER :: qsexout ! Flag to dump qs into EXBC file ! = 0, no EXBC dumping ! = 1, EXBC dumping if exbcdmp \= 0 INTEGER :: qhexout ! Flag to dump qh into EXBC file ! = 0, no EXBC dumping ! = 1, EXBC dumping if exbcdmp \= 0 COMMON /arpsc230/ grdout, basout, varout, mstout, rainout, & prcout, iceout, tkeout, trbout, sfcout, & landout,radout, flxout, totout, snowout, & exbcdmp,exbchdfcompr,extdadmp, & qcexout,qrexout,qiexout,qsexout,qhexout, & sfcdmp,soildmp,terndmp,exbcfmt,incrfmt,sfcfmt, & soilfmt,ternfmt ! !----------------------------------------------------------------------- ! ! History data dump parameters. ! !----------------------------------------------------------------------- ! INTEGER :: hdmpopt ! History data dump option. ! = 1, dump with constant time interval ! = 2, dump at the time specified by user INTEGER :: hdmpfmt ! History data dump format option. ! = 0, No data dump is produced ! = 1, Unformatted binary data dump ! = 2, Formatted ascii data dump ! = 3, NCSA HDF4 format data dump ! = 4, Compressed binary data dump ! = 5, Dump for Savi3D visualization ! package ! = 6, binary allowing data point skip ! = 7, Uncompressed NetCDF format dump. ! = 8, Compressed NetCDF format dump. ! = 9, GrADS data dump ! = 10, GRIB data dump INTEGER :: grbpkbit ! Bit length to pack floating data ! in GRIB format INTEGER :: hdfcompr ! HDF4 compression option REAL :: thisdmp ! time interval between history data dumps INTEGER :: nhisdmp ! time steps between history data dumps REAL :: tstrtdmp ! time to start history data dump INTEGER :: nstrtdmp ! time steps from beginning to tstrtdmp INTEGER :: numhdmp ! number of history dumps specified by user INTEGER :: hdmpmax ! maximum number of history dumps allowed ! in user specifying option PARAMETER ( hdmpmax = 100 ) REAL :: hdmptim(hdmpmax) ! times of model specified by user to ! dump out history data INTEGER :: hdmpstp(hdmpmax) ! steps from beginning of model specified ! by user to dump out history data ! hdmpstp = nint( hdmptim/dtbig ) INTEGER :: nchdmp ! Fortran I/O channel for history ! data dump. CHARACTER (LEN=256) :: hdmpfn ! History data dump file name. INTEGER :: ldmpf ! Length of the history data dump file name INTEGER :: istager ! Flag to dump vectors on vector grids. ! = 0, no stagering, dump on scalar grid ! = 1, stagering, dump vectors on vectors grids COMMON /arpsc240/ hdmpfn COMMON /arpsc241/ ldmpf,nchdmp COMMON /arpsc242/ grbpkbit,istager,hdfcompr COMMON /arpsc243/ hdmpopt,hdmpfmt,nhisdmp,nstrtdmp,numhdmp,hdmpstp COMMON /arpsc244/ thisdmp,tstrtdmp,hdmptim ! !----------------------------------------------------------------------- ! ! More output control parameters ! !----------------------------------------------------------------------- ! INTEGER :: imgopt ! HDF image dumping option, 0 or 1 INTEGER :: nimgdmp ! time steps between HDF image dumps REAL :: timgdmp ! time interval between HDF image dumps INTEGER :: pltopt ! Graphic plotting option, 0 or 1 INTEGER :: nplots ! time steps between graphic plotting calls REAL :: tplots ! time interval between graphic plotting calls INTEGER :: filcmprs ! Option for output file compression, 0 or 1. INTEGER :: readyfl ! Option for using a ready file, 0 or 1. COMMON /arpsc305/ imgopt, pltopt COMMON /arpsc310/ nimgdmp, nplots COMMON /arpsc320/ timgdmp, tplots COMMON /arpsc321/ filcmprs, readyfl ! !----------------------------------------------------------------------- ! ! Parameters for grid translation. ! !----------------------------------------------------------------------- ! INTEGER :: cltkopt ! Option for cell tracking. ! = 0, no cell-tracking, ! = 1, cell-tracking is turned on. INTEGER :: grdtrns ! Domain translation option. ! = 0, no change in domain translation. ! = 1, domain translation based on cell ! tracking. ! = 2, automatic domain translation via ! optimal procedure. REAL :: chkdpth ! Depth (m) over which the optimal domain ! translation speed is calculated for the ! automatic domain translation. REAL :: twindow ! Time window (s) between update of grid ! translation components for automatic ! domain translation. INTEGER :: nceltrk ! time steps between cell tracking calls REAL :: tceltrk ! time interval between cell tracking calls REAL :: tcrestr ! time required to restore cell center ! to domain center COMMON /arpsc330/ cltkopt,grdtrns,nceltrk COMMON /arpsc331/ chkdpth,twindow,tceltrk,tcrestr ! !----------------------------------------------------------------------- ! ! Debug information printing level. ! !----------------------------------------------------------------------- ! INTEGER :: lvldbg ! Level of debug information printing. ! =0, no printing; ! =1, Print variables in big t-step; ! =2, Print forcings in big t-step; ! =3, Print variables in small t-step; ! =4, Print forcings in small t-step; ! =5, Print individual forcing terms ! and misc. info; COMMON /arpsc325/ lvldbg ! !----------------------------------------------------------------------- ! ! Model restart data dump parameters. ! !----------------------------------------------------------------------- ! INTEGER :: restrt ! Restart run option. ! = 0, non-restart run; ! = 1, restart run; INTEGER :: rstiunt ! Fortran I/O unit for restart data read. CHARACTER (LEN=256 ) :: rstinf ! File name of restart input data. INTEGER :: rstount ! Fortran I/O unit for restart data dump. CHARACTER (LEN=256 ) :: rstoutf ! File name of restart data dump. COMMON /arpsc260/ restrt, rstount, rstiunt COMMON /arpsc270/ rstoutf COMMON /arpsc271/ rstinf ! !----------------------------------------------------------------------- ! ! The Fortran I/O channel (unit) used for max/min statistics output. ! !----------------------------------------------------------------------- ! INTEGER :: nchmax ! Fortran I/O channel for max/min ! statistics output. COMMON /arpsc280/ nchmax ! !----------------------------------------------------------------------- ! ! The Fortran I/O channel (unit) used by energy statistics output ! !----------------------------------------------------------------------- ! INTEGER :: ncheng ! Fortran I/O channel for energy ! statistics output. COMMON /arpsc290/ ncheng ! !----------------------------------------------------------------------- ! ! Parameters used by Savi3D. ! !----------------------------------------------------------------------- ! INTEGER :: grafh ! Grafhandle used by savi3D INTEGER :: gridh ! Gridhandle used by savi3D COMMON /arpsc300/ grafh, gridh INTEGER :: dsindex INTEGER :: gridid COMMON /savicmn/dsindex, gridid ! !----------------------------------------------------------------------- ! ! Parameters for map projections ! !----------------------------------------------------------------------- ! INTEGER :: mpfctopt ! Option parameter for map factor ! = 0, map factor set to 1 ! = 1, map factor calculated according to ! mapproj INTEGER :: mptrmopt ! Option parameter for map factor terms in ! momentum advection ! = 0, ignore the terms ! = 1, include the terms INTEGER :: maptest ! Option parameter for map factor testing ! with a symmetric field. ! = 0, no test ! = 1, symmetric field applied COMMON /arps450/ mpfctopt, mptrmopt, maptest ! !----------------------------------------------------------------------- ! ! Parameters for radiation ! !----------------------------------------------------------------------- ! INTEGER :: radopt ! Option to switch on/off radiation physics ! = 0, No radiation physics; ! = 1, Radiation physics; INTEGER :: radstgr ! Option to switch on/off radiation ! computing at staggering points ! = 0, No staggering ! = 1, staggering INTEGER :: rlwopt ! Option for longwave schemes ! = 0, for high = .false. ! = 1, for high = .true. !augustin INTEGER :: radshade ! Option for shade computing ! = 0, no shading ! = 1, shading. ! = 2, 'idealized shading' ! 'used in simulations of 2D valleys ! north south oriented the shade will ! be computed only in the middle of the valley INTEGER :: raddiag ! Option to dump variables calculated in ! radiation transfer equations ! = 0, no dump ! = 1, dump to GrADS format INTEGER :: nradstp ! Time steps to update radiation ! calculation REAL :: dtrad ! Time interval to update radiation ! calculation REAL :: cldh2m ! Height in meter that separates high cloud ! and middle cloud REAL :: cldm2l ! Height in meter that separates middle cloud ! and low cloud INTEGER :: ict ! Vertical indices of height cldh2m INTEGER :: icb ! Vertical indices of height cldm2l PARAMETER ( cldh2m = 5500.0, cldm2l = 3000.0 ) ! in meter !augustin COMMON /arps500/ radopt,radstgr, rlwopt,radshade,raddiag,nradstp, & ict,icb COMMON /arps501/ dtrad CHARACTER (LEN=20) :: arpsversion ! A string containing the version number of ARPS. COMMON /arps601/ arpsversion ! ! Accumulated CPU time usage by various processes or terms in the ! equations. ! INTEGER, PARAMETER :: max_acct = 22 INTEGER :: use_acct INTEGER, PARAMETER :: misc_acct=1,init_acct=2,output_acct=3, & rad_acct=4,sfcphy_acct=5,soil_acct=6,tinteg_acct=7, & tmix_acct=8,cmix_acct=9,raydmp_acct=10,advuvw_acct=11, & advs_acct=12,coriol_acct=13,buoy_acct=14,tkesrc_acct=15, & bc_acct=16,qpfgrd_acct=17,cum_acct=18,smlstp_acct=19, & microph_acct=20,qfall_acct=21,mp_acct=22 ! Note: can add other accounting sets for adas, etc. DOUBLE PRECISION :: acct_cpu_time(max_acct), acct_wall_time(max_acct) DOUBLE PRECISION :: wall_init, cpu_init, total_cpu, total_wall, & wall_acct, cpu_acct, wall_inter, cpu_inter COMMON /arps701/ acct_cpu_time, acct_wall_time, & wall_init, cpu_init, total_cpu, total_wall, & wall_acct, cpu_acct, wall_inter, cpu_inter INTEGER :: current_acct, interrupt_acct COMMON /arps702/ use_acct, current_acct, interrupt_acct REAL :: ptground,pttrop, ttrop, htrop, qvmixed, rhmixed, mixtop, zshear COMMON /wk_sounding/ ptground, pttrop, ttrop, htrop, qvmixed, & rhmixed, mixtop, zshear