FV3 Bundle
fv3jedi_state_utils_mod.F90
Go to the documentation of this file.
1 ! (C) Copyright 2018 UCAR
2 !
3 ! This software is licensed under the terms of the Apache Licence Version 2.0
4 ! which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
5 
6 !> Utilities for state for the FV3JEDI model
7 
9 
12 
13 implicit none
14 private
16 
17 !> Fortran derived type to hold FV3JEDI state
19 
20  type(fv3jedi_vars) :: vars
21 
22  !Local copies of grid for convenience
23  integer :: isc, iec, jsc, jec
24  integer :: isd, ied, jsd, jed
25  integer :: npx, npy, npz
26  integer :: ntiles, ntile
27  logical :: havecrtmfields = .false.
28  logical :: hydrostatic = .false.
29  integer :: calendar_type
30  integer, dimension(6) :: date
31  integer, dimension(6) :: date_init
32 
33  !State variables
34  real(kind=kind_real), allocatable, dimension(:,:,:) :: ud ! D-grid (grid tangential) zonal wind (m/s)
35  real(kind=kind_real), allocatable, dimension(:,:,:) :: vd ! D-grid (grid tangential) meridional wind (m/s)
36  real(kind=kind_real), allocatable, dimension(:,:,:) :: ua ! A-grid zonal wind (m/s)
37  real(kind=kind_real), allocatable, dimension(:,:,:) :: va ! A-grid meridional wind (m/s)
38  real(kind=kind_real), allocatable, dimension(:,:,:) :: t ! dry temperature (K)
39  real(kind=kind_real), allocatable, dimension(:,:,:) :: delp ! pressure thickness (pascal)
40  real(kind=kind_real), allocatable, dimension(:,:,:) :: q ! specific humidity (kg/kg)
41  real(kind=kind_real), allocatable, dimension(:,:,:) :: qi ! cloud liquid ice (kg/kg)
42  real(kind=kind_real), allocatable, dimension(:,:,:) :: ql ! cloud liquid water (kg/kg)
43  real(kind=kind_real), allocatable, dimension(:,:,:) :: o3 ! ozone (kg/kg)
44  real(kind=kind_real), allocatable, dimension(:,:,:) :: w ! cell center vertical wind (m/s)
45  real(kind=kind_real), allocatable, dimension(:,:,:) :: delz ! layer thickness (meters)
46  real(kind=kind_real), allocatable, dimension(:,:) :: phis ! Surface geopotential (g*Z_surf)
47 
48  !2D state for CRTM
49  integer , allocatable, dimension(:,:) :: slmsk
50  real(kind=kind_real), allocatable, dimension(:,:) :: sheleg
51  real(kind=kind_real), allocatable, dimension(:,:) :: tsea
52  integer , allocatable, dimension(:,:) :: vtype
53  integer , allocatable, dimension(:,:) :: stype
54  real(kind=kind_real), allocatable, dimension(:,:) :: vfrac
55  real(kind=kind_real), allocatable, dimension(:,:,:) :: stc
56  real(kind=kind_real), allocatable, dimension(:,:,:) :: smc
57  real(kind=kind_real), allocatable, dimension(:,:) :: snwdph
58  real(kind=kind_real), allocatable, dimension(:,:) :: u_srf
59  real(kind=kind_real), allocatable, dimension(:,:) :: v_srf
60  real(kind=kind_real), allocatable, dimension(:,:) :: f10m
61 
62  !Linearized model trajectory
63  real(kind_real), allocatable, dimension(:,:,:) :: qls, qcn, cfcn
64  real(kind_real), allocatable, dimension(:,:) :: frocean, frland
65  real(kind_real), allocatable, dimension(:,:) :: varflt, ustar, bstar
66  real(kind_real), allocatable, dimension(:,:) :: zpbl, cm, ct, cq
67  real(kind_real), allocatable, dimension(:,:) :: kcbl, ts, khl, khu
68 
69 end type fv3jedi_state
70 
71 ! ------------------------------------------------------------------------------
72 
73 #define LISTED_TYPE fv3jedi_state
74 
75 !> Linked list interface - defines registry_t type
76 #include "linkedList_i.f"
77 
78 !> Global registry
79 type(registry_t) :: fv3jedi_state_registry
80 
81 ! ------------------------------------------------------------------------------
82 
83 contains
84 
85 ! ------------------------------------------------------------------------------
86 
87 !> Linked list implementation
88 #include "linkedList_c.f"
89 
90 ! ------------------------------------------------------------------------------
91 
92 end module fv3jedi_state_utils_mod
Fortran derived type to hold FV3JEDI state.
Fortran module to handle variables for the FV3JEDI model.
Utilities for state for the FV3JEDI model.
type(registry_t), public fv3jedi_state_registry
Linked list interface - defines registry_t type.
Fortran derived type to represent fv3jedi model variables.