22 #include <fms_platform.h> 31 logical :: fpp_mapl_mode = .true.
32 logical :: fpp_overload_r4 = .false.
40 logical :: split_hord = .true.
43 integer :: hord_mt_pert = 2
44 integer :: hord_vt_pert = 2
45 integer :: hord_tm_pert = 2
46 integer :: hord_dp_pert = 2
47 integer :: hord_tr_pert = 2
50 integer :: n_sponge_pert = 9
53 logical :: hord_ks_pert = .true.
54 integer :: hord_mt_ks_pert = 1
55 integer :: hord_vt_ks_pert = 1
56 integer :: hord_tm_ks_pert = 1
57 integer :: hord_dp_ks_pert = 1
58 integer :: hord_tr_ks_pert = 1
61 logical :: hord_ks_traj = .true.
62 integer :: hord_mt_ks_traj = 1
63 integer :: hord_vt_ks_traj = 1
64 integer :: hord_tm_ks_traj = 1
65 integer :: hord_dp_ks_traj = 1
66 integer :: hord_tr_ks_traj = 1
69 logical :: split_kord = .true.
70 integer :: kord_mt_pert = 17
71 integer :: kord_wz_pert = 17
72 integer :: kord_tm_pert = 17
73 integer :: kord_tr_pert = 17
76 logical :: split_damp = .true.
77 integer :: nord_pert = 1
78 real :: dddmp_pert = 0.2
79 real :: d2_bg_pert = 0.015
80 real :: d4_bg_pert = 0.150
81 logical :: do_vort_damp_pert = .true.
82 real :: vtdm4_pert = 0.0005
83 real :: d2_bg_k1_pert = 4.
84 real :: d2_bg_k2_pert = 2.
85 real :: d2_bg_ks_pert = 2.
88 logical :: split_damp_tr = .true.
89 integer :: nord_tr_pert=0
90 real :: trdm2_pert = 0.0
98 real,
allocatable ::
up(:,:,:)
99 real,
allocatable :: vp(:,:,:)
100 real,
allocatable :: ptp(:,:,:)
101 real,
allocatable :: delpp(:,:,:)
102 real,
allocatable :: qp(:,:,:,:)
104 real,
allocatable :: wp(:,:,:)
105 real,
allocatable :: delzp(:,:,:)
106 real,
allocatable :: ze0p(:,:,:)
107 real,
allocatable :: q_conp(:,:,:)
109 real,
allocatable :: psp(:,:)
110 real,
allocatable :: pep(:,:,:)
111 real,
allocatable :: pkp(:,:,:)
112 real,
allocatable :: pelnp(:,:,:)
113 real,
allocatable :: pkzp(:,:,:)
115 real,
allocatable :: omgap(:,:,:)
117 real,
allocatable :: uap(:,:,:)
118 real,
allocatable :: vap(:,:,:)
119 real,
allocatable :: ucp(:,:,:)
120 real,
allocatable :: vcp(:,:,:)
122 real,
allocatable :: mfxp(:,:,:)
123 real,
allocatable :: mfyp(:,:,:)
125 real,
allocatable :: cxp(:,:,:)
126 real,
allocatable :: cyp(:,:,:)
132 subroutine allocate_fv_atmos_pert_type(AtmP, isd, ied, jsd, jed, is, ie, js, je, npz, ncnst)
135 type(fv_atmos_pert_type),
intent(INOUT),
target :: AtmP
136 integer,
intent(IN) :: isd, ied, jsd, jed, is, ie, js, je, npz, ncnst
139 allocate ( atmp%up(isd:ied ,jsd:jed+1,npz) )
140 allocate ( atmp%vp(isd:ied+1,jsd:jed ,npz) )
141 allocate ( atmp%ptp(isd:ied ,jsd:jed ,npz) )
142 allocate ( atmp%delpp(isd:ied ,jsd:jed ,npz) )
143 allocate ( atmp%qp(isd:ied ,jsd:jed ,npz, ncnst) )
144 allocate ( atmp%wp(isd:ied, jsd:jed ,npz ) )
145 allocate ( atmp%delzp(isd:ied, jsd:jed ,npz) )
146 allocate ( atmp%ze0p(is:ie , js:je ,npz+1) )
147 allocate (atmp%q_conp(isd:ied,jsd:jed,1:npz) )
148 allocate ( atmp%psp(isd:ied ,jsd:jed) )
149 allocate ( atmp%pep(is-1:ie+1, npz+1,js-1:je+1) )
150 allocate ( atmp%pkp(is:ie ,js:je , npz+1) )
151 allocate ( atmp%pelnp(is:ie,npz+1,js:je) )
152 allocate ( atmp%pkzp(is:ie,js:je,npz) )
153 allocate ( atmp%omgap(isd:ied ,jsd:jed ,npz) )
154 allocate ( atmp%uap(isd:ied ,jsd:jed ,npz) )
155 allocate ( atmp%vap(isd:ied ,jsd:jed ,npz) )
156 allocate ( atmp%ucp(isd:ied+1,jsd:jed ,npz) )
157 allocate ( atmp%vcp(isd:ied ,jsd:jed+1,npz) )
158 allocate ( atmp%mfxp(is:ie+1, js:je, npz) )
159 allocate ( atmp%mfyp(is:ie , js:je+1,npz) )
160 allocate ( atmp%cxp(is:ie+1, jsd:jed, npz) )
161 allocate ( atmp%cyp(isd:ied ,js:je+1, npz) )
192 type(fv_atmos_pert_type),
intent(INOUT) :: AtmP
194 deallocate ( atmp%up )
195 deallocate ( atmp%vp )
196 deallocate ( atmp%ptp )
197 deallocate ( atmp%delpp )
198 deallocate ( atmp%qp )
199 deallocate ( atmp%wp )
200 deallocate ( atmp%delzp )
201 deallocate ( atmp%ze0p )
202 deallocate ( atmp%psp )
203 deallocate ( atmp%pep )
204 deallocate ( atmp%pkp )
205 deallocate ( atmp%pelnp )
206 deallocate ( atmp%pkzp )
207 deallocate ( atmp%omgap )
208 deallocate ( atmp%uap )
209 deallocate ( atmp%vap )
210 deallocate ( atmp%ucp )
211 deallocate ( atmp%vcp )
212 deallocate ( atmp%mfxp )
213 deallocate ( atmp%mfyp )
214 deallocate ( atmp%cxp )
215 deallocate ( atmp%cyp )
subroutine allocate_fv_atmos_pert_type(AtmP, isd, ied, jsd, jed, is, ie, js, je, npz, ncnst)
subroutine deallocate_fv_atmos_pert_type(AtmP)
integer, parameter, public up