39 private :: make_ens_2d
40 private :: make_ens_3d
41 private :: make_output
49 real(RP),
allocatable :: QHYD(:,:,:,:)
51 real(RP),
allocatable :: RH (:,:,:)
52 real(RP),
allocatable :: Qdry (:,:,:)
53 real(RP),
allocatable :: Rtot (:,:,:)
54 real(RP),
allocatable :: CVtot(:,:,:)
55 real(RP),
allocatable :: CPtot(:,:,:)
57 real(RP),
allocatable :: PREC(:,:)
59 real(RP),
allocatable :: ENS_mean_DENS(:,:,:)
60 real(RP),
allocatable :: ENS_mean_MOMX(:,:,:)
61 real(RP),
allocatable :: ENS_mean_MOMY(:,:,:)
62 real(RP),
allocatable :: ENS_mean_MOMZ(:,:,:)
63 real(RP),
allocatable :: ENS_mean_RHOT(:,:,:)
64 real(RP),
allocatable :: ENS_mean_U (:,:,:)
65 real(RP),
allocatable :: ENS_mean_V (:,:,:)
66 real(RP),
allocatable :: ENS_mean_W (:,:,:)
67 real(RP),
allocatable :: ENS_mean_TEMP(:,:,:)
68 real(RP),
allocatable :: ENS_mean_PRES(:,:,:)
69 real(RP),
allocatable :: ENS_mean_QV (:,:,:)
70 real(RP),
allocatable :: ENS_mean_QC (:,:,:)
71 real(RP),
allocatable :: ENS_mean_QR (:,:,:)
72 real(RP),
allocatable :: ENS_mean_QI (:,:,:)
73 real(RP),
allocatable :: ENS_mean_QS (:,:,:)
74 real(RP),
allocatable :: ENS_mean_QG (:,:,:)
75 real(RP),
allocatable :: ENS_mean_RH (:,:,:)
77 real(RP),
allocatable :: ENS_sprd_DENS(:,:,:)
78 real(RP),
allocatable :: ENS_sprd_MOMX(:,:,:)
79 real(RP),
allocatable :: ENS_sprd_MOMY(:,:,:)
80 real(RP),
allocatable :: ENS_sprd_MOMZ(:,:,:)
81 real(RP),
allocatable :: ENS_sprd_RHOT(:,:,:)
82 real(RP),
allocatable :: ENS_sprd_U (:,:,:)
83 real(RP),
allocatable :: ENS_sprd_V (:,:,:)
84 real(RP),
allocatable :: ENS_sprd_W (:,:,:)
85 real(RP),
allocatable :: ENS_sprd_TEMP(:,:,:)
86 real(RP),
allocatable :: ENS_sprd_PRES(:,:,:)
87 real(RP),
allocatable :: ENS_sprd_QV (:,:,:)
88 real(RP),
allocatable :: ENS_sprd_QC (:,:,:)
89 real(RP),
allocatable :: ENS_sprd_QR (:,:,:)
90 real(RP),
allocatable :: ENS_sprd_QI (:,:,:)
91 real(RP),
allocatable :: ENS_sprd_QS (:,:,:)
92 real(RP),
allocatable :: ENS_sprd_QG (:,:,:)
93 real(RP),
allocatable :: ENS_sprd_RH (:,:,:)
141 log_info(
"DA_driver_setup",*)
'Setup'
145 else if( rp ==
dp )
then
146 datatype = mpi_double_precision
148 log_error(
"DA_driver_setup",*)
'The precision has not been implemented yet:', rp
154 log_info(
"DA_driver_setup",*)
'ENSEMBLE myrank/nprocs:', ensemble_myrank, ensemble_nprocs
157 qhyd(:,:,:,:) = 0.0_rp
159 allocate( rh(
ka,
ia,
ja ) )
160 allocate( qdry(
ka,
ia,
ja ) )
161 allocate( rtot(
ka,
ia,
ja ) )
162 allocate( cvtot(
ka,
ia,
ja ) )
163 allocate( cptot(
ka,
ia,
ja ) )
167 cvtot(:,:,:) = 0.0_rp
168 cptot(:,:,:) = 0.0_rp
170 allocate( prec(
ia,
ja ) )
173 allocate( ens_mean_dens(
ka,
ia,
ja) )
174 allocate( ens_mean_momx(
ka,
ia,
ja) )
175 allocate( ens_mean_momy(
ka,
ia,
ja) )
176 allocate( ens_mean_momz(
ka,
ia,
ja) )
177 allocate( ens_mean_rhot(
ka,
ia,
ja) )
178 allocate( ens_mean_u(
ka,
ia,
ja) )
179 allocate( ens_mean_v(
ka,
ia,
ja) )
180 allocate( ens_mean_w(
ka,
ia,
ja) )
181 allocate( ens_mean_temp(
ka,
ia,
ja) )
182 allocate( ens_mean_pres(
ka,
ia,
ja) )
183 allocate( ens_mean_qv(
ka,
ia,
ja) )
184 allocate( ens_mean_qc(
ka,
ia,
ja) )
185 allocate( ens_mean_qr(
ka,
ia,
ja) )
186 allocate( ens_mean_qi(
ka,
ia,
ja) )
187 allocate( ens_mean_qs(
ka,
ia,
ja) )
188 allocate( ens_mean_qg(
ka,
ia,
ja) )
189 allocate( ens_mean_rh(
ka,
ia,
ja) )
190 ens_mean_dens(:,:,:) = 0.0_rp
191 ens_mean_momx(:,:,:) = 0.0_rp
192 ens_mean_momy(:,:,:) = 0.0_rp
193 ens_mean_momz(:,:,:) = 0.0_rp
194 ens_mean_rhot(:,:,:) = 0.0_rp
195 ens_mean_u(:,:,:) = 0.0_rp
196 ens_mean_v(:,:,:) = 0.0_rp
197 ens_mean_w(:,:,:) = 0.0_rp
198 ens_mean_temp(:,:,:) = 0.0_rp
199 ens_mean_pres(:,:,:) = 0.0_rp
200 ens_mean_qv(:,:,:) = 0.0_rp
201 ens_mean_qc(:,:,:) = 0.0_rp
202 ens_mean_qr(:,:,:) = 0.0_rp
203 ens_mean_qi(:,:,:) = 0.0_rp
204 ens_mean_qs(:,:,:) = 0.0_rp
205 ens_mean_qg(:,:,:) = 0.0_rp
206 ens_mean_rh(:,:,:) = 0.0_rp
208 allocate( ens_sprd_dens(
ka,
ia,
ja) )
209 allocate( ens_sprd_momx(
ka,
ia,
ja) )
210 allocate( ens_sprd_momy(
ka,
ia,
ja) )
211 allocate( ens_sprd_momz(
ka,
ia,
ja) )
212 allocate( ens_sprd_rhot(
ka,
ia,
ja) )
213 allocate( ens_sprd_u(
ka,
ia,
ja) )
214 allocate( ens_sprd_v(
ka,
ia,
ja) )
215 allocate( ens_sprd_w(
ka,
ia,
ja) )
216 allocate( ens_sprd_temp(
ka,
ia,
ja) )
217 allocate( ens_sprd_pres(
ka,
ia,
ja) )
218 allocate( ens_sprd_qv(
ka,
ia,
ja) )
219 allocate( ens_sprd_qc(
ka,
ia,
ja) )
220 allocate( ens_sprd_qr(
ka,
ia,
ja) )
221 allocate( ens_sprd_qi(
ka,
ia,
ja) )
222 allocate( ens_sprd_qs(
ka,
ia,
ja) )
223 allocate( ens_sprd_qg(
ka,
ia,
ja) )
224 allocate( ens_sprd_rh(
ka,
ia,
ja) )
225 ens_sprd_dens(:,:,:) = 0.0_rp
226 ens_sprd_momx(:,:,:) = 0.0_rp
227 ens_sprd_momy(:,:,:) = 0.0_rp
228 ens_sprd_momz(:,:,:) = 0.0_rp
229 ens_sprd_rhot(:,:,:) = 0.0_rp
230 ens_sprd_u(:,:,:) = 0.0_rp
231 ens_sprd_v(:,:,:) = 0.0_rp
232 ens_sprd_w(:,:,:) = 0.0_rp
233 ens_sprd_temp(:,:,:) = 0.0_rp
234 ens_sprd_pres(:,:,:) = 0.0_rp
235 ens_sprd_qv(:,:,:) = 0.0_rp
236 ens_sprd_qc(:,:,:) = 0.0_rp
237 ens_sprd_qr(:,:,:) = 0.0_rp
238 ens_sprd_qi(:,:,:) = 0.0_rp
239 ens_sprd_qs(:,:,:) = 0.0_rp
240 ens_sprd_qg(:,:,:) = 0.0_rp
241 ens_sprd_rh(:,:,:) = 0.0_rp
283 log_info(
"DA_driver_finalize",*)
'Finalize'
295 deallocate( ens_mean_dens )
296 deallocate( ens_mean_momx )
297 deallocate( ens_mean_momy )
298 deallocate( ens_mean_momz )
299 deallocate( ens_mean_rhot )
300 deallocate( ens_mean_u )
301 deallocate( ens_mean_v )
302 deallocate( ens_mean_w )
303 deallocate( ens_mean_temp )
304 deallocate( ens_mean_pres )
305 deallocate( ens_mean_qv )
306 deallocate( ens_mean_qc )
307 deallocate( ens_mean_qr )
308 deallocate( ens_mean_qi )
309 deallocate( ens_mean_qs )
310 deallocate( ens_mean_qg )
311 deallocate( ens_mean_rh )
313 deallocate( ens_sprd_u )
314 deallocate( ens_sprd_v )
315 deallocate( ens_sprd_w )
316 deallocate( ens_sprd_temp )
317 deallocate( ens_sprd_pres )
318 deallocate( ens_sprd_qv )
319 deallocate( ens_sprd_qc )
320 deallocate( ens_sprd_qr )
321 deallocate( ens_sprd_qi )
322 deallocate( ens_sprd_qs )
323 deallocate( ens_sprd_qg )
324 deallocate( ens_sprd_rh )
357 atmos_thermodyn_specific_heat
373 atmos_vars_get_diagnostic, &
411 character(len=H_LONG) :: filename
431 call atmos_vars_get_diagnostic(
'RH', rh(:,:,:) )
432 call atmos_vars_get_diagnostic(
'PREC', prec(:,:) )
434 rh(:,:,:) = rh(:,:,:) * 0.01_rp
437 u,
v,
w,
temp,
pres,
qv,
qc,
qr,
qi,
qs,
qg, rh, hgt, &
438 topo, ps, prec, u10m, v10m, t2m, q2m )
448 call make_output(
'GUES' )
481 qv(:,:,:) = max(
qv(:,:,:), 0.0_rp )
484 qc(:,:,:) = max(
qc(:,:,:), 0.0_rp )
485 qr(:,:,:) = max(
qr(:,:,:), 0.0_rp )
486 qi(:,:,:) = max(
qi(:,:,:), 0.0_rp )
487 qs(:,:,:) = max(
qs(:,:,:), 0.0_rp )
488 qg(:,:,:) = max(
qg(:,:,:), 0.0_rp )
497 qhyd(k,i,j,
i_hc) =
qc(k,i,j)
498 qhyd(k,i,j,
i_hr) =
qr(k,i,j)
499 qhyd(k,i,j,
i_hi) =
qi(k,i,j)
500 qhyd(k,i,j,
i_hs) =
qs(k,i,j)
501 qhyd(k,i,j,
i_hg) =
qg(k,i,j)
513 call atmos_thermodyn_specific_heat( &
514 ka,
ks,
ke,
ia,
is,
ie,
ja,
js,
je,
qa, &
517 qdry(:,:,:), rtot(:,:,:), cvtot(:,:,:), cptot(:,:,:) )
522 dens(k,i,j) =
pres(k,i,j) / (
temp(k,i,j) * rtot(k,i,j) )
523 pott(k,i,j) =
temp(k,i,j) * ( pre00 /
pres(k,i,j) )**(rtot(k,i,j)/cptot(k,i,j))
532 momz(k,i,j) = 0.5_rp * (
w(k,i,j)*
dens(k,i,j) +
w(k+1,i,j)*
dens(k+1,i,j) )
545 momx(k,i,j) = 0.5_rp * (
u(k,i,j)*
dens(k,i,j) +
u(k,i+1,j)*
dens(k,i+1,j) )
558 momy(k,i,j) = 0.5_rp * (
v(k,i,j)*
dens(k,i,j) +
v(k,i,j+1)*
dens(k,i,j+1) )
571 call make_output(
'ANLS' )
579 subroutine make_ens_2d( &
595 average => statistics_average, &
596 stddev => statistics_stddev
599 integer,
intent(in) :: imax
600 integer,
intent(in) :: jmax
601 real(rp),
intent(in) :: invar2d(:,:)
602 real(rp),
intent(out) :: mean2d (:,:)
603 real(rp),
intent(out) :: sprd2d (:,:)
605 real(rp) :: send(imax*jmax*ensemble_nprocs)
606 real(rp) :: recv(imax*jmax*ensemble_nprocs)
607 real(rp) :: work(imax,jmax,ensemble_nprocs)
614 datasize = imax * jmax
620 send( i + (j-1)*imax + ensemble_myrank*imax*jmax ) = invar2d(i,j)
624 n = ensemble_myrank * datasize + 1
626 call mpi_allgather( send(n), &
639 do n = 1, ensemble_nprocs
640 work(i,j,n) = recv( i + (j-1)*imax + (n-1)*imax*jmax )
642 mean2d(i,j) = average( ensemble_nprocs, work(i,j,:), undef )
643 sprd2d(i,j) = stddev( ensemble_nprocs, work(i,j,:), undef )
648 end subroutine make_ens_2d
650 subroutine make_ens_3d( &
667 average => statistics_average, &
668 stddev => statistics_stddev
671 integer,
intent(in) :: kmax
672 integer,
intent(in) :: imax
673 integer,
intent(in) :: jmax
674 real(rp),
intent(in) :: invar3d(1:kmax,1:imax,1:jmax)
675 real(rp),
intent(out) :: mean3d (1:kmax,1:imax,1:jmax)
676 real(rp),
intent(out) :: sprd3d (1:kmax,1:imax,1:jmax)
678 real(rp) :: send(kmax*imax*jmax*ensemble_nprocs)
679 real(rp) :: recv(kmax*imax*jmax*ensemble_nprocs)
680 real(rp) :: work(kmax,imax,jmax,ensemble_nprocs)
683 integer :: k, i, j, n
687 datasize = kmax * imax * jmax
694 send( k + (i-1)*kmax + (j-1)*kmax*imax + ensemble_myrank*kmax*imax*jmax ) = invar3d(k,i,j)
699 n = ensemble_myrank * datasize + 1
701 call mpi_allgather( send(n), &
715 do n = 1, ensemble_nprocs
716 work(k,i,j,n) = recv( k + (i-1)*kmax + (j-1)*kmax*imax + (n-1)*kmax*imax*jmax )
718 mean3d(k,i,j) = average( ensemble_nprocs, work(k,i,j,:), undef )
719 sprd3d(k,i,j) = stddev( ensemble_nprocs, work(k,i,j,:), undef )
725 end subroutine make_ens_3d
727 subroutine make_output( PREFIX )
738 atmos_vars_get_diagnostic, &
759 character(len=4),
intent(in) :: prefix
762 call atmos_vars_get_diagnostic(
'RH', rh(:,:,:) )
764 call file_history_in(
dens(:,:,:), trim(prefix)//
'_DENS',
'DENS for '//trim(prefix),
'kg/m3' )
765 call file_history_in(
momx(:,:,:), trim(prefix)//
'_MOMX',
'MOMX for '//trim(prefix),
'kg/m2/s' )
766 call file_history_in(
momy(:,:,:), trim(prefix)//
'_MOMY',
'MOMY for '//trim(prefix),
'kg/m2/s' )
767 call file_history_in(
momz(:,:,:), trim(prefix)//
'_MOMZ',
'MOMZ for '//trim(prefix),
'kg/m2/s' )
768 call file_history_in(
rhot(:,:,:), trim(prefix)//
'_RHOT',
'RHOT for '//trim(prefix),
'K*kg/m3' )
769 call file_history_in(
u(:,:,:), trim(prefix)//
'_U',
'U for '//trim(prefix),
'm/s' )
770 call file_history_in(
v(:,:,:), trim(prefix)//
'_V',
'V for '//trim(prefix),
'm/s' )
771 call file_history_in(
w(:,:,:), trim(prefix)//
'_W',
'W for '//trim(prefix),
'm/s' )
772 call file_history_in(
temp(:,:,:), trim(prefix)//
'_T',
'TEMP for '//trim(prefix),
'K' )
773 call file_history_in(
pres(:,:,:), trim(prefix)//
'_PRES',
'PRES for '//trim(prefix),
'Pa' )
774 call file_history_in(
qv(:,:,:), trim(prefix)//
'_QV',
'QV for '//trim(prefix),
'kg/kg' )
775 call file_history_in(
qc(:,:,:), trim(prefix)//
'_QC',
'QC for '//trim(prefix),
'kg/kg' )
776 call file_history_in(
qr(:,:,:), trim(prefix)//
'_QR',
'QR for '//trim(prefix),
'kg/kg' )
777 call file_history_in(
qi(:,:,:), trim(prefix)//
'_QI',
'QI for '//trim(prefix),
'kg/kg' )
778 call file_history_in(
qs(:,:,:), trim(prefix)//
'_QS',
'QS for '//trim(prefix),
'kg/kg' )
779 call file_history_in(
qg(:,:,:), trim(prefix)//
'_QG',
'QG for '//trim(prefix),
'kg/kg' )
780 call file_history_in( rh(:,:,:), trim(prefix)//
'_RH',
'RH for '//trim(prefix),
'%' )
786 call make_ens_3d(
kmax,
imax,
jmax,
dens(
ks:
ke,
is:
ie,
js:
je), ens_mean_dens(
ks:
ke,
is:
ie,
js:
je), ens_sprd_dens(
ks:
ke,
is:
ie,
js:
je) )
787 call make_ens_3d(
kmax,
imax,
jmax,
momx(
ks:
ke,
is:
ie,
js:
je), ens_mean_momx(
ks:
ke,
is:
ie,
js:
je), ens_sprd_momx(
ks:
ke,
is:
ie,
js:
je) )
788 call make_ens_3d(
kmax,
imax,
jmax,
momy(
ks:
ke,
is:
ie,
js:
je), ens_mean_momy(
ks:
ke,
is:
ie,
js:
je), ens_sprd_momy(
ks:
ke,
is:
ie,
js:
je) )
789 call make_ens_3d(
kmax,
imax,
jmax,
momz(
ks:
ke,
is:
ie,
js:
je), ens_mean_momz(
ks:
ke,
is:
ie,
js:
je), ens_sprd_momz(
ks:
ke,
is:
ie,
js:
je) )
790 call make_ens_3d(
kmax,
imax,
jmax,
rhot(
ks:
ke,
is:
ie,
js:
je), ens_mean_rhot(
ks:
ke,
is:
ie,
js:
je), ens_sprd_rhot(
ks:
ke,
is:
ie,
js:
je) )
791 call make_ens_3d(
kmax,
imax,
jmax,
u(
ks:
ke,
is:
ie,
js:
je), ens_mean_u(
ks:
ke,
is:
ie,
js:
je), ens_sprd_u(
ks:
ke,
is:
ie,
js:
je) )
792 call make_ens_3d(
kmax,
imax,
jmax,
v(
ks:
ke,
is:
ie,
js:
je), ens_mean_v(
ks:
ke,
is:
ie,
js:
je), ens_sprd_v(
ks:
ke,
is:
ie,
js:
je) )
793 call make_ens_3d(
kmax,
imax,
jmax,
w(
ks:
ke,
is:
ie,
js:
je), ens_mean_w(
ks:
ke,
is:
ie,
js:
je), ens_sprd_w(
ks:
ke,
is:
ie,
js:
je) )
794 call make_ens_3d(
kmax,
imax,
jmax,
temp(
ks:
ke,
is:
ie,
js:
je), ens_mean_temp(
ks:
ke,
is:
ie,
js:
je), ens_sprd_temp(
ks:
ke,
is:
ie,
js:
je) )
795 call make_ens_3d(
kmax,
imax,
jmax,
pres(
ks:
ke,
is:
ie,
js:
je), ens_mean_pres(
ks:
ke,
is:
ie,
js:
je), ens_sprd_pres(
ks:
ke,
is:
ie,
js:
je) )
796 call make_ens_3d(
kmax,
imax,
jmax,
qv(
ks:
ke,
is:
ie,
js:
je), ens_mean_qv(
ks:
ke,
is:
ie,
js:
je), ens_sprd_qv(
ks:
ke,
is:
ie,
js:
je) )
797 call make_ens_3d(
kmax,
imax,
jmax,
qc(
ks:
ke,
is:
ie,
js:
je), ens_mean_qc(
ks:
ke,
is:
ie,
js:
je), ens_sprd_qc(
ks:
ke,
is:
ie,
js:
je) )
798 call make_ens_3d(
kmax,
imax,
jmax,
qr(
ks:
ke,
is:
ie,
js:
je), ens_mean_qr(
ks:
ke,
is:
ie,
js:
je), ens_sprd_qr(
ks:
ke,
is:
ie,
js:
je) )
799 call make_ens_3d(
kmax,
imax,
jmax,
qi(
ks:
ke,
is:
ie,
js:
je), ens_mean_qi(
ks:
ke,
is:
ie,
js:
je), ens_sprd_qi(
ks:
ke,
is:
ie,
js:
je) )
800 call make_ens_3d(
kmax,
imax,
jmax,
qs(
ks:
ke,
is:
ie,
js:
je), ens_mean_qs(
ks:
ke,
is:
ie,
js:
je), ens_sprd_qs(
ks:
ke,
is:
ie,
js:
je) )
801 call make_ens_3d(
kmax,
imax,
jmax,
qg(
ks:
ke,
is:
ie,
js:
je), ens_mean_qg(
ks:
ke,
is:
ie,
js:
je), ens_sprd_qg(
ks:
ke,
is:
ie,
js:
je) )
802 call make_ens_3d(
kmax,
imax,
jmax, rh(
ks:
ke,
is:
ie,
js:
je), ens_mean_rh(
ks:
ke,
is:
ie,
js:
je), ens_sprd_rh(
ks:
ke,
is:
ie,
js:
je) )
804 call file_history_in( ens_mean_dens(:,:,:), trim(prefix)//
'_mean_DENS',
'Ensemble mean of DENS for '//trim(prefix),
'kg/m3' )
805 call file_history_in( ens_mean_momx(:,:,:), trim(prefix)//
'_mean_MOMX',
'Ensemble mean of MOMX for '//trim(prefix),
'kg/m2/s' )
806 call file_history_in( ens_mean_momy(:,:,:), trim(prefix)//
'_mean_MOMY',
'Ensemble mean of MOMY for '//trim(prefix),
'kg/m2/s' )
807 call file_history_in( ens_mean_momz(:,:,:), trim(prefix)//
'_mean_MOMZ',
'Ensemble mean of MOMZ for '//trim(prefix),
'kg/m2/s' )
808 call file_history_in( ens_mean_rhot(:,:,:), trim(prefix)//
'_mean_RHOT',
'Ensemble mean of RHOT for '//trim(prefix),
'K*kg/m3' )
809 call file_history_in( ens_mean_u(:,:,:), trim(prefix)//
'_mean_U',
'Ensemble mean of U for '//trim(prefix),
'm/s' )
810 call file_history_in( ens_mean_v(:,:,:), trim(prefix)//
'_mean_V',
'Ensemble mean of V for '//trim(prefix),
'm/s' )
811 call file_history_in( ens_mean_w(:,:,:), trim(prefix)//
'_mean_W',
'Ensemble mean of W for '//trim(prefix),
'm/s' )
812 call file_history_in( ens_mean_temp(:,:,:), trim(prefix)//
'_mean_T',
'Ensemble mean of TEMP for '//trim(prefix),
'K' )
813 call file_history_in( ens_mean_pres(:,:,:), trim(prefix)//
'_mean_PRES',
'Ensemble mean of PRES for '//trim(prefix),
'Pa' )
814 call file_history_in( ens_mean_qv(:,:,:), trim(prefix)//
'_mean_QV',
'Ensemble mean of QV for '//trim(prefix),
'kg/kg' )
815 call file_history_in( ens_mean_qc(:,:,:), trim(prefix)//
'_mean_QC',
'Ensemble mean of QC for '//trim(prefix),
'kg/kg' )
816 call file_history_in( ens_mean_qr(:,:,:), trim(prefix)//
'_mean_QR',
'Ensemble mean of QR for '//trim(prefix),
'kg/kg' )
817 call file_history_in( ens_mean_qi(:,:,:), trim(prefix)//
'_mean_QI',
'Ensemble mean of QI for '//trim(prefix),
'kg/kg' )
818 call file_history_in( ens_mean_qs(:,:,:), trim(prefix)//
'_mean_QS',
'Ensemble mean of QS for '//trim(prefix),
'kg/kg' )
819 call file_history_in( ens_mean_qg(:,:,:), trim(prefix)//
'_mean_QG',
'Ensemble mean of QG for '//trim(prefix),
'kg/kg' )
820 call file_history_in( ens_mean_rh(:,:,:), trim(prefix)//
'_mean_RH',
'Ensemble mean of RH for '//trim(prefix),
'%' )
822 call file_history_in( ens_sprd_dens(:,:,:), trim(prefix)//
'_sprd_DENS',
'Ensemble spread of DENS for '//trim(prefix),
'kg/m3' )
823 call file_history_in( ens_sprd_momx(:,:,:), trim(prefix)//
'_sprd_MOMX',
'Ensemble spread of MOMX for '//trim(prefix),
'kg/m2/s' )
824 call file_history_in( ens_sprd_momy(:,:,:), trim(prefix)//
'_sprd_MOMY',
'Ensemble spread of MOMY for '//trim(prefix),
'kg/m2/s' )
825 call file_history_in( ens_sprd_momz(:,:,:), trim(prefix)//
'_sprd_MOMZ',
'Ensemble spread of MOMZ for '//trim(prefix),
'kg/m2/s' )
826 call file_history_in( ens_sprd_rhot(:,:,:), trim(prefix)//
'_sprd_RHOT',
'Ensemble spread of RHOT for '//trim(prefix),
'K*kg/m3' )
827 call file_history_in( ens_sprd_u(:,:,:), trim(prefix)//
'_sprd_U',
'Ensemble spread of U for '//trim(prefix),
'm/s' )
828 call file_history_in( ens_sprd_v(:,:,:), trim(prefix)//
'_sprd_V',
'Ensemble spread of V for '//trim(prefix),
'm/s' )
829 call file_history_in( ens_sprd_w(:,:,:), trim(prefix)//
'_sprd_W',
'Ensemble spread of W for '//trim(prefix),
'm/s' )
830 call file_history_in( ens_sprd_temp(:,:,:), trim(prefix)//
'_sprd_T',
'Ensemble spread of TEMP for '//trim(prefix),
'K' )
831 call file_history_in( ens_sprd_pres(:,:,:), trim(prefix)//
'_sprd_PRES',
'Ensemble spread of PRES for '//trim(prefix),
'Pa' )
832 call file_history_in( ens_sprd_qv(:,:,:), trim(prefix)//
'_sprd_QV',
'Ensemble spread of QV for '//trim(prefix),
'kg/kg' )
833 call file_history_in( ens_sprd_qc(:,:,:), trim(prefix)//
'_sprd_QC',
'Ensemble spread of QC for '//trim(prefix),
'kg/kg' )
834 call file_history_in( ens_sprd_qr(:,:,:), trim(prefix)//
'_sprd_QR',
'Ensemble spread of QR for '//trim(prefix),
'kg/kg' )
835 call file_history_in( ens_sprd_qi(:,:,:), trim(prefix)//
'_sprd_QI',
'Ensemble spread of QI for '//trim(prefix),
'kg/kg' )
836 call file_history_in( ens_sprd_qs(:,:,:), trim(prefix)//
'_sprd_QS',
'Ensemble spread of QS for '//trim(prefix),
'kg/kg' )
837 call file_history_in( ens_sprd_qg(:,:,:), trim(prefix)//
'_sprd_QG',
'Ensemble spread of QG for '//trim(prefix),
'kg/kg' )
838 call file_history_in( ens_sprd_rh(:,:,:), trim(prefix)//
'_sprd_RH',
'Ensemble spread of RH for '//trim(prefix),
'%' )
842 end subroutine make_output