16 #include "inc_openmp.h" 69 real(RP),
public,
target,
allocatable ::
dens(:,:,:)
70 real(RP),
public,
target,
allocatable ::
momz(:,:,:)
71 real(RP),
public,
target,
allocatable ::
momx(:,:,:)
72 real(RP),
public,
target,
allocatable ::
momy(:,:,:)
73 real(RP),
public,
target,
allocatable ::
rhot(:,:,:)
74 real(RP),
public,
target,
allocatable ::
qtrc(:,:,:,:)
76 real(RP),
public,
target,
allocatable ::
dens_avw(:,:,:)
77 real(RP),
public,
target,
allocatable ::
momz_avw(:,:,:)
78 real(RP),
public,
target,
allocatable ::
momx_avw(:,:,:)
79 real(RP),
public,
target,
allocatable ::
momy_avw(:,:,:)
80 real(RP),
public,
target,
allocatable ::
rhot_avw(:,:,:)
81 real(RP),
public,
target,
allocatable ::
qtrc_avw(:,:,:,:)
83 real(RP),
public,
pointer ::
dens_av(:,:,:)
84 real(RP),
public,
pointer ::
momz_av(:,:,:)
85 real(RP),
public,
pointer ::
momx_av(:,:,:)
86 real(RP),
public,
pointer ::
momy_av(:,:,:)
87 real(RP),
public,
pointer ::
rhot_av(:,:,:)
88 real(RP),
public,
pointer ::
qtrc_av(:,:,:,:)
91 real(RP),
public,
allocatable ::
dens_tp(:,:,:)
92 real(RP),
public,
allocatable ::
momz_tp(:,:,:)
93 real(RP),
public,
allocatable ::
momx_tp(:,:,:)
94 real(RP),
public,
allocatable ::
momy_tp(:,:,:)
95 real(RP),
public,
allocatable ::
rhot_tp(:,:,:)
96 real(RP),
public,
allocatable ::
rhoq_tp(:,:,:,:)
99 real(RP),
public,
allocatable ::
temp(:,:,:)
100 real(RP),
public,
allocatable ::
pres(:,:,:)
101 real(RP),
public,
allocatable ::
w (:,:,:)
102 real(RP),
public,
allocatable ::
u (:,:,:)
103 real(RP),
public,
allocatable ::
v (:,:,:)
104 real(RP),
public,
allocatable ::
pott(:,:,:)
114 logical,
private :: atmos_vars_checkrange = .false.
115 real(RP),
private :: atmos_vars_checkcfl = 0.0_rp
117 integer,
private,
parameter :: vmax = 5
119 character(len=H_SHORT),
private :: var_name(vmax)
120 character(len=H_MID),
private :: var_desc(vmax)
121 character(len=H_SHORT),
private :: var_unit(vmax)
122 integer,
private,
allocatable :: var_id(:)
123 integer,
private :: restart_fid = -1
125 data var_name /
'DENS', &
130 data var_desc /
'density', &
135 data var_unit /
'kg/m3', &
142 integer,
private :: var_hist_id(vmax)
144 integer,
private,
allocatable :: aq_hist_id(:)
147 integer,
private,
parameter :: ad_nmax = 70
149 integer,
private,
parameter :: i_w = 1
150 integer,
private,
parameter :: i_u = 2
151 integer,
private,
parameter :: i_v = 3
152 integer,
private,
parameter :: i_pott = 4
154 integer,
private,
parameter :: i_qdry = 5
155 integer,
private,
parameter :: i_qtot = 6
156 integer,
private,
parameter :: i_qhyd = 7
157 integer,
private,
parameter :: i_qliq = 8
158 integer,
private,
parameter :: i_qice = 9
160 integer,
private,
parameter :: i_lwp = 10
161 integer,
private,
parameter :: i_iwp = 11
162 integer,
private,
parameter :: i_pw = 12
164 integer,
private,
parameter :: i_rtot = 13
165 integer,
private,
parameter :: i_cptot = 14
166 integer,
private,
parameter :: i_pres = 15
167 integer,
private,
parameter :: i_temp = 16
169 integer,
private,
parameter :: i_potl = 17
170 integer,
private,
parameter :: i_rha = 18
171 integer,
private,
parameter :: i_rhl = 19
172 integer,
private,
parameter :: i_rhi = 20
174 integer,
private,
parameter :: i_vor = 21
175 integer,
private,
parameter :: i_div = 22
176 integer,
private,
parameter :: i_hdiv = 23
178 integer,
private,
parameter :: i_dens_prim = 24
179 integer,
private,
parameter :: i_w_prim = 25
180 integer,
private,
parameter :: i_u_prim = 26
181 integer,
private,
parameter :: i_v_prim = 27
182 integer,
private,
parameter :: i_pott_prim = 28
183 integer,
private,
parameter :: i_w_prim2 = 29
184 integer,
private,
parameter :: i_pt_w_prim = 30
185 integer,
private,
parameter :: i_w_prim3 = 31
186 integer,
private,
parameter :: i_tke_rs = 32
188 integer,
private,
parameter :: i_engp = 33
189 integer,
private,
parameter :: i_engk = 34
190 integer,
private,
parameter :: i_engi = 35
191 integer,
private,
parameter :: i_engt = 36
193 integer,
private,
parameter :: i_engsfc_sh = 37
194 integer,
private,
parameter :: i_engsfc_lh = 38
195 integer,
private,
parameter :: i_engsfc_rd = 39
196 integer,
private,
parameter :: i_engtoa_rd = 40
198 integer,
private,
parameter :: i_engsfc_lw_up = 41
199 integer,
private,
parameter :: i_engsfc_lw_dn = 42
200 integer,
private,
parameter :: i_engsfc_sw_up = 43
201 integer,
private,
parameter :: i_engsfc_sw_dn = 44
203 integer,
private,
parameter :: i_engtoa_lw_up = 45
204 integer,
private,
parameter :: i_engtoa_lw_dn = 46
205 integer,
private,
parameter :: i_engtoa_sw_up = 47
206 integer,
private,
parameter :: i_engtoa_sw_dn = 48
208 integer,
private,
parameter :: i_engflxt = 49
210 integer,
private,
parameter :: i_evap = 50
211 integer,
private,
parameter :: i_prcp = 51
213 integer,
private,
parameter :: i_dens_mean = 52
214 integer,
private,
parameter :: i_w_mean = 53
215 integer,
private,
parameter :: i_u_mean = 54
216 integer,
private,
parameter :: i_v_mean = 55
217 integer,
private,
parameter :: i_pott_mean = 56
218 integer,
private,
parameter :: i_t_mean = 57
220 integer,
private,
parameter :: i_qv_mean = 58
221 integer,
private,
parameter :: i_qhyd_mean = 59
222 integer,
private,
parameter :: i_qliq_mean = 60
223 integer,
private,
parameter :: i_qice_mean = 61
225 integer,
private,
parameter :: i_qsat = 62
227 integer,
private,
parameter :: i_uabs = 63
229 integer,
private,
parameter :: i_cape = 64
230 integer,
private,
parameter :: i_cin = 65
231 integer,
private,
parameter :: i_lcl = 66
232 integer,
private,
parameter :: i_lfc = 67
233 integer,
private,
parameter :: i_lnb = 68
235 integer,
private,
parameter :: i_pblh = 69
236 integer,
private,
parameter :: i_mse = 70
238 integer,
private :: ad_hist_id (ad_nmax)
239 integer,
private :: ad_prep_sw (ad_nmax)
240 integer,
private :: ad_monit_id(ad_nmax)
273 namelist / param_atmos_vars / &
283 atmos_vars_checkrange, &
292 if(
io_l )
write(
io_fid_log,*)
'++++++ Module[VARS] / Categ[ATMOS] / Origin[SCALE-RM]' 345 if(
io_l )
write(
io_fid_log,*)
'*** Not found namelist. Default used.' 346 elseif( ierr > 0 )
then 347 write(*,*)
'xxx Not appropriate names in namelist PARAM_ATMOS_VARS. Check!' 353 if(
io_l )
write(
io_fid_log,*)
'*** List of prognostic variables (ATMOS) ***' 355 '*** |',
'VARNAME ',
'|',
'DESCRIPTION ',
'[',
'UNIT ',
']' 358 '*** NO.',iv,
'|',var_name(iv),
'|', var_desc(iv),
'[', var_unit(iv),
']' 385 if(
io_l )
write(
io_fid_log,*)
'*** Check value range of variables? : ', atmos_vars_checkrange
386 if ( atmos_vars_checkcfl > 0.0_rp )
then 388 if(
io_l )
write(
io_fid_log,*)
'*** Limit of Courant number : ', atmos_vars_checkcfl
406 allocate( aq_hist_id(
qa))
423 call hist_reg( ad_hist_id(i_w ) , zinterp,
'W',
'velocity w',
'm/s', ndim=3 )
424 call hist_reg( ad_hist_id(i_u ) , zinterp,
'U',
'velocity u',
'm/s', ndim=3 )
425 call hist_reg( ad_hist_id(i_v ) , zinterp,
'V',
'velocity v',
'm/s', ndim=3 )
426 call hist_reg( ad_hist_id(i_pott) , zinterp,
'PT',
'potential temp.',
'K', ndim=3 )
428 call hist_reg( ad_hist_id(i_qdry) , zinterp,
'QDRY',
'dry air',
'kg/kg', ndim=3 )
429 call hist_reg( ad_hist_id(i_qtot) , zinterp,
'QTOT',
'total water',
'kg/kg', ndim=3 )
430 call hist_reg( ad_hist_id(i_qhyd) , zinterp,
'QHYD',
'total hydrometeors',
'kg/kg', ndim=3 )
431 call hist_reg( ad_hist_id(i_qliq) , zinterp,
'QLIQ',
'total liquid water',
'kg/kg', ndim=3 )
432 call hist_reg( ad_hist_id(i_qice) , zinterp,
'QICE',
'total ice water',
'kg/kg', ndim=3 )
434 call hist_reg( ad_hist_id(i_lwp) , zinterp,
'LWP',
'liquid water path',
'g/m2', ndim=2 )
435 call hist_reg( ad_hist_id(i_iwp) , zinterp,
'IWP',
'ice water path',
'g/m2', ndim=2 )
436 call hist_reg( ad_hist_id(i_pw ) , zinterp,
'PW',
'precipitable water',
'g/m2', ndim=2 )
438 call hist_reg( ad_hist_id(i_rtot) , zinterp,
'RTOT',
'Total gas constant',
'J/kg/K', ndim=3 )
439 call hist_reg( ad_hist_id(i_cptot), zinterp,
'CPTOT',
'Total heat capacity',
'J/kg/K', ndim=3 )
440 call hist_reg( ad_hist_id(i_pres) , zinterp,
'PRES',
'pressure',
'Pa', ndim=3 )
441 call hist_reg( ad_hist_id(i_temp) , zinterp,
'T',
'temperature',
'K', ndim=3 )
443 call hist_reg( ad_hist_id(i_potl) , zinterp,
'LWPT',
'liq. potential temp.',
'K', ndim=3 )
444 call hist_reg( ad_hist_id(i_rha) , zinterp,
'RHA',
'relative humidity(liq+ice)',
'%', ndim=3 )
445 call hist_reg( ad_hist_id(i_rhl) , zinterp,
'RH',
'relative humidity(liq)',
'%', ndim=3 )
446 call hist_reg( ad_hist_id(i_rhi) , zinterp,
'RHI',
'relative humidity(ice)',
'%', ndim=3 )
448 call hist_reg( ad_hist_id(i_vor) , zinterp,
'VOR',
'vertical vorticity',
'1/s', ndim=3 )
449 call hist_reg( ad_hist_id(i_div) , zinterp,
'DIV',
'divergence',
'1/s', ndim=3 )
450 call hist_reg( ad_hist_id(i_hdiv) , zinterp,
'HDIV',
'horizontal divergence',
'1/s', ndim=3 )
451 call hist_reg( ad_hist_id(i_uabs) , zinterp,
'Uabs',
'absolute velocity',
'm/s', ndim=3 )
453 call hist_reg( ad_hist_id(i_cape) , zinterp,
'CAPE',
'convection avail. pot. energy',
'm2/s2', ndim=2 )
454 call hist_reg( ad_hist_id(i_cin) , zinterp,
'CIN',
'convection inhibition',
'm2/s2', ndim=2 )
455 call hist_reg( ad_hist_id(i_lcl) , zinterp,
'LCL',
'lifted condensation level',
'm', ndim=2 )
456 call hist_reg( ad_hist_id(i_lfc) , zinterp,
'LFC',
'level of free convection',
'm', ndim=2 )
457 call hist_reg( ad_hist_id(i_lnb) , zinterp,
'LNB',
'level of neutral buoyancy',
'm', ndim=2 )
459 call hist_reg( ad_hist_id(i_pblh) , zinterp,
'PBLH',
'PBL height',
'm', ndim=2 )
460 call hist_reg( ad_hist_id(i_mse) , zinterp,
'MSE',
'moist static energy',
'm2/s2', ndim=3 )
462 call hist_reg( ad_hist_id(i_dens_mean), zinterp,
'DENS_MEAN',
'horiz. mean of density',
'kg/m3', ndim=1 )
463 call hist_reg( ad_hist_id(i_w_mean), zinterp,
'W_MEAN',
'horiz. mean of w',
'm/s', ndim=1 )
464 call hist_reg( ad_hist_id(i_u_mean), zinterp,
'U_MEAN',
'horiz. mean of u',
'm/s', ndim=1 )
465 call hist_reg( ad_hist_id(i_v_mean), zinterp,
'V_MEAN',
'horiz. mean of v',
'm/s', ndim=1 )
466 call hist_reg( ad_hist_id(i_pott_mean), zinterp,
'PT_MEAN',
'horiz. mean of pot.',
'K', ndim=1 )
467 call hist_reg( ad_hist_id(i_t_mean), zinterp,
'T_MEAN',
'horiz. mean of t',
'K', ndim=1 )
468 call hist_reg( ad_hist_id(i_qv_mean), zinterp,
'QV_MEAN',
'horiz. mean of QV',
'1', ndim=1 )
469 call hist_reg( ad_hist_id(i_qhyd_mean), zinterp,
'QHYD_MEAN',
'horiz. mean of QHYD',
'1', ndim=1 )
470 call hist_reg( ad_hist_id(i_qliq_mean), zinterp,
'QLIQ_MEAN',
'horiz. mean of QLIQ',
'1', ndim=1 )
471 call hist_reg( ad_hist_id(i_qice_mean), zinterp,
'QICE_MEAN',
'horiz. mean of QICE',
'1', ndim=1 )
473 call hist_reg( ad_hist_id(i_dens_prim), zinterp,
'DENS_PRIM',
'horiz. deviation of density',
'kg/m3', ndim=3 )
474 call hist_reg( ad_hist_id(i_w_prim ), zinterp,
'W_PRIM',
'horiz. deviation of w',
'm/s', ndim=3 )
475 call hist_reg( ad_hist_id(i_u_prim ), zinterp,
'U_PRIM',
'horiz. deviation of u',
'm/s', ndim=3 )
476 call hist_reg( ad_hist_id(i_v_prim ), zinterp,
'V_PRIM',
'horiz. deviation of v',
'm/s', ndim=3 )
477 call hist_reg( ad_hist_id(i_pott_prim), zinterp,
'PT_PRIM',
'horiz. deviation of pot. temp.',
'K', ndim=3 )
478 call hist_reg( ad_hist_id(i_w_prim2 ), zinterp,
'W_PRIM2',
'variance of w',
'm2/s2', ndim=3 )
479 call hist_reg( ad_hist_id(i_pt_w_prim), zinterp,
'PT_W_PRIM',
'resolved scale heat flux',
'W/s', ndim=3 )
480 call hist_reg( ad_hist_id(i_w_prim3 ), zinterp,
'W_PRIM3',
'skewness of w',
'm3/s3', ndim=3 )
481 call hist_reg( ad_hist_id(i_tke_rs ), zinterp,
'TKE_RS',
'resolved scale TKE',
'm2/s2', ndim=3 )
483 call hist_reg( ad_hist_id(i_engt) , zinterp,
'ENGT',
'total energy',
'J/m3', ndim=3 )
484 call hist_reg( ad_hist_id(i_engp) , zinterp,
'ENGP',
'potential energy',
'J/m3', ndim=3 )
485 call hist_reg( ad_hist_id(i_engk) , zinterp,
'ENGK',
'kinetic energy',
'J/m3', ndim=3 )
486 call hist_reg( ad_hist_id(i_engi) , zinterp,
'ENGI',
'internal energy',
'J/m3', ndim=3 )
490 call monit_reg( ad_monit_id(i_qdry),
'QDRY',
'dry air mass',
'kg', ndim=3, isflux=.false. )
491 call monit_reg( ad_monit_id(i_qtot),
'QTOT',
'water mass',
'kg', ndim=3, isflux=.false. )
492 call monit_reg( ad_monit_id(i_evap),
'EVAP',
'evaporation',
'kg', ndim=2, isflux=.true. )
493 call monit_reg( ad_monit_id(i_prcp),
'PRCP',
'precipitation',
'kg', ndim=2, isflux=.true. )
495 call monit_reg( ad_monit_id(i_engt),
'ENGT',
'total energy',
'J', ndim=3, isflux=.false. )
496 call monit_reg( ad_monit_id(i_engp),
'ENGP',
'potential energy',
'J', ndim=3, isflux=.false. )
497 call monit_reg( ad_monit_id(i_engk),
'ENGK',
'kinetic energy',
'J', ndim=3, isflux=.false. )
498 call monit_reg( ad_monit_id(i_engi),
'ENGI',
'internal energy',
'J', ndim=3, isflux=.false. )
500 call monit_reg( ad_monit_id(i_engflxt),
'ENGFLXT',
'total energy flux',
'J', ndim=2, isflux=.true. )
502 call monit_reg( ad_monit_id(i_engsfc_sh),
'ENGSFC_SH',
'total energy',
'J', ndim=2, isflux=.true. )
503 call monit_reg( ad_monit_id(i_engsfc_lh),
'ENGSFC_LH',
'potential energy',
'J', ndim=2, isflux=.true. )
504 call monit_reg( ad_monit_id(i_engsfc_rd),
'ENGSFC_RD',
'kinetic energy',
'J', ndim=2, isflux=.true. )
505 call monit_reg( ad_monit_id(i_engtoa_rd),
'ENGTOA_RD',
'internal energy',
'J', ndim=2, isflux=.true. )
507 call monit_reg( ad_monit_id(i_engsfc_lw_up),
'ENGSFC_LW_up',
'total energy',
'J', ndim=2, isflux=.true. )
508 call monit_reg( ad_monit_id(i_engsfc_lw_dn),
'ENGSFC_LW_dn',
'potential energy',
'J', ndim=2, isflux=.true. )
509 call monit_reg( ad_monit_id(i_engsfc_sw_up),
'ENGSFC_SW_up',
'kinetic energy',
'J', ndim=2, isflux=.true. )
510 call monit_reg( ad_monit_id(i_engsfc_sw_dn),
'ENGSFC_SW_dn',
'internal energy',
'J', ndim=2, isflux=.true. )
512 call monit_reg( ad_monit_id(i_engtoa_lw_up),
'ENGTOA_LW_up',
'total energy',
'J', ndim=2, isflux=.true. )
513 call monit_reg( ad_monit_id(i_engtoa_lw_dn),
'ENGTOA_LW_dn',
'potential energy',
'J', ndim=2, isflux=.true. )
514 call monit_reg( ad_monit_id(i_engtoa_sw_up),
'ENGTOA_SW_up',
'kinetic energy',
'J', ndim=2, isflux=.true. )
515 call monit_reg( ad_monit_id(i_engtoa_sw_dn),
'ENGTOA_SW_dn',
'internal energy',
'J', ndim=2, isflux=.true. )
517 if ( ad_hist_id(i_w) > 0 )
then 520 if ( ad_hist_id(i_u) > 0 )
then 523 if ( ad_hist_id(i_v) > 0 )
then 526 if ( ad_hist_id(i_pott) > 0 )
then 527 ad_prep_sw(i_pott) = 1
530 if ( ad_hist_id(i_qdry) > 0 &
531 .OR. ad_monit_id(i_qdry) > 0 )
then 532 ad_prep_sw(i_qdry) = 1
534 if ( ad_hist_id(i_qtot) > 0 &
535 .OR. ad_monit_id(i_qtot) > 0 )
then 536 ad_prep_sw(i_qdry) = 1
537 ad_prep_sw(i_qtot) = 1
539 if ( ad_hist_id(i_qhyd) > 0 )
then 540 ad_prep_sw(i_qhyd) = 1
542 if ( ad_hist_id(i_qliq) > 0 )
then 543 ad_prep_sw(i_qliq) = 1
545 if ( ad_hist_id(i_qice) > 0 )
then 546 ad_prep_sw(i_qice) = 1
549 if ( ad_hist_id(i_lwp) > 0 )
then 550 ad_prep_sw(i_qliq) = 1
551 ad_prep_sw(i_lwp) = 1
553 if ( ad_hist_id(i_iwp) > 0 )
then 554 ad_prep_sw(i_qice) = 1
555 ad_prep_sw(i_iwp) = 1
557 if ( ad_hist_id(i_pw) > 0 )
then 561 if ( ad_hist_id(i_rtot) > 0 )
then 562 ad_prep_sw(i_qdry) = 1
563 ad_prep_sw(i_rtot) = 1
565 if ( ad_hist_id(i_cptot) > 0 )
then 566 ad_prep_sw(i_qdry) = 1
567 ad_prep_sw(i_cptot) = 1
569 if ( ad_hist_id(i_pres) > 0 )
then 570 ad_prep_sw(i_qdry) = 1
571 ad_prep_sw(i_rtot) = 1
572 ad_prep_sw(i_cptot) = 1
573 ad_prep_sw(i_pres) = 1
575 if ( ad_hist_id(i_temp) > 0 )
then 576 ad_prep_sw(i_qdry) = 1
577 ad_prep_sw(i_rtot) = 1
578 ad_prep_sw(i_cptot) = 1
579 ad_prep_sw(i_pres) = 1
580 ad_prep_sw(i_temp) = 1
583 if ( ad_hist_id(i_potl) > 0 )
then 584 ad_prep_sw(i_pott) = 1
585 ad_prep_sw(i_qdry) = 1
586 ad_prep_sw(i_rtot) = 1
587 ad_prep_sw(i_cptot) = 1
588 ad_prep_sw(i_pres) = 1
589 ad_prep_sw(i_temp) = 1
590 ad_prep_sw(i_potl) = 1
592 if ( ad_hist_id(i_rha) > 0 &
593 .OR. ad_hist_id(i_rhl) > 0 &
594 .OR. ad_hist_id(i_rhi) > 0 )
then 595 ad_prep_sw(i_qdry) = 1
596 ad_prep_sw(i_rtot) = 1
597 ad_prep_sw(i_cptot) = 1
598 ad_prep_sw(i_pres) = 1
599 ad_prep_sw(i_temp) = 1
600 ad_prep_sw(i_qsat) = 1
604 if ( ad_hist_id(i_vor) > 0 )
then 605 ad_prep_sw(i_vor) = 1
608 if ( ad_prep_sw(i_div) > 0 )
then 609 ad_prep_sw(i_hdiv) = 1
612 if ( ad_hist_id(i_uabs) > 0 )
then 615 ad_prep_sw(i_uabs) = 1
618 if ( ad_hist_id(i_cape) > 0 &
619 .OR. ad_hist_id(i_cin) > 0 &
620 .OR. ad_hist_id(i_lcl) > 0 &
621 .OR. ad_hist_id(i_lfc) > 0 &
622 .OR. ad_hist_id(i_lnb) > 0 )
then 623 ad_prep_sw(i_cape) = 1
624 ad_prep_sw(i_cin) = 1
625 ad_prep_sw(i_lcl) = 1
626 ad_prep_sw(i_lfc) = 1
627 ad_prep_sw(i_lnb) = 1
630 if ( ad_hist_id(i_pblh) > 0 )
then 631 ad_prep_sw(i_pott) = 1
632 ad_prep_sw(i_pblh) = 1
635 if ( ad_hist_id(i_mse) > 0 )
then 636 ad_prep_sw(i_cptot) = 1
637 ad_prep_sw(i_temp) = 1
638 ad_prep_sw(i_mse) = 1
641 if ( ad_hist_id(i_dens_prim) > 0 )
then 642 ad_prep_sw(i_dens_prim) = 1
643 ad_prep_sw(i_dens_mean) = 1
646 if ( ad_hist_id(i_w_prim) > 0 )
then 648 ad_prep_sw(i_w_prim) = 1
649 ad_prep_sw(i_dens_mean) = 1
650 ad_prep_sw(i_w_mean) = 1
653 if ( ad_hist_id(i_u_prim) > 0 )
then 655 ad_prep_sw(i_u_prim) = 1
656 ad_prep_sw(i_dens_mean) = 1
657 ad_prep_sw(i_u_mean) = 1
660 if ( ad_hist_id(i_v_prim) > 0 )
then 662 ad_prep_sw(i_v_prim) = 1
663 ad_prep_sw(i_dens_mean) = 1
664 ad_prep_sw(i_v_mean) = 1
667 if ( ad_hist_id(i_pott_prim) > 0 )
then 668 ad_prep_sw(i_pott) = 1
669 ad_prep_sw(i_pott_prim) = 1
670 ad_prep_sw(i_dens_mean) = 1
671 ad_prep_sw(i_pott_mean) = 1
674 if ( ad_hist_id(i_dens_mean) > 0 )
then 675 ad_prep_sw(i_dens_mean) = 1
678 if ( ad_hist_id(i_w_mean) > 0 )
then 679 ad_prep_sw(i_w_mean) = 1
682 if ( ad_hist_id(i_u_mean) > 0 )
then 683 ad_prep_sw(i_u_mean) = 1
686 if ( ad_hist_id(i_v_mean) > 0 )
then 687 ad_prep_sw(i_v_mean) = 1
690 if ( ad_hist_id(i_pott_mean) > 0 )
then 691 ad_prep_sw(i_pott_mean) = 1
694 if ( ad_hist_id(i_t_mean) > 0 )
then 695 ad_prep_sw(i_t_mean) = 1
698 if ( ad_hist_id(i_qv_mean) > 0 )
then 699 ad_prep_sw(i_qv_mean) = 1
702 if ( ad_hist_id(i_qhyd_mean) > 0 )
then 703 ad_prep_sw(i_qhyd) = 1
704 ad_prep_sw(i_qhyd_mean) = 1
707 if ( ad_hist_id(i_qliq_mean) > 0 )
then 708 ad_prep_sw(i_qliq) = 1
709 ad_prep_sw(i_qliq_mean) = 1
712 if ( ad_hist_id(i_qice_mean) > 0 )
then 713 ad_prep_sw(i_qice) = 1
714 ad_prep_sw(i_qice_mean) = 1
717 if ( ad_hist_id(i_w_prim2) > 0 )
then 719 ad_prep_sw(i_w_prim) = 1
720 ad_prep_sw(i_w_prim2) = 1
721 ad_prep_sw(i_dens_mean) = 1
722 ad_prep_sw(i_w_mean) = 1
725 if ( ad_hist_id(i_pt_w_prim) > 0 )
then 727 ad_prep_sw(i_w_prim) = 1
728 ad_prep_sw(i_pott) = 1
729 ad_prep_sw(i_pott_prim) = 1
730 ad_prep_sw(i_pt_w_prim) = 1
731 ad_prep_sw(i_dens_mean) = 1
732 ad_prep_sw(i_w_mean) = 1
733 ad_prep_sw(i_pott_mean) = 1
736 if ( ad_hist_id(i_w_prim3) > 0 )
then 738 ad_prep_sw(i_w_prim) = 1
739 ad_prep_sw(i_w_prim3) = 1
740 ad_prep_sw(i_dens_mean) = 1
741 ad_prep_sw(i_w_mean) = 1
744 if ( ad_hist_id(i_tke_rs) > 0 )
then 748 ad_prep_sw(i_w_prim) = 1
749 ad_prep_sw(i_u_prim) = 1
750 ad_prep_sw(i_v_prim) = 1
751 ad_prep_sw(i_tke_rs) = 1
752 ad_prep_sw(i_dens_mean) = 1
753 ad_prep_sw(i_w_mean) = 1
754 ad_prep_sw(i_u_mean) = 1
755 ad_prep_sw(i_v_mean) = 1
758 if ( ad_hist_id(i_engp) > 0 &
759 .OR. ad_monit_id(i_engp) > 0 )
then 760 ad_prep_sw(i_engp) = 1
762 if ( ad_hist_id(i_engk) > 0 &
763 .OR. ad_monit_id(i_engk) > 0 )
then 767 ad_prep_sw(i_engk) = 1
769 if ( ad_hist_id(i_engi) > 0 &
770 .OR. ad_monit_id(i_engi) > 0 )
then 771 ad_prep_sw(i_qdry) = 1
772 ad_prep_sw(i_rtot) = 1
773 ad_prep_sw(i_cptot) = 1
774 ad_prep_sw(i_pres) = 1
775 ad_prep_sw(i_temp) = 1
776 ad_prep_sw(i_engi) = 1
778 if ( ad_hist_id(i_engt) > 0 &
779 .OR. ad_monit_id(i_engt) > 0 )
then 780 ad_prep_sw(i_engp) = 1
784 ad_prep_sw(i_engk) = 1
785 ad_prep_sw(i_qdry) = 1
786 ad_prep_sw(i_rtot) = 1
787 ad_prep_sw(i_cptot) = 1
788 ad_prep_sw(i_pres) = 1
789 ad_prep_sw(i_temp) = 1
790 ad_prep_sw(i_engi) = 1
791 ad_prep_sw(i_engt) = 1
806 logical,
intent(in),
optional :: FILL_BND
813 if (
present(fill_bnd) ) fill_bnd_ = fill_bnd
841 call comm_vars8(
dens(:,:,:), 1 )
842 call comm_vars8(
momz(:,:,:), 2 )
843 call comm_vars8(
momx(:,:,:), 3 )
844 call comm_vars8(
momy(:,:,:), 4 )
845 call comm_vars8(
rhot(:,:,:), 5 )
846 call comm_wait (
dens(:,:,:), 1, fill_bnd_ )
847 call comm_wait (
momz(:,:,:), 2, fill_bnd_ )
848 call comm_wait (
momx(:,:,:), 3, fill_bnd_ )
849 call comm_wait (
momy(:,:,:), 4, fill_bnd_ )
850 call comm_wait (
rhot(:,:,:), 5, fill_bnd_ )
853 call comm_vars8(
qtrc(:,:,:,iq), iq )
856 call comm_wait (
qtrc(:,:,:,iq), iq, fill_bnd_ )
872 thermodyn_qd => atmos_thermodyn_qd, &
873 thermodyn_temp_pres => atmos_thermodyn_temp_pres
906 if(
io_l )
write(
io_fid_log,*)
'*** Input restart file (ATMOS) ***' 911 call fileio_read(
dens(:,:,:), &
913 call fileio_read(
momz(:,:,:), &
915 call fileio_read(
momx(:,:,:), &
917 call fileio_read(
momy(:,:,:), &
919 call fileio_read(
rhot(:,:,:), &
923 call fileio_read(
qtrc(:,:,:,iq), &
931 write(*,*)
'*** restart file for atmosphere is not specified. STOP!' 991 atmos_phy_mp_sdm_restart_out
997 character(len=20) :: timelabel
998 character(len=H_LONG) :: basename
1004 if( sd_rest_flg_out )
then 1005 if(
io_l )
write(
io_fid_log,*)
'*** Output random number for SDM ***' 1006 call atmos_phy_mp_sdm_restart_out(nowsec)
1012 call time_gettimelabel( timelabel )
1016 if(
io_l )
write(
io_fid_log,*)
'*** Output restart file (ATMOS) ***' 1062 real(RP) :: DENS_check(
ka,
ia,
ja)
1063 real(RP) :: MOMZ_check(
ka,
ia,
ja)
1064 real(RP) :: MOMX_check(
ka,
ia,
ja)
1065 real(RP) :: MOMY_check(
ka,
ia,
ja)
1066 real(RP) :: RHOT_check(
ka,
ia,
ja)
1067 real(RP) :: QTRC_check(
ka,
ia,
ja,
qa)
1071 character(len=H_LONG) :: basename
1073 logical :: datacheck
1074 integer :: k, i, j, iq
1085 call fileread( restart_atmos(:,:,:), basename,
'DENS', 1,
prc_myrank )
1091 write(*,*)
'xxx there is the difference : ',
dens(k,i,j)-dens_check(k,i,j)
1092 write(*,*)
'xxx at (PE-id,k,i,j,varname) : ',
prc_myrank, k, i, j,
'DENS' 1099 call fileread( restart_atmos(:,:,:), basename,
'MOMZ', 1,
prc_myrank )
1105 write(*,*)
'xxx there is the difference : ',
momz(k,i,j)-momz_check(k,i,j)
1106 write(*,*)
'xxx at (PE-id,k,i,j,varname) : ',
prc_myrank, k, i, j,
'MOMZ' 1113 call fileread( restart_atmos(:,:,:), basename,
'MOMX', 1,
prc_myrank )
1119 write(*,*)
'xxx there is the difference : ',
momx(k,i,j)-momx_check(k,i,j)
1120 write(*,*)
'xxx at (PE-id,k,i,j,varname) : ',
prc_myrank, k, i, j,
'MOMX' 1127 call fileread( restart_atmos(:,:,:), basename,
'MOMY', 1,
prc_myrank )
1133 write(*,*)
'xxx there is the difference : ',
momy(k,i,j)-momy_check(k,i,j)
1134 write(*,*)
'xxx at (PE-id,k,i,j,varname) : ',
prc_myrank, k, i, j,
'MOMY' 1141 call fileread( restart_atmos(:,:,:), basename,
'RHOT', 1,
prc_myrank )
1147 write(*,*)
'xxx there is the difference : ',
rhot(k,i,j)-rhot_check(k,i,j)
1148 write(*,*)
'xxx at (PE-id,k,i,j,varname) : ',
prc_myrank, k, i, j,
'RHOT' 1162 write(*,*)
'xxx there is the difference : ',
qtrc(k,i,j,iq)-qtrc_check(k,i,j,iq)
1163 write(*,*)
'xxx at (PE-id,k,i,j,varname) : ',
prc_myrank, k, i, j,
aq_name(iq)
1173 write(*,*)
'Data Check Clear.' 1175 if(
io_l )
write(
io_fid_log,*)
'Data Check Failed. See std. output.' 1176 write(*,*)
'Data Check Failed.' 1207 thermodyn_qd => atmos_thermodyn_qd, &
1208 thermodyn_templhv => atmos_thermodyn_templhv, &
1212 saturation_psat_all => atmos_saturation_psat_all, &
1213 saturation_psat_liq => atmos_saturation_psat_liq, &
1214 saturation_psat_ice => atmos_saturation_psat_ice
1224 real(RP) :: QDRY (
ka,
ia,
ja)
1225 real(RP) :: QTOT (
ka,
ia,
ja)
1226 real(RP) :: QHYD (
ka,
ia,
ja)
1227 real(RP) :: QLIQ (
ka,
ia,
ja)
1228 real(RP) :: QICE (
ka,
ia,
ja)
1229 real(RP) :: RHOQ (
ka,
ia,
ja)
1231 real(RP) :: LWP (
ia,
ja)
1232 real(RP) :: IWP (
ia,
ja)
1233 real(RP) :: PW (
ia,
ja)
1235 real(RP) :: RTOT (
ka,
ia,
ja)
1236 real(RP) :: CPTOT (
ka,
ia,
ja)
1237 real(RP) :: CPovCV(
ka,
ia,
ja)
1239 real(RP) :: POTL (
ka,
ia,
ja)
1240 real(RP) :: RHA (
ka,
ia,
ja)
1241 real(RP) :: RHL (
ka,
ia,
ja)
1242 real(RP) :: RHI (
ka,
ia,
ja)
1244 real(RP) :: VOR (
ka,
ia,
ja)
1245 real(RP) :: DIV (
ka,
ia,
ja)
1246 real(RP) :: HDIV (
ka,
ia,
ja)
1247 real(RP) :: Uabs (
ka,
ia,
ja)
1249 real(RP) :: CAPE (
ia,
ja)
1250 real(RP) :: CIN (
ia,
ja)
1251 real(RP) :: LCL (
ia,
ja)
1252 real(RP) :: LFC (
ia,
ja)
1253 real(RP) :: LNB (
ia,
ja)
1255 real(RP) :: PBLH (
ia,
ja)
1256 real(RP) :: POTTv (
ka,
ia,
ja)
1259 real(RP) :: MSE (
ka,
ia,
ja)
1260 real(RP) :: LHvap (
ka,
ia,
ja)
1262 real(RP) :: PREC (
ia,
ja)
1264 real(RP) :: DENS_PRIM(
ka,
ia,
ja)
1265 real(RP) :: W_PRIM (
ka,
ia,
ja)
1266 real(RP) :: U_PRIM (
ka,
ia,
ja)
1267 real(RP) :: V_PRIM (
ka,
ia,
ja)
1268 real(RP) :: POTT_PRIM(
ka,
ia,
ja)
1269 real(RP) :: W_PRIM2 (
ka,
ia,
ja)
1270 real(RP) :: PT_W_PRIM(
ka,
ia,
ja)
1271 real(RP) :: W_PRIM3 (
ka,
ia,
ja)
1272 real(RP) :: TKE_RS (
ka,
ia,
ja)
1273 real(RP) :: DENS_MEAN(
ka)
1274 real(RP) :: W_MEAN (
ka)
1275 real(RP) :: U_MEAN (
ka)
1276 real(RP) :: V_MEAN (
ka)
1277 real(RP) :: PT_MEAN (
ka)
1278 real(RP) :: T_MEAN (
ka)
1279 real(RP) :: QV_MEAN (
ka)
1280 real(RP) :: QHYD_MEAN(
ka)
1281 real(RP) :: QLIQ_MEAN(
ka)
1282 real(RP) :: QICE_MEAN(
ka)
1284 real(RP) :: ENGT (
ka,
ia,
ja)
1285 real(RP) :: ENGP (
ka,
ia,
ja)
1286 real(RP) :: ENGK (
ka,
ia,
ja)
1287 real(RP) :: ENGI (
ka,
ia,
ja)
1289 real(RP) :: PSAT (
ka,
ia,
ja)
1290 real(RP) :: UH (
ka,
ia,
ja)
1291 real(RP) :: VH (
ka,
ia,
ja)
1293 integer :: k, i, j, iq
1297 if ( atmos_vars_checkrange )
then 1298 call valcheck(
dens(:,:,:), 0.0_rp, 2.0_rp, var_name(
i_dens), __file__, __line__ )
1299 call valcheck(
momz(:,:,:), -200.0_rp, 200.0_rp, var_name(
i_momz), __file__, __line__ )
1300 call valcheck(
momx(:,:,:), -200.0_rp, 200.0_rp, var_name(
i_momx), __file__, __line__ )
1301 call valcheck(
momy(:,:,:), -200.0_rp, 200.0_rp, var_name(
i_momy), __file__, __line__ )
1302 call valcheck(
rhot(:,:,:), 0.0_rp, 1000.0_rp, var_name(
i_rhot), __file__, __line__ )
1361 if ( ad_prep_sw(i_qdry) > 0 )
then 1362 call thermodyn_qd( qdry(:,:,:), &
1366 if ( ad_prep_sw(i_qtot) > 0 )
then 1371 qtot(k,i,j) = 1.0_rp - qdry(k,i,j)
1377 if ( ad_prep_sw(i_qhyd) > 0 )
then 1379 qhyd(:,:,:) = 0.0_rp
1382 qhyd(:,:,:) = qhyd(:,:,:) +
qtrc(:,:,:,iq)
1385 qhyd(:,:,:) = qhyd(:,:,:) +
qtrc(:,:,:,iq)
1389 if ( ad_prep_sw(i_qliq) > 0 )
then 1391 qliq(:,:,:) = 0.0_rp
1394 qliq(:,:,:) = qliq(:,:,:) +
qtrc(:,:,:,iq)
1398 if ( ad_prep_sw(i_qice) > 0 )
then 1400 qice(:,:,:) = 0.0_rp
1403 qice(:,:,:) = qice(:,:,:) +
qtrc(:,:,:,iq)
1407 if ( ad_prep_sw(i_lwp) > 0 )
then 1412 lwp(i,j) = lwp(i,j) &
1419 if ( ad_prep_sw(i_iwp) > 0 )
then 1424 iwp(i,j) = iwp(i,j) &
1431 if ( ad_prep_sw(i_pw) > 0 )
then 1443 if ( ad_prep_sw(i_rtot) > 0 )
then 1449 rtot(k,i,j) = rdry * qdry(k,i,j) + rvap *
qtrc(k,i,j,
i_qv)
1455 if ( ad_prep_sw(i_cptot) > 0 )
then 1461 cptot(k,i,j) = cpdry * qdry(k,i,j)
1471 cptot(k,i,j) = cptot(k,i,j) +
qtrc(k,i,j,iq) * cpw(iq)
1482 cpovcv(k,i,j) = cptot(k,i,j) / ( cptot(k,i,j) - rtot(k,i,j) )
1510 if ( ad_prep_sw(i_potl) > 0 )
then 1516 potl(k,i,j) =
pott(k,i,j) &
1517 - lhv / cpdry * qliq(k,i,j) *
pott(k,i,j) /
temp(k,i,j)
1523 if ( ad_prep_sw(i_qsat) > 0 )
then 1529 if ( ad_hist_id(i_rha) > 0 )
then 1530 call saturation_psat_all( psat(:,:,:), &
1538 / psat(k,i,j) * rvap *
temp(k,i,j) &
1545 if ( ad_hist_id(i_rhl) > 0 )
then 1546 call saturation_psat_liq( psat(:,:,:), &
1554 / psat(k,i,j) * rvap *
temp(k,i,j) &
1561 if ( ad_hist_id(i_rhi) > 0 )
then 1562 call saturation_psat_ice( psat(:,:,:), &
1570 / psat(k,i,j) * rvap *
temp(k,i,j) &
1577 if ( ad_prep_sw(i_vor) > 0 )
then 1584 uh(k,i,j) = 0.5_rp * (
momx(k,i,j)+
momx(k,i,j+1)+
momx(k,i-1,j)+
momx(k,i-1,j+1) ) &
1596 vh(k,i,j) = 0.5_rp * (
momy(k,i,j)+
momy(k,i+1,j)+
momy(k,i,j-1)+
momy(k,i+1,j-1) ) &
1607 vor(k,i,j) = ( vh(k,i,j ) - vh(k,i-1,j ) ) * rcdx(i) &
1608 - ( uh(k,i ,j) - uh(k,i ,j-1) ) * rcdy(j)
1616 vor(k,1 ,j) = vor(k,2 ,j)
1617 vor(k,
ia,j) = vor(k,
ia-1,j)
1624 vor(k,i,1 ) = vor(k,i,2 )
1625 vor(k,i,
ja) = vor(k,i,
ja-1)
1630 if ( ad_prep_sw(i_hdiv) > 0 )
then 1636 hdiv(k,i,j) = (
momx(k,i,j) -
momx(k ,i-1,j ) ) * rcdx(i) &
1637 + (
momy(k,i,j) -
momy(k ,i ,j-1) ) * rcdy(j)
1644 hdiv(k,i,1) = hdiv(k,i,2)
1650 hdiv(k,1,j) = hdiv(k,2,j)
1655 if ( ad_prep_sw(i_div) > 0 )
then 1661 div(k,i,j) = (
momz(k,i,j) -
momz(k-1,i ,j ) ) * (
real_fz(k,i,j)-
real_fz(k-1,i,j) ) &
1668 if ( ad_prep_sw(i_uabs) > 0 )
then 1673 uabs(k,i,j) = sqrt(
u(k,i,j) *
u(k,i,j) &
1674 +
v(k,i,j) *
v(k,i,j) )
1680 if ( ad_prep_sw(i_dens_mean) > 0 )
then 1684 if ( ad_prep_sw(i_dens_prim) > 0 )
then 1689 dens_prim(k,i,j) =
dens(k,i,j) - dens_mean(k)
1695 if ( ad_prep_sw(i_w_mean) > 0 )
then 1700 w_prim(k,i,j) =
w(k,i,j) *
dens(k,i,j)
1706 w_mean(k) = w_mean(k) / dens_mean(k)
1709 if ( ad_prep_sw(i_w_prim) > 0 )
then 1714 w_prim(k,i,j) =
w(k,i,j) - w_mean(k)
1720 if ( ad_prep_sw(i_u_mean) > 0 )
then 1725 u_prim(k,i,j) =
u(k,i,j) *
dens(k,i,j)
1731 u_mean(k) = u_mean(k) / dens_mean(k)
1734 if ( ad_prep_sw(i_u_prim) > 0 )
then 1739 u_prim(k,i,j) =
u(k,i,j) - u_mean(k)
1745 if ( ad_prep_sw(i_v_mean) > 0 )
then 1750 v_prim(k,i,j) =
v(k,i,j) *
dens(k,i,j)
1756 v_mean(k) = v_mean(k) / dens_mean(k)
1759 if ( ad_prep_sw(i_v_prim) > 0 )
then 1764 v_prim(k,i,j) =
v(k,i,j) - v_mean(k)
1770 if ( ad_prep_sw(i_t_mean) > 0 )
then 1775 pott_prim(k,i,j) =
temp(k,i,j) *
dens(k,i,j)
1781 t_mean(k) = t_mean(k) / dens_mean(k)
1785 if ( ad_prep_sw(i_pott_mean) > 0 )
then 1788 pt_mean(k) = pt_mean(k) / dens_mean(k)
1791 if ( ad_prep_sw(i_pott_prim) > 0 )
then 1796 pott_prim(k,i,j) =
pott(k,i,j) - pt_mean(k)
1802 if ( ad_prep_sw(i_qv_mean) > 0 )
then 1813 qv_mean(k) = qv_mean(k) / dens_mean(k)
1817 if ( ad_prep_sw(i_qhyd_mean) > 0 )
then 1822 rhoq(k,i,j) = qhyd(k,i,j) *
dens(k,i,j)
1828 qhyd_mean(k) = qhyd_mean(k) / dens_mean(k)
1832 if ( ad_prep_sw(i_qliq_mean) > 0 )
then 1837 rhoq(k,i,j) = qliq(k,i,j) *
dens(k,i,j)
1843 qliq_mean(k) = qliq_mean(k) / dens_mean(k)
1847 if ( ad_prep_sw(i_qice_mean) > 0 )
then 1852 rhoq(k,i,j) = qice(k,i,j) *
dens(k,i,j)
1858 qice_mean(k) = qice_mean(k) / dens_mean(k)
1862 if ( ad_prep_sw(i_w_prim2) > 0 )
then 1867 w_prim2(k,i,j) = w_prim(k,i,j) * w_prim(k,i,j)
1873 if ( ad_prep_sw(i_pt_w_prim) > 0 )
then 1878 pt_w_prim(k,i,j) = w_prim(k,i,j) * pott_prim(k,i,j) *
dens(k,i,j) * cpdry
1884 if ( ad_prep_sw(i_w_prim3) > 0 )
then 1889 w_prim3(k,i,j) = w_prim(k,i,j) * w_prim(k,i,j) * w_prim(k,i,j)
1895 if ( ad_prep_sw(i_tke_rs) > 0 )
then 1900 tke_rs(k,i,j) = 0.5_rp * ( w_prim(k,i,j) * w_prim(k,i,j) &
1901 + u_prim(k,i,j) * u_prim(k,i,j) &
1902 + v_prim(k,i,j) * v_prim(k,i,j) )
1908 if ( ad_prep_sw(i_engp) > 0 )
then 1920 if ( ad_prep_sw(i_engk) > 0 )
then 1926 engk(k,i,j) = 0.5_rp *
dens(k,i,j) * (
w(k,i,j)**2 &
1934 if ( ad_prep_sw(i_engi) > 0 )
then 1940 engi(k,i,j) =
dens(k,i,j) * qdry(k,i,j) *
temp(k,i,j) * cvdry
1950 engi(k,i,j) = engi(k,i,j) &
1961 engi(k,i,j) = engi(k,i,j) &
1972 engi(k,i,j) = engi(k,i,j) &
1973 -
dens(k,i,j) *
qtrc(k,i,j,iq) * lhf
1980 if ( ad_prep_sw(i_engt) > 0 )
then 1986 engt(k,i,j) = engp(k,i,j) + engk(k,i,j) + engi(k,i,j)
1992 call hist_in(
w(:,:,:),
'W',
'velocity w',
'm/s' )
1993 call hist_in(
u(:,:,:),
'U',
'velocity u',
'm/s' )
1994 call hist_in(
v(:,:,:),
'V',
'velocity v',
'm/s' )
1995 call hist_in(
pott(:,:,:),
'PT',
'potential temp.',
'K' )
1997 call hist_in( qdry(:,:,:),
'QDRY',
'dry air',
'kg/kg' )
1998 call hist_in( qtot(:,:,:),
'QTOT',
'total water',
'kg/kg' )
1999 call hist_in( qhyd(:,:,:),
'QHYD',
'total hydrometeors',
'kg/kg' )
2000 call hist_in( qliq(:,:,:),
'QLIQ',
'total liquid water',
'kg/kg' )
2001 call hist_in( qice(:,:,:),
'QICE',
'total ice water',
'kg/kg' )
2003 call hist_in( lwp(:,:),
'LWP',
'liquid water path',
'g/m2' )
2004 call hist_in( iwp(:,:),
'IWP',
'ice water path',
'g/m2' )
2005 call hist_in( pw(:,:),
'PW',
'precipitable water',
'g/m2' )
2007 call hist_in( rtot(:,:,:),
'RTOT',
'Total gas constant',
'J/kg/K' )
2008 call hist_in( cptot(:,:,:),
'CPTOT',
'Total heat capacity',
'J/kg/K' )
2009 call hist_in(
pres(:,:,:),
'PRES',
'pressure',
'Pa' )
2010 call hist_in(
temp(:,:,:),
'T',
'temperature',
'K' )
2012 call hist_in( potl(:,:,:),
'LWPT',
'liq. potential temp.',
'K' )
2013 call hist_in( rha(:,:,:),
'RHA',
'relative humidity(liq+ice)',
'%' )
2014 call hist_in( rhl(:,:,:),
'RH' ,
'relative humidity(liq)',
'%' )
2015 call hist_in( rhi(:,:,:),
'RHI',
'relative humidity(ice)',
'%' )
2017 call hist_in( vor(:,:,:),
'VOR',
'vertical vorticity',
'1/s' )
2018 call hist_in( div(:,:,:),
'DIV',
'divergence',
'1/s' )
2019 call hist_in( hdiv(:,:,:),
'HDIV',
'horizontal divergence',
'1/s' )
2020 call hist_in( uabs(:,:,:),
'Uabs',
'absolute velocity',
'm/s' )
2022 call hist_in( dens_mean(:),
'DENS_MEAN',
'horiz. mean of density',
'kg/m3' )
2023 call hist_in( w_mean(:),
'W_MEAN',
'horiz. mean of w',
'm/s' )
2024 call hist_in( u_mean(:),
'U_MEAN',
'horiz. mean of u',
'm/s' )
2025 call hist_in( v_mean(:),
'V_MEAN',
'horiz. mean of v',
'm/s' )
2026 call hist_in( pt_mean(:),
'PT_MEAN',
'horiz. mean of pot.',
'K' )
2027 call hist_in( t_mean(:),
'T_MEAN',
'horiz. mean of t',
'K' )
2028 call hist_in( qv_mean(:),
'QV_MEAN',
'horiz. mean of QV',
'1' )
2029 call hist_in( qhyd_mean(:),
'QHYD_MEAN',
'horiz. mean of QHYD',
'1' )
2030 call hist_in( qliq_mean(:),
'QLIQ_MEAN',
'horiz. mean of QLIQ',
'1' )
2031 call hist_in( qice_mean(:),
'QICE_MEAN',
'horiz. mean of QICE',
'1' )
2033 call hist_in( dens_prim(:,:,:),
'DENS_PRIM',
'horiz. deviation of density',
'kg/m3' )
2034 call hist_in( w_prim(:,:,:),
'W_PRIM',
'horiz. deviation of w',
'm/s' )
2035 call hist_in( u_prim(:,:,:),
'U_PRIM',
'horiz. deviation of u',
'm/s' )
2036 call hist_in( v_prim(:,:,:),
'V_PRIM',
'horiz. deviation of v',
'm/s' )
2037 call hist_in( pott_prim(:,:,:),
'PT_PRIM',
'horiz. deviation of pot. temp.',
'K' )
2038 call hist_in( w_prim2(:,:,:),
'W_PRIM2',
'variance of w',
'm2/s2' )
2039 call hist_in( pt_w_prim(:,:,:),
'PT_W_PRIM',
'resolved scale heat flux',
'W/s' )
2040 call hist_in( w_prim3(:,:,:),
'W_PRIM3',
'skewness of w',
'm3/s3' )
2041 call hist_in( tke_rs(:,:,:),
'TKE_RS',
'resolved scale TKE',
'm2/s2' )
2043 call hist_in( engt(:,:,:),
'ENGT',
'total energy',
'J/m3' )
2044 call hist_in( engp(:,:,:),
'ENGP',
'potential energy',
'J/m3' )
2045 call hist_in( engk(:,:,:),
'ENGK',
'kinetic energy',
'J/m3' )
2046 call hist_in( engi(:,:,:),
'ENGI',
'internal energy',
'J/m3' )
2048 if ( ad_prep_sw(i_cape) > 0 &
2049 .OR. ad_prep_sw(i_cin) > 0 &
2050 .OR. ad_prep_sw(i_lcl) > 0 &
2051 .OR. ad_prep_sw(i_lfc) > 0 &
2052 .OR. ad_prep_sw(i_lnb) > 0 )
then 2054 call adiabat_cape(
ks, &
2069 call hist_in( cape(:,:),
'CAPE',
'convection avail. pot. energy',
'm2/s2' )
2070 call hist_in( cin(:,:),
'CIN',
'convection inhibition',
'm2/s2' )
2071 call hist_in( lcl(:,:),
'LCL',
'lifted condensation level',
'm' )
2072 call hist_in( lfc(:,:),
'LFC',
'level of free convection',
'm' )
2073 call hist_in( lnb(:,:),
'LNB',
'level of neutral buoyancy',
'm' )
2075 if ( ad_prep_sw(i_pblh) > 0 )
then 2079 pottv(k,i,j) =
pott(k,i,j) * ( 1.0_rp + 0.61_rp *
qtrc(k,i,j,
i_qv) - 1.61 *
qtrc(k,i,j,
i_qc) )
2089 if ( pottv(k,i,j) > pottv(
ks,i,j) )
then 2090 fact = ( pottv(
ks,i,j) - pottv(k-1,i,j) ) &
2091 / ( pottv(k,i,j) - pottv(k-1,i,j) )
2102 call hist_in( pblh(:,:),
'PBLH',
'PBL height',
'm' )
2104 if ( ad_prep_sw(i_mse) > 0 )
then 2105 call thermodyn_templhv( lhvap(:,:,:), &
2111 mse(k,i,j) = cptot(k,i,j) *
temp(k,i,j) &
2118 call hist_in( mse(:,:,:),
'MSE',
'moist static energy',
'm2/s2' )
2122 prec(i,j) = sflx_rain_cp(i,j) &
2123 + sflx_rain_mp(i,j) + sflx_snow_mp(i,j)
2126 call hist_in( prec(:,:),
'PREC',
'surface precipitation rate (total)',
'kg/m2/s' )
2145 thermodyn_qd => atmos_thermodyn_qd, &
2146 thermodyn_temp_pres => atmos_thermodyn_temp_pres, &
2154 real(RP) :: QDRY(
ka,
ia,
ja)
2155 real(RP) :: PRES(
ka,
ia,
ja)
2156 real(RP) :: TEMP(
ka,
ia,
ja)
2158 real(RP) :: ENGT(
ka,
ia,
ja)
2159 real(RP) :: ENGP(
ka,
ia,
ja)
2160 real(RP) :: ENGK(
ka,
ia,
ja)
2161 real(RP) :: ENGI(
ka,
ia,
ja)
2163 real(RP) :: RHOQ(
ka,
ia,
ja)
2166 integer :: i, j, k, iq
2171 call stat_total( total,
dens(:,:,:), var_name(
i_dens) )
2172 call stat_total( total,
momz(:,:,:), var_name(
i_momz) )
2173 call stat_total( total,
momx(:,:,:), var_name(
i_momx) )
2174 call stat_total( total,
momy(:,:,:), var_name(
i_momy) )
2175 call stat_total( total,
rhot(:,:,:), var_name(
i_rhot) )
2178 rhoq(:,:,:) =
dens(:,:,:) *
qtrc(:,:,:,iq)
2180 call stat_total( total, rhoq(:,:,:),
aq_name(iq) )
2183 call thermodyn_qd( qdry(:,:,:), &
2186 call thermodyn_temp_pres( temp(:,:,:), &
2194 call stat_total( total, rhoq(:,:,:),
'QDRY' )
2198 call stat_total( total, rhoq(:,:,:),
'QTOT' )
2204 w(k,i,j) = 0.5_rp * (
momz(k-1,i,j)+
momz(k,i,j) ) /
dens(k,i,j)
2205 u(k,i,j) = 0.5_rp * (
momx(k,i-1,j)+
momx(k,i,j) ) /
dens(k,i,j)
2206 v(k,i,j) = 0.5_rp * (
momy(k,i,j-1)+
momy(k,i,j) ) /
dens(k,i,j)
2210 engk(k,i,j) = 0.5_rp *
dens(k,i,j) * ( w(k,i,j)**2 &
2214 engi(k,i,j) =
dens(k,i,j) * qdry(k,i,j) * temp(k,i,j) * cvdry
2216 engi(k,i,j) = engi(k,i,j) &
2217 +
dens(k,i,j) *
qtrc(k,i,j,iq) * temp(k,i,j) * cvw(iq)
2220 engi(k,i,j) = engi(k,i,j) +
dens(k,i,j) *
qtrc(k,i,j,
i_qv) * lhv
2223 engi(k,i,j) = engi(k,i,j) -
dens(k,i,j) *
qtrc(k,i,j,iq) * lhf
2226 engt(k,i,j) = engp(k,i,j) + engk(k,i,j) + engi(k,i,j)
2231 call stat_total( total, engp(:,:,:),
'ENGP' )
2232 call stat_total( total, engk(:,:,:),
'ENGK' )
2233 call stat_total( total, engi(:,:,:),
'ENGI' )
2234 call stat_total( total, engt(:,:,:),
'ENGT' )
2248 thermodyn_temp_pres => atmos_thermodyn_temp_pres
2256 call thermodyn_temp_pres(
temp(:,:,:), &
2266 w(k,i,j) = 0.5_rp * (
momz(k-1,i,j)+
momz(k,i,j) ) /
dens(k,i,j)
2287 u(k,i,j) = 0.5_rp * (
momx(k,i-1,j)+
momx(k,i,j) ) /
dens(k,i,j)
2302 v(k,i,j) = 0.5_rp * (
momy(k,i,j-1)+
momy(k,i,j) ) /
dens(k,i,j)
2316 w( 1:
ks-1,i,j) =
w(
ks,i,j)
2317 u( 1:
ks-1,i,j) =
u(
ks,i,j)
2318 v( 1:
ks-1,i,j) =
v(
ks,i,j)
2325 call comm_vars8(
u(:,:,:), 1 )
2326 call comm_vars8(
v(:,:,:), 2 )
2327 call comm_wait (
u(:,:,:), 1, .false. )
2328 call comm_wait (
v(:,:,:), 2, .false. )
2375 thermodyn_qd => atmos_thermodyn_qd, &
2376 thermodyn_temp_pres => atmos_thermodyn_temp_pres, &
2396 real(RP) :: QDRY(
ka,
ia,
ja)
2397 real(RP) :: RHOQ(
ka,
ia,
ja)
2398 real(RP) :: PRCP(
ia,
ja)
2400 real(RP) :: ENGT(
ka,
ia,
ja)
2401 real(RP) :: ENGP(
ka,
ia,
ja)
2402 real(RP) :: ENGK(
ka,
ia,
ja)
2403 real(RP) :: ENGI(
ka,
ia,
ja)
2405 real(RP) :: ENGFLXT (
ia,
ja)
2406 real(RP) :: SFLX_RD_net (
ia,
ja)
2407 real(RP) :: TOAFLX_RD_net(
ia,
ja)
2409 real(RP) :: WORK (
ka,
ia,
ja,3)
2410 character(len=H_SHORT) :: WNAME(3)
2413 integer :: k, i, j, iq
2418 call monit_in(
dens(:,:,:), var_name(
i_dens), var_desc(
i_dens), var_unit(
i_dens), ndim=3, isflux=.false. )
2419 call monit_in(
momz(:,:,:), var_name(
i_momz), var_desc(
i_momz), var_unit(
i_momz), ndim=3, isflux=.false. )
2420 call monit_in(
momx(:,:,:), var_name(
i_momx), var_desc(
i_momx), var_unit(
i_momx), ndim=3, isflux=.false. )
2421 call monit_in(
momy(:,:,:), var_name(
i_momy), var_desc(
i_momy), var_unit(
i_momy), ndim=3, isflux=.false. )
2422 call monit_in(
rhot(:,:,:), var_name(
i_rhot), var_desc(
i_rhot), var_unit(
i_rhot), ndim=3, isflux=.false. )
2431 rhoq(k,i,j) =
dens(k,i,j) *
qtrc(k,i,j,iq)
2441 call thermodyn_qd( qdry(:,:,:), &
2449 rhoq(k,i,j) =
dens(k,i,j) * qdry(k,i,j)
2453 call monit_put( ad_monit_id(i_qdry), rhoq(:,:,:) )
2461 rhoq(k,i,j) =
dens(k,i,j) * ( 1.0_rp - qdry(k,i,j) )
2465 call monit_put( ad_monit_id(i_qtot), rhoq(:,:,:) )
2468 call monit_put( ad_monit_id(i_evap), sflx_qtrc(:,:,
i_qv) )
2474 prcp(i,j) = sflx_rain(i,j) + sflx_snow(i,j)
2477 call monit_put( ad_monit_id(i_prcp), prcp(:,:) )
2481 call thermodyn_temp_pres(
temp(:,:,:), &
2493 engk(k,i,j) = 0.5_rp *
dens(k,i,j) * (
w(k,i,j)**2 &
2497 engi(k,i,j) =
dens(k,i,j) * qdry(k,i,j) *
temp(k,i,j) * cvdry
2499 engi(k,i,j) = engi(k,i,j) &
2503 engi(k,i,j) = engi(k,i,j) +
dens(k,i,j) *
qtrc(k,i,j,
i_qv) * lhv
2506 engi(k,i,j) = engi(k,i,j) -
dens(k,i,j) *
qtrc(k,i,j,iq) * lhf
2517 engt(k,i,j) = engp(k,i,j) + engk(k,i,j) + engi(k,i,j)
2525 sflx_rd_net(i,j) = ( sflx_lw_up(i,j) - sflx_lw_dn(i,j) ) &
2526 + ( sflx_sw_up(i,j) - sflx_sw_dn(i,j) )
2528 toaflx_rd_net(i,j) = ( toaflx_lw_up(i,j) - toaflx_lw_dn(i,j) ) &
2529 + ( toaflx_sw_up(i,j) - toaflx_sw_dn(i,j) )
2537 engflxt(i,j) = sflx_sh(i,j) + sflx_lh(i,j) &
2538 + sflx_rd_net(i,j) - toaflx_rd_net(i,j)
2542 call monit_put( ad_monit_id(i_engt), engt(:,:,:) )
2543 call monit_put( ad_monit_id(i_engp), engp(:,:,:) )
2544 call monit_put( ad_monit_id(i_engk), engk(:,:,:) )
2545 call monit_put( ad_monit_id(i_engi), engi(:,:,:) )
2547 call monit_put( ad_monit_id(i_engflxt), engflxt(:,:) )
2550 call monit_put( ad_monit_id(i_engsfc_sh), sflx_sh(:,:) )
2551 call monit_put( ad_monit_id(i_engsfc_lh), sflx_lh(:,:) )
2552 call monit_put( ad_monit_id(i_engsfc_rd), sflx_rd_net(:,:) )
2553 call monit_put( ad_monit_id(i_engtoa_rd), toaflx_rd_net(:,:) )
2555 call monit_put( ad_monit_id(i_engsfc_lw_up), sflx_lw_up(:,:) )
2556 call monit_put( ad_monit_id(i_engsfc_lw_dn), sflx_lw_dn(:,:) )
2557 call monit_put( ad_monit_id(i_engsfc_sw_up), sflx_sw_up(:,:) )
2558 call monit_put( ad_monit_id(i_engsfc_sw_dn), sflx_sw_dn(:,:) )
2560 call monit_put( ad_monit_id(i_engtoa_lw_up), toaflx_lw_up(:,:) )
2561 call monit_put( ad_monit_id(i_engtoa_lw_dn), toaflx_lw_dn(:,:) )
2562 call monit_put( ad_monit_id(i_engtoa_sw_up), toaflx_sw_up(:,:) )
2563 call monit_put( ad_monit_id(i_engtoa_sw_dn), toaflx_sw_dn(:,:) )
2565 if ( atmos_vars_checkrange )
then 2567 work(:,:,:,1) =
w(:,:,:)
2569 work(:,:,:,2) =
u(:,:,:)
2571 work(:,:,:,3) =
v(:,:,:)
2580 if ( atmos_vars_checkcfl > 0.0_rp )
then 2582 work(:,:,:,:) = 0.0_rp
2587 work(k,i,j,1) = 0.5_rp * abs(
momz(k,i,j)) / (
dens(k+1,i,j) +
dens(k,i,j) ) &
2589 work(k,i,j,2) = 0.5_rp * abs(
momx(k,i,j)) / (
dens(k,i+1,j) +
dens(k,i,j) ) &
2591 work(k,i,j,3) = 0.5_rp * abs(
momy(k,i,j)) / (
dens(k,i,j+1) +
dens(k,i,j) ) &
2597 cflmax = maxval( work(:,:,:,:) )
2598 if ( cflmax > atmos_vars_checkcfl )
then 2599 if(
io_l )
write(
io_fid_log,*)
"*** [ATMOS_vars_monitor] Courant number exceeded the upper limit. : ", cflmax
2600 write(*,*)
"*** [ATMOS_vars_monitor] Courant number exceeded the upper limit. : ", cflmax, &
2603 wname(1) =
"Courant num. Z" 2604 wname(2) =
"Courant num. X" 2605 wname(3) =
"Courant num. Y" 2607 call stat_detail( work(:,:,:,:), wname(:), supress_globalcomm=.true. )
2649 atmos_phy_mp_sdm_restart_create
2655 character(len=20) :: timelabel
2656 character(len=H_LONG) :: basename
2662 if( sd_rest_flg_out )
then 2663 if(
io_l )
write(
io_fid_log,*)
'*** Output random number for SDM ***' 2664 call atmos_phy_mp_sdm_restart_create(nowsec)
2670 call time_gettimelabel( timelabel )
2674 if(
io_l )
write(
io_fid_log,*)
'*** Output restart file (ATMOS) ***' 2679 allocate( var_id(vmax+
qa) )
2727 atmos_phy_mp_sdm_restart_enddef
2734 if( sd_rest_flg_out )
then 2735 call atmos_phy_mp_sdm_restart_enddef
2739 if ( restart_fid .NE. -1 )
then 2788 atmos_phy_mp_sdm_restart_close
2795 if( sd_rest_flg_out )
then 2796 call atmos_phy_mp_sdm_restart_close
2800 if ( restart_fid .NE. -1 )
then 2804 deallocate( var_id )
2852 atmos_phy_mp_sdm_restart_def_var
2860 if( sd_rest_flg_out )
then 2861 call atmos_phy_mp_sdm_restart_def_var
2865 if ( restart_fid .NE. -1 )
then 2930 atmos_phy_mp_sdm_restart_write_var
2938 if( sd_rest_flg_out )
then 2939 call atmos_phy_mp_sdm_restart_write_var
2943 if ( restart_fid .NE. -1 )
then 2949 call fileio_write_var( restart_fid, var_id(
i_dens),
dens(:,:,:), var_name(
i_dens),
'ZXY' )
2950 call fileio_write_var( restart_fid, var_id(
i_momz),
momz(:,:,:), var_name(
i_momz),
'ZHXY' )
2951 call fileio_write_var( restart_fid, var_id(
i_momx),
momx(:,:,:), var_name(
i_momx),
'ZXHY' )
2952 call fileio_write_var( restart_fid, var_id(
i_momy),
momy(:,:,:), var_name(
i_momy),
'ZXYH' )
2953 call fileio_write_var( restart_fid, var_id(
i_rhot),
rhot(:,:,:), var_name(
i_rhot),
'ZXY' )
2956 call fileio_write_var( restart_fid, var_id(vmax+iq),
qtrc(:,:,:,iq),
aq_name(iq),
'ZXY' )
integer, public imax
of computational cells: x
subroutine, public atmos_phy_sf_vars_restart_def_var
Write restart.
real(rp), dimension(:,:,:), allocatable, public dens_tp
integer, parameter, public i_rhot
module ATMOSPHERE / Adiabatic process
character(len=h_mid), dimension(:), allocatable, public aq_desc
integer, public is
start point of inner domain: x, local
subroutine, public atmos_phy_ae_vars_restart_create
Create restart file.
subroutine, public atmos_dyn_vars_restart_def_var
Define variables in restart file.
subroutine, public atmos_phy_cp_vars_restart_def_var
Write restart.
logical, public atmos_sw_phy_cp
logical, public statistics_checktotal
calc&report variable totals to logfile?
real(rp), dimension(:,:,:), allocatable, target, public momz
subroutine, public atmos_phy_rd_vars_restart_close
Close restart file.
real(rp), public const_cvdry
specific heat (dry air,constant volume) [J/kg/K]
subroutine, public atmos_phy_tb_vars_restart_enddef
Exit netCDF define mode.
integer, public je
end point of inner domain: y, local
module Atmosphere / Physics Cumulus
real(rp), dimension(:), allocatable, public grid_rcdy
reciprocal of center-dy
subroutine, public atmos_phy_sf_vars_restart_read
Read restart.
subroutine, public atmos_phy_tb_vars_restart_read
Read restart.
real(rp), public const_cpdry
specific heat (dry air,constant pressure) [J/kg/K]
subroutine, public hist_reg(itemid, zinterp, item, desc, unit, ndim, xdim, ydim, zdim)
Register/Append variable to history file.
module ATMOSPHERE / Saturation adjustment
subroutine, public atmos_phy_rd_vars_restart_create
Create restart file.
subroutine, public atmos_phy_ch_vars_setup
Setup.
real(rp), dimension(:,:,:), allocatable, public atmos_phy_sf_sflx_qtrc
subroutine, public prc_mpistop
Abort MPI.
subroutine, public atmos_phy_ch_vars_restart_close
Close restart file.
subroutine, public atmos_phy_cp_vars_restart_enddef
Exit netCDF define mode.
logical, public atmos_sw_phy_rd
real(rp), dimension(:,:,:), allocatable, target, public rhot
real(rp), dimension(:,:,:), allocatable, public momy_tp
real(dp), public time_nowsec
subday part of current time [sec]
subroutine, public atmos_phy_mp_vars_restart_enddef
Exit netCDF define mode.
real(rp), dimension(:), allocatable, public aq_cp
CP for each hydrometeors [J/kg/K].
subroutine, public atmos_vars_restart_close
Close restart file.
subroutine, public atmos_vars_fillhalo(FILL_BND)
HALO Communication.
module Atmosphere / Physics Cloud Microphysics
integer, parameter, public i_momx
logical, public io_l
output log or not? (this process)
subroutine, public atmos_phy_cp_vars_restart_write
Write restart.
real(rp), dimension(:), allocatable, public grid_rcdx
reciprocal of center-dx
real(rp), dimension(:,:,:), allocatable, public pres
subroutine, public atmos_dyn_vars_restart_enddef
Exit netCDF define mode.
module Atmosphere / Dynamics
subroutine, public atmos_phy_tb_vars_restart_write
Write restart.
integer, parameter, public i_momz
subroutine, public atmos_phy_cp_vars_restart_write_var
Write restart.
subroutine, public atmos_dyn_vars_restart_close
Close restart file.
module ATMOSPHERIC Variables
real(rp), dimension(:,:,:,:), pointer, public qtrc_av
real(rp), dimension(:,:,:), allocatable, target, public momx
subroutine, public atmos_vars_restart_write
Write restart of atmospheric variables.
subroutine, public atmos_phy_ch_vars_restart_enddef
Exit netCDF define mode.
subroutine, public atmos_phy_ch_vars_restart_def_var
Write restart.
integer, public ke
end point of inner domain: z, local
subroutine, public atmos_phy_mp_vars_restart_def_var
Define variables in restart file.
real(rp), dimension(:,:,:), allocatable, public rhot_tp
real(rp), dimension(:,:,:), allocatable, public real_fz
geopotential height [m] (cell face )
subroutine, public atmos_phy_cp_vars_restart_create
Create restart file.
real(rp), public atmos_restart_check_criterion
real(rp), dimension(:,:,:), allocatable, public real_cz
geopotential height [m] (cell center)
logical, public atmos_sw_phy_ae
real(rp), dimension(:), allocatable, public grid_rfdy
reciprocal of face-dy
real(rp), dimension(:,:,:), allocatable, target, public dens
subroutine, public atmos_phy_sf_vars_restart_enddef
Exit netCDF define mode.
subroutine, public atmos_dyn_vars_restart_write
Write restart.
real(rp), dimension(:,:), allocatable, public atmos_phy_rd_sflx_lw_up
integer, parameter, public i_dens
real(rp), dimension(:,:), allocatable, public atmos_phy_mp_sflx_rain
character(len=h_long), public atmos_restart_check_basename
integer, parameter, public i_momy
subroutine, public atmos_phy_sf_vars_setup
Setup.
real(rp), public const_rdry
specific gas constant (dry air) [J/kg/K]
real(rp), dimension(:,:), allocatable, public atmos_phy_rd_toaflx_sw_up
subroutine, public atmos_phy_tb_vars_restart_create
Create restart file.
subroutine, public atmos_phy_cp_vars_restart_close
Close restart file.
real(rp), dimension(:,:), allocatable, public atmos_phy_rd_sflx_lw_dn
logical, public atmos_restart_output
output restart file?
subroutine, public atmos_phy_sf_vars_restart_write_var
Write variables to restart file.
module Atmosphere / Physics Radiation
subroutine, public atmos_adiabat_cape(Kstr, DENS, TEMP, PRES, QTRC, CZ, FZ, CAPE, CIN, LCL, LFC, LNB)
Calc CAPE and CIN Type of parcel method: Pseudo-adiabatic ascend from lowermost layer of the model Re...
real(rp), dimension(:,:,:), allocatable, target, public momz_avw
module ATMOSPHERIC Surface Variables
subroutine, public atmos_phy_sf_vars_restart_write
Write restart.
subroutine, public atmos_phy_sf_vars_restart_close
Close restart file.
real(rp), dimension(:,:,:,:), allocatable, target, public qtrc_avw
subroutine, public atmos_phy_cp_vars_setup
Setup.
real(rp), dimension(:,:,:), pointer, public momx_av
logical, public atmos_sw_phy_tb
real(rp), dimension(:,:,:,:), allocatable, public gtrans_mapf
map factor
real(rp), dimension(:,:), allocatable, public atmos_phy_rd_sflx_sw_up
subroutine, public fileio_def_var(fid, vid, varname, desc, unit, axistype, datatype, timeintv)
Define a variable to file.
integer, public ia
of x whole cells (local, with HALO)
real(rp), dimension(:,:,:), allocatable, public temp
character(len=h_mid), public atmos_restart_out_dtype
REAL4 or REAL8.
subroutine, public atmos_phy_rd_vars_restart_def_var
Define variables in restart file.
subroutine, public comm_horizontal_mean(varmean, var)
calculate horizontal mean (global total with communication)
subroutine, public time_gettimelabel(timelabel)
generate time label
subroutine, public monit_reg(itemid, item, desc, unit, ndim, isflux)
Search existing item, or matching check between requested and registered item.
integer, public ka
of z whole cells (local, with HALO)
real(rp), dimension(:,:), allocatable, public atmos_phy_rd_sflx_sw_dn
real(rp), public const_pre00
pressure reference [Pa]
subroutine, public atmos_phy_mp_vars_restart_create
Create restart file.
real(rp), dimension(:,:,:,:), allocatable, public rhoq_tp
integer, public kmax
of computational cells: z
subroutine, public atmos_vars_setup
Setup.
logical, public atmos_sw_dyn
subroutine, public fileio_create(fid, basename, title, datatype, date, subsec, append, nozcoord)
Create/open a netCDF file.
subroutine, public atmos_vars_total
Budget monitor for atmosphere.
character(len=h_short), dimension(:), allocatable, public aq_name
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sflx_lh
real(rp), public const_grav
standard acceleration of gravity [m/s2]
integer, public js
start point of inner domain: y, local
subroutine, public atmos_phy_tb_vars_setup
Setup.
real(rp), dimension(:,:), allocatable, public atmos_phy_rd_toaflx_lw_dn
subroutine, public atmos_dyn_vars_restart_read
Read restart.
real(dp), public time_dtsec_atmos_dyn
time interval of dynamics [sec]
logical, public atmos_sw_phy_sf
subroutine, public atmos_phy_rd_vars_setup
Setup.
logical, public atmos_sw_phy_ch
subroutine, public atmos_phy_ae_vars_restart_enddef
Exit netCDF define mode.
module Atmosphere / Physics Turbulence
subroutine, public stat_detail(var, varname, supress_globalcomm)
Search global maximum & minimum value.
real(rp), dimension(:,:,:), allocatable, target, public momx_avw
real(rp), dimension(:,:,:), pointer, public dens_av
real(rp), public const_lhv
latent heat of vaporizaion for use
real(rp), parameter, public const_rvap
specific gas constant (water vapor) [J/kg/K]
logical, public atmos_sw_phy_mp
subroutine, public atmos_vars_restart_write_var
Write restart of atmospheric variables.
real(rp), dimension(:), allocatable, public aq_cv
CV for each hydrometeors [J/kg/K].
character(len=h_short), dimension(:), allocatable, public aq_unit
subroutine, public atmos_phy_rd_vars_restart_write
Write restart.
integer, public ks
start point of inner domain: z, local
subroutine, public atmos_phy_mp_vars_restart_write_var
Write restart.
subroutine, public atmos_dyn_vars_setup
Setup.
subroutine, public atmos_phy_ae_vars_setup
Setup.
subroutine, public atmos_phy_ae_vars_restart_read
Read restart.
integer, public prc_myrank
process num in local communicator
real(rp), dimension(:,:,:), allocatable, public momx_tp
real(rp), dimension(:,:,:), allocatable, target, public momy
module Atmosphere / Physics Chemistry
subroutine, public fileio_enddef(fid)
Exit netCDF file define mode.
subroutine, public atmos_phy_rd_vars_restart_write_var
Write variables to restart file.
subroutine, public prof_rapstart(rapname_base, level)
Start raptime.
real(rp), public const_lhf
latent heat of fusion for use
subroutine, public atmos_vars_monitor
monitor output
subroutine, public atmos_vars_restart_create
Create atmospheric restart file.
real(rp), dimension(:,:,:), allocatable, public pott
real(rp), dimension(:,:), allocatable, public atmos_phy_mp_sflx_snow
real(rp), dimension(:,:,:), allocatable, public momz_tp
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sflx_sh
subroutine, public atmos_vars_restart_enddef
Exit netCDF define mode.
real(rp), dimension(:,:,:), allocatable, target, public dens_avw
real(rp), dimension(:,:,:), allocatable, public v
subroutine, public atmos_phy_mp_vars_setup
Setup.
subroutine, public atmos_phy_sf_vars_restart_create
Create restart file.
character(len=h_mid), public atmos_restart_out_title
title of the output file
integer, public ie
end point of inner domain: x, local
logical, public atmos_restart_check
check value consistency?
subroutine, public atmos_phy_mp_vars_restart_write
Write restart.
module ATMOSPHERE / Physics Cloud Microphysics
subroutine, public atmos_phy_mp_vars_restart_read
Read restart.
real(rp), dimension(:,:,:), allocatable, public w
subroutine, public atmos_phy_mp_vars_restart_close
Close restart file.
module ATMOSPHERE / Thermodynamics
subroutine, public atmos_phy_ch_vars_restart_write_var
Write restart.
subroutine, public atmos_phy_rd_vars_restart_enddef
Exit netCDF define mode.
logical, public io_lnml
output log or not? (for namelist, this process)
real(rp), dimension(:,:), allocatable, public atmos_phy_rd_toaflx_sw_dn
character(len=h_long), public atmos_restart_in_basename
basename of the restart file
subroutine, public atmos_phy_tb_vars_restart_def_var
Write restart.
character(len=h_long), public atmos_restart_out_basename
basename of the output file
subroutine, public atmos_phy_ae_vars_restart_def_var
Write restart.
subroutine, public atmos_phy_ae_vars_restart_write
Write restart.
subroutine, public atmos_phy_rd_vars_restart_read
Read restart.
real(rp), dimension(:,:,:), allocatable, public u
real(rp), dimension(:,:,:), pointer, public momz_av
real(rp), dimension(:), allocatable, public grid_rfdx
reciprocal of face-dx
subroutine, public atmos_phy_ch_vars_restart_write
Write restart.
subroutine, public atmos_phy_cp_vars_restart_read
Read restart.
real(rp), dimension(:,:,:), allocatable, target, public rhot_avw
subroutine, public fileio_close(fid)
Close a netCDF file.
real(rp), dimension(:,:,:), pointer, public rhot_av
subroutine, public atmos_dyn_vars_restart_write_var
Write variables to restart file.
integer, public io_fid_conf
Config file ID.
subroutine, public atmos_phy_ae_vars_restart_write_var
Write restart.
subroutine, public atmos_phy_ch_vars_restart_create
Create restart file.
subroutine, public atmos_vars_restart_def_var
Define atmospheric variables in restart file.
subroutine, public atmos_phy_ae_vars_restart_close
Close restart file.
subroutine, public atmos_vars_history
History output set for atmospheric variables.
integer, public io_fid_log
Log file ID.
real(rp), dimension(:,:,:), pointer, public momy_av
subroutine, public prof_rapend(rapname_base, level)
Save raptime.
subroutine, public atmos_vars_restart_check
Check and compare between last data and sample data.
real(rp), dimension(:,:,:), allocatable, target, public momy_avw
subroutine, public atmos_phy_ch_vars_restart_read
Read restart.
module ATMOSPHERE / Physics Aerosol Microphysics
real(rp), dimension(:,:), allocatable, public atmos_phy_cp_sflx_rain
subroutine, public atmos_dyn_vars_restart_create
Create restart file.
logical, public atmos_restart_in_allowmissingq
integer, public jmax
of computational cells: y
real(rp), dimension(:,:), allocatable, public atmos_phy_rd_toaflx_lw_up
subroutine, public atmos_phy_tb_vars_restart_close
Close restart file.
subroutine, public atmos_vars_restart_read
Read restart of atmospheric variables.
subroutine, public atmos_phy_tb_vars_restart_write_var
Write restart.
logical, public atmos_use_average
subroutine, public atmos_vars_diagnostics
Calc diagnostic variables.
real(rp), dimension(:,:,:,:), allocatable, target, public qtrc
integer, public ja
of y whole cells (local, with HALO)