1
2! KGEN-generated Fortran source file
3!
4! Filename    : control_mod.F90
5! Generated at: 2015-02-24 15:34:48
6! KGEN version: 0.4.4
7
8
9
10    MODULE control_mod
11        ! time integration (explicit, semi_imp, or full imp)
12        ! none of this is used anymore:
13        !  u grad(Q) formulation
14        ! div(u dp/dn Q ) formulation
15        ! Tracer transport type
16        ! We potentially have five types of tracer advection. However, not all of them
17        ! may be chosen at runtime due to compile-type restrictions on arrays
18        !shallow water advection tests:
19        !kmass points to a level with density.  other levels contain test tracers
20        ! m s^-2
21        ! 0 = leapfrog
22        ! 1 = RK (foward-in-time)
23        ! number of RK stages to use
24        ! Forcing Type
25        ! ftype = 0  HOMME ApplyColumn() type forcing process split
26        ! ftype = -1   ignore forcing  (used for testing energy balance)
27        ! use cp or cp* in T equation
28        !  -1: No fixer, use non-staggered formula
29        !   0: No Fixer, use staggered in time formula
30        !       (only for leapfrog)
31        !   1 or 4:  Enable fixer, non-staggered formula
32        ! ratio of dynamics tsteps to tracer tsteps
33        ! for vertically lagrangian dynamics, apply remap
34        ! every rsplit tracer timesteps
35        ! Defines if the program is to use its own physics (HOMME standalone), valid values 1,2,3
36        ! physics = 0, no physics
37        ! physics = 1, Use physics
38        ! leapfrog-trapazoidal frequency
39        ! interspace a lf-trapazoidal step every LFTfreq leapfrogs
40        ! 0 = disabled
41        ! compute_mean_flux:  obsolete, not used
42        ! vert_remap_q_alg:    0  default value, Zerroukat monotonic splines
43        !                      1  PPM vertical remap with mirroring at the boundaries
44        !                         (solid wall bc's, high-order throughout)
45        !                      2  PPM vertical remap without mirroring at the boundaries
46        !                         (no bc's enforced, first-order at two cells bordering top and bottom boundaries)
47        INTEGER, public :: vert_remap_q_alg = 0
48        ! -1 = chosen at run time
49        !  0 = equi-angle Gnomonic (default)
50        !  1 = equi-spaced Gnomonic (not yet coded)
51        !  2 = element-local projection  (for var-res)
52        !  3 = parametric (not yet coded)
53        !tolerance to define smth small, was introduced for lim 8 in 2d and 3d
54        ! if semi_implicit, type of preconditioner:
55        ! choices block_jacobi or identity
56        ! partition methods
57        ! options: "cube" is supported
58        ! options: if cube: "swtc1","swtc2",or "swtc6"
59        ! generic test case param
60        ! remap frequency of synopsis of system state (steps)
61        ! selected remapping option
62        ! output frequency of synopsis of system state (steps)
63        ! frequency in steps of field accumulation
64        ! model day to start accumulation
65        ! model day to stop  accumulation
66        ! max iterations of solver
67        ! solver tolerance (convergence criteria)
68        ! debug level of CG solver
69        ! Boyd Vandeven filter Transfer fn parameters
70        ! Fischer-Mullen filter Transfer fn parameters
71        ! vertical formulation (ecmwf,ccm1)
72        ! vertical grid spacing (equal,unequal)
73        ! vertical coordinate system (sigma,hybrid)
74        ! set for refined exodus meshes (variable viscosity)
75        ! upper bound for Courant number
76        ! (only used for variable viscosity, recommend 1.9 in namelist)
77        ! viscosity (momentum equ)
78        ! viscsoity (momentum equ, div component)
79        ! default = nu   T equ. viscosity
80        ! default = nu   tracer viscosity
81        ! default = 0    ps equ. viscosity
82        ! top-of-the-model viscosity
83        ! number of subcycles for hyper viscsosity timestep
84        ! number of subcycles for hyper viscsosity timestep on TRACERS
85        ! laplace**hypervis_order.  0=not used  1=regular viscosity, 2=grad**4
86        ! 0 = use laplace on eta surfaces
87        ! 1 = use (approx.) laplace on p surfaces
88        ! if not 0, use variable hyperviscosity based on element area
89        ! use tensor hyperviscosity
90        !
91        !three types of hyper viscosity are supported right now:
92        ! (1) const hv:    nu * del^2 del^2
93        ! (2) scalar hv:   nu(lat,lon) * del^2 del^2
94        ! (3) tensor hv,   nu * ( \div * tensor * \grad ) * del^2
95        !
96        ! (1) default:  hypervis_power=0, hypervis_scaling=0
97        ! (2) Original version for var-res grids. (M. Levy)
98        !            scalar coefficient within each element
99        !            hypervisc_scaling=0
100        !            set hypervis_power>0 and set fine_ne, max_hypervis_courant
101        ! (3) tensor HV var-res grids
102        !            tensor within each element:
103        !            set hypervis_scaling > 0 (typical values would be 3.2 or 4.0)
104        !            hypervis_power=0
105        !            (\div * tensor * \grad) operator uses cartesian laplace
106        !
107        ! hyperviscosity parameters used for smoothing topography
108        ! 0 = disable
109        ! 0 = disabled
110        ! fix the velocities?
111        ! initial perturbation in JW test case
112        ! initial perturbation in JW test case
113        !pertibation to temperature [like CESM]
114        PUBLIC read_externs_control_mod
115    CONTAINS
116
117    ! module extern variables
118
119    SUBROUTINE read_externs_control_mod(kgen_unit)
120    integer, intent(in) :: kgen_unit
121    READ(UNIT=kgen_unit) vert_remap_q_alg
122    END SUBROUTINE read_externs_control_mod
123
124
125    ! read subroutines
126    END MODULE control_mod
127