chgres_cube  1.11.0
All Data Structures Namespaces Files Functions Variables Pages
surface_target_data.F90
Go to the documentation of this file.
1 
4 
10 
11  use esmf
12 
13  implicit none
14 
15  private
16 
17 ! surface fields (not including nst)
18  type(esmf_field), public :: canopy_mc_target_grid
19 
20  type(esmf_field), public :: f10m_target_grid
21 
23  type(esmf_field), public :: ffmm_target_grid
24 
26  type(esmf_field), public :: q2m_target_grid
27 
28  type(esmf_field), public :: seaice_depth_target_grid
29 
30  type(esmf_field), public :: seaice_fract_target_grid
31 
32  type(esmf_field), public :: seaice_skin_temp_target_grid
33 
34  type(esmf_field), public :: skin_temp_target_grid
35 
36  type(esmf_field), public :: srflag_target_grid
37 
38  type(esmf_field), public :: snow_liq_equiv_target_grid
39 
40  type(esmf_field), public :: snow_depth_target_grid
41 
42  type(esmf_field), public :: soil_temp_target_grid
43 
44  type(esmf_field), public :: soilm_liq_target_grid
45 
46  type(esmf_field), public :: soilm_tot_target_grid
47 
48  type(esmf_field), public :: t2m_target_grid
49 
50  type(esmf_field), public :: tprcp_target_grid
51 
52  type(esmf_field), public :: ustar_target_grid
53 
54  type(esmf_field), public :: z0_target_grid
55 
56  type(esmf_field), public :: lai_target_grid
57 
58 
59 ! nst fields
60  type(esmf_field), public :: c_d_target_grid
61 
62  type(esmf_field), public :: c_0_target_grid
63 
64  type(esmf_field), public :: d_conv_target_grid
65 
66  type(esmf_field), public :: dt_cool_target_grid
67 
68  type(esmf_field), public :: ifd_target_grid
69 
71  type(esmf_field), public :: qrain_target_grid
72 
73  type(esmf_field), public :: tref_target_grid
74 
75  type(esmf_field), public :: w_d_target_grid
76 
77  type(esmf_field), public :: w_0_target_grid
78 
79  type(esmf_field), public :: xs_target_grid
80 
82  type(esmf_field), public :: xt_target_grid
83 
85  type(esmf_field), public :: xu_target_grid
86 
88  type(esmf_field), public :: xv_target_grid
89 
91  type(esmf_field), public :: xz_target_grid
92 
93  type(esmf_field), public :: xtts_target_grid
94 
95  type(esmf_field), public :: xzts_target_grid
96 
97  type(esmf_field), public :: z_c_target_grid
98 
99  type(esmf_field), public :: zm_target_grid
100 
101 
102  public :: cleanup_target_nst_data
103  public :: cleanup_target_sfc_data
104 
105  contains
106 
111  subroutine cleanup_target_sfc_data
113  implicit none
114 
115  integer :: rc
116 
117  print*,"- DESTROY TARGET GRID SURFACE FIELDS."
118  call esmf_fielddestroy(t2m_target_grid, rc=rc)
119  call esmf_fielddestroy(q2m_target_grid, rc=rc)
120  call esmf_fielddestroy(tprcp_target_grid, rc=rc)
121  call esmf_fielddestroy(f10m_target_grid, rc=rc)
122  call esmf_fielddestroy(ffmm_target_grid, rc=rc)
123  call esmf_fielddestroy(ustar_target_grid, rc=rc)
124  call esmf_fielddestroy(snow_liq_equiv_target_grid, rc=rc)
125  call esmf_fielddestroy(snow_depth_target_grid, rc=rc)
126  call esmf_fielddestroy(seaice_fract_target_grid, rc=rc)
127  call esmf_fielddestroy(seaice_depth_target_grid, rc=rc)
128  call esmf_fielddestroy(seaice_skin_temp_target_grid, rc=rc)
129  call esmf_fielddestroy(srflag_target_grid, rc=rc)
130  call esmf_fielddestroy(skin_temp_target_grid, rc=rc)
131  call esmf_fielddestroy(canopy_mc_target_grid, rc=rc)
132  call esmf_fielddestroy(lai_target_grid,rc=rc)
133  call esmf_fielddestroy(z0_target_grid, rc=rc)
134  call esmf_fielddestroy(soil_temp_target_grid, rc=rc)
135  call esmf_fielddestroy(soilm_tot_target_grid, rc=rc)
136  call esmf_fielddestroy(soilm_liq_target_grid, rc=rc)
137 
138  end subroutine cleanup_target_sfc_data
139 
144  subroutine cleanup_target_nst_data
146  implicit none
147 
148  integer :: rc
149 
150  print*,"- DESTROY TARGET GRID NST DATA."
151 
152  call esmf_fielddestroy(c_d_target_grid, rc=rc)
153  call esmf_fielddestroy(c_0_target_grid, rc=rc)
154  call esmf_fielddestroy(d_conv_target_grid, rc=rc)
155  call esmf_fielddestroy(dt_cool_target_grid, rc=rc)
156  call esmf_fielddestroy(ifd_target_grid, rc=rc)
157  call esmf_fielddestroy(qrain_target_grid, rc=rc)
158  call esmf_fielddestroy(tref_target_grid, rc=rc)
159  call esmf_fielddestroy(w_d_target_grid, rc=rc)
160  call esmf_fielddestroy(w_0_target_grid, rc=rc)
161  call esmf_fielddestroy(xs_target_grid, rc=rc)
162  call esmf_fielddestroy(xt_target_grid, rc=rc)
163  call esmf_fielddestroy(xu_target_grid, rc=rc)
164  call esmf_fielddestroy(xv_target_grid, rc=rc)
165  call esmf_fielddestroy(xz_target_grid, rc=rc)
166  call esmf_fielddestroy(xtts_target_grid, rc=rc)
167  call esmf_fielddestroy(xzts_target_grid, rc=rc)
168  call esmf_fielddestroy(z_c_target_grid, rc=rc)
169  call esmf_fielddestroy(zm_target_grid, rc=rc)
170 
171  end subroutine cleanup_target_nst_data
172 
173  end module surface_target_data
type(esmf_field), public d_conv_target_grid
Thickness of free convection layer.
type(esmf_field), public zm_target_grid
Oceanic mixed layer depth.
type(esmf_field), public canopy_mc_target_grid
Canopy moisture content.
type(esmf_field), public f10m_target_grid
log((z0+10)*1/z0) See sfc_diff.f for details.
type(esmf_field), public c_d_target_grid
Coefficient 2 to calculate d(tz)/d(ts).
type(esmf_field), public ifd_target_grid
Model mode index.
type(esmf_field), public w_d_target_grid
Coefficient 4 to calculate d(tz)/d(ts).
type(esmf_field), public xtts_target_grid
d(xt)/d(ts).
type(esmf_field), public srflag_target_grid
Snow/rain flag.
type(esmf_field), public xu_target_grid
u-current content in diurnal thermocline layer.
Module to hold ESMF fields associated with the target grid surface data.
type(esmf_field), public tprcp_target_grid
Precipitation.
type(esmf_field), public xzts_target_grid
d(xz)/d(ts).
type(esmf_field), public c_0_target_grid
Coefficient 1 to calculate d(tz)/d(ts).
type(esmf_field), public soilm_liq_target_grid
3-d liquid soil moisture.
type(esmf_field), public xz_target_grid
Diurnal thermocline layer thickness.
type(esmf_field), public z_c_target_grid
Sub-layer cooling thickness.
type(esmf_field), public lai_target_grid
Leaf area index.
type(esmf_field), public seaice_fract_target_grid
Sea ice fraction.
type(esmf_field), public snow_liq_equiv_target_grid
Liquid equivalent snow depth.
type(esmf_field), public qrain_target_grid
Sensible heat flux due to rainfall.
type(esmf_field), public soilm_tot_target_grid
3-d total soil moisture.
type(esmf_field), public seaice_depth_target_grid
Sea ice depth.
type(esmf_field), public ffmm_target_grid
log((z0+z1)*1/z0) See sfc_diff.f for details.
type(esmf_field), public seaice_skin_temp_target_grid
Sea ice skin temperature.
type(esmf_field), public xs_target_grid
Salinity content in diurnal thermocline layer.
type(esmf_field), public ustar_target_grid
Friction velocity.
type(esmf_field), public tref_target_grid
Reference temperature.
type(esmf_field), public q2m_target_grid
2-m specific humidity.
type(esmf_field), public skin_temp_target_grid
Skin temperature/sst.
type(esmf_field), public xv_target_grid
v-current content in diurnal thermocline layer.
type(esmf_field), public xt_target_grid
Heat content in diurnal thermocline layer.
type(esmf_field), public z0_target_grid
Roughness length.
type(esmf_field), public t2m_target_grid
2-m temperatrure.
subroutine, public cleanup_target_nst_data
Free up memory once the target grid nst fields are no longer needed.
type(esmf_field), public soil_temp_target_grid
3-d soil temperature.
subroutine, public cleanup_target_sfc_data
Free up memory once the target grid surface fields are no longer needed.
type(esmf_field), public dt_cool_target_grid
Sub-layer cooling amount.
type(esmf_field), public w_0_target_grid
Coefficient 3 to calculate d(tz)/d(ts).
type(esmf_field), public snow_depth_target_grid
Physical snow depth.