47 integer,
private,
allocatable :: interp_xi2z_idx (:,:,:,:)
48 real(RP),
private,
allocatable :: interp_xi2z_coef(:,:,:,:)
49 integer,
private,
allocatable :: interp_z2xi_idx (:,:,:,:)
50 real(RP),
private,
allocatable :: interp_z2xi_coef(:,:,:,:)
67 integer :: k, i, j, kk, kp
71 if(
io_l )
write(
io_fid_log,*)
'++++++ Module[INTERPOLATION] / Categ[ATMOS-RM GRID] / Origin[SCALElib]' 78 allocate( interp_xi2z_idx(
ka,
ia,
ja,2) )
79 allocate( interp_xi2z_coef(
ka,
ia,
ja,3) )
80 allocate( interp_z2xi_idx(
ka,
ia,
ja,2) )
81 allocate( interp_z2xi_coef(
ka,
ia,
ja,3) )
88 interp_xi2z_idx(k,i,j,1) =
ks 89 interp_xi2z_idx(k,i,j,2) =
ks 90 interp_xi2z_coef(k,i,j,1) = 0.0_rp
91 interp_xi2z_coef(k,i,j,2) = 0.0_rp
92 interp_xi2z_coef(k,i,j,3) = 1.0_rp
96 interp_xi2z_idx(k,i,j,1) =
ks 97 interp_xi2z_idx(k,i,j,2) =
ks 98 interp_xi2z_coef(k,i,j,1) = 0.0_rp
99 interp_xi2z_coef(k,i,j,2) = 1.0_rp
100 interp_xi2z_coef(k,i,j,3) = 0.0_rp
104 interp_xi2z_idx(k,i,j,1) =
ke 105 interp_xi2z_idx(k,i,j,2) =
ke 106 interp_xi2z_coef(k,i,j,1) = 1.0_rp
107 interp_xi2z_coef(k,i,j,2) = 0.0_rp
108 interp_xi2z_coef(k,i,j,3) = 0.0_rp
112 interp_xi2z_idx(k,i,j,1) =
ke 113 interp_xi2z_idx(k,i,j,2) =
ke 114 interp_xi2z_coef(k,i,j,1) = 0.0_rp
115 interp_xi2z_coef(k,i,j,2) = 0.0_rp
116 interp_xi2z_coef(k,i,j,3) = 1.0_rp
125 interp_xi2z_idx(k,i,j,1) = kp - 1
126 interp_xi2z_idx(k,i,j,2) = kp
131 interp_xi2z_coef(k,i,j,3) = 0.0_rp
143 interp_z2xi_idx(k,i,j,1) =
ks 144 interp_z2xi_idx(k,i,j,2) =
ks 145 interp_z2xi_coef(k,i,j,1) = 0.0_rp
146 interp_z2xi_coef(k,i,j,2) = 0.0_rp
147 interp_z2xi_coef(k,i,j,3) = 1.0_rp
151 interp_z2xi_idx(k,i,j,1) =
ks 152 interp_z2xi_idx(k,i,j,2) =
ks 153 interp_z2xi_coef(k,i,j,1) = 0.0_rp
154 interp_z2xi_coef(k,i,j,2) = 1.0_rp
155 interp_z2xi_coef(k,i,j,3) = 0.0_rp
159 interp_z2xi_idx(k,i,j,1) =
ke 160 interp_z2xi_idx(k,i,j,2) =
ke 161 interp_z2xi_coef(k,i,j,1) = 1.0_rp
162 interp_z2xi_coef(k,i,j,2) = 0.0_rp
163 interp_z2xi_coef(k,i,j,3) = 0.0_rp
167 interp_z2xi_idx(k,i,j,1) =
ke 168 interp_z2xi_idx(k,i,j,2) =
ke 169 interp_z2xi_coef(k,i,j,1) = 0.0_rp
170 interp_z2xi_coef(k,i,j,2) = 0.0_rp
171 interp_z2xi_coef(k,i,j,3) = 1.0_rp
180 interp_z2xi_idx(k,i,j,1) = kp - 1
181 interp_z2xi_idx(k,i,j,2) = kp
186 interp_z2xi_coef(k,i,j,3) = 0.0_rp
195 interp_xi2z_idx( 1:
ks-1,i,j,1) =
ks 196 interp_xi2z_idx( 1:
ks-1,i,j,2) =
ks 197 interp_xi2z_coef( 1:
ks-1,i,j,1) = 0.0_rp
198 interp_xi2z_coef( 1:
ks-1,i,j,2) = 0.0_rp
199 interp_xi2z_coef( 1:
ks-1,i,j,3) = 1.0_rp
201 interp_xi2z_idx(
ke+1:
ka,i,j,1) =
ke 202 interp_xi2z_idx(
ke+1:
ka,i,j,2) =
ke 203 interp_xi2z_coef(
ke+1:
ka,i,j,1) = 0.0_rp
204 interp_xi2z_coef(
ke+1:
ka,i,j,2) = 0.0_rp
205 interp_xi2z_coef(
ke+1:
ka,i,j,3) = 1.0_rp
207 interp_z2xi_idx( 1:
ks-1,i,j,1) =
ks 208 interp_z2xi_idx( 1:
ks-1,i,j,2) =
ks 209 interp_z2xi_coef( 1:
ks-1,i,j,1) = 0.0_rp
210 interp_z2xi_coef( 1:
ks-1,i,j,2) = 0.0_rp
211 interp_z2xi_coef( 1:
ks-1,i,j,3) = 1.0_rp
213 interp_z2xi_idx(
ke+1:
ka,i,j,1) =
ke 214 interp_z2xi_idx(
ke+1:
ka,i,j,2) =
ke 215 interp_z2xi_coef(
ke+1:
ka,i,j,1) = 0.0_rp
216 interp_z2xi_coef(
ke+1:
ka,i,j,2) = 0.0_rp
217 interp_z2xi_coef(
ke+1:
ka,i,j,3) = 1.0_rp
233 real(RP),
intent(in) :: var (
ka,
ia,
ja)
234 real(RP),
intent(out) :: var_Z(
ka,
ia,
ja)
242 var_z(k,i,j) = interp_xi2z_coef(k,i,j,1) * var(interp_xi2z_idx(k,i,j,1),i,j) &
243 + interp_xi2z_coef(k,i,j,2) * var(interp_xi2z_idx(k,i,j,2),i,j) &
270 real(RP),
intent(in) :: var (
ka,
ia,
ja)
271 real(RP),
intent(out) :: var_Xi(
ka,
ia,
ja)
279 var_xi(k,i,j) = interp_z2xi_coef(k,i,j,1) * var(interp_z2xi_idx(k,i,j,1),i,j) &
280 + interp_z2xi_coef(k,i,j,2) * var(interp_z2xi_idx(k,i,j,2),i,j) &
subroutine, public interp_setup
Setup.
logical, public io_l
output log or not? (this process)
real(rp), dimension(:), allocatable, public grid_cz
center coordinate [m]: z, local=global
integer, public ke
end point of inner domain: z, local
real(rp), dimension(:,:,:), allocatable, public real_fz
geopotential height [m] (cell face )
subroutine, public interp_vertical_xi2z(var, var_Z)
Reset random seed.
real(rp), dimension(:,:,:), allocatable, public real_cz
geopotential height [m] (cell center)
real(rp), public const_undef
integer, public ia
of x whole cells (local, with HALO)
integer, public ka
of z whole cells (local, with HALO)
real(rp), dimension(:), allocatable, public grid_fz
face coordinate [m]: z, local=global
integer, public ks
start point of inner domain: z, local
logical, public topo_exist
topography exists?
logical, public interp_available
vertical interpolation is available? (have meaning?)
subroutine, public interp_vertical_z2xi(var, var_Xi)
Reset random seed.
integer, public io_fid_log
Log file ID.
integer, public ja
of y whole cells (local, with HALO)