16 #include "inc_openmp.h" 63 real(RP),
public,
target,
allocatable ::
dens(:,:,:)
64 real(RP),
public,
target,
allocatable ::
momz(:,:,:)
65 real(RP),
public,
target,
allocatable ::
momx(:,:,:)
66 real(RP),
public,
target,
allocatable ::
momy(:,:,:)
67 real(RP),
public,
target,
allocatable ::
rhot(:,:,:)
68 real(RP),
public,
target,
allocatable ::
qtrc(:,:,:,:)
70 real(RP),
public,
target,
allocatable ::
dens_avw(:,:,:)
71 real(RP),
public,
target,
allocatable ::
momz_avw(:,:,:)
72 real(RP),
public,
target,
allocatable ::
momx_avw(:,:,:)
73 real(RP),
public,
target,
allocatable ::
momy_avw(:,:,:)
74 real(RP),
public,
target,
allocatable ::
rhot_avw(:,:,:)
75 real(RP),
public,
target,
allocatable ::
qtrc_avw(:,:,:,:)
77 real(RP),
public,
pointer ::
dens_av(:,:,:)
78 real(RP),
public,
pointer ::
momz_av(:,:,:)
79 real(RP),
public,
pointer ::
momx_av(:,:,:)
80 real(RP),
public,
pointer ::
momy_av(:,:,:)
81 real(RP),
public,
pointer ::
rhot_av(:,:,:)
82 real(RP),
public,
pointer ::
qtrc_av(:,:,:,:)
85 real(RP),
public,
allocatable ::
dens_tp(:,:,:)
86 real(RP),
public,
allocatable ::
momz_tp(:,:,:)
87 real(RP),
public,
allocatable ::
momx_tp(:,:,:)
88 real(RP),
public,
allocatable ::
momy_tp(:,:,:)
89 real(RP),
public,
allocatable ::
rhot_tp(:,:,:)
90 real(RP),
public,
allocatable ::
rhoq_tp(:,:,:,:)
93 real(RP),
public,
allocatable ::
temp(:,:,:)
94 real(RP),
public,
allocatable ::
pres(:,:,:)
95 real(RP),
public,
allocatable ::
w (:,:,:)
96 real(RP),
public,
allocatable ::
u (:,:,:)
97 real(RP),
public,
allocatable ::
v (:,:,:)
98 real(RP),
public,
allocatable ::
pott(:,:,:)
108 logical,
private :: atmos_vars_checkrange = .false.
109 real(RP),
private :: atmos_vars_checkcfl = 0.0_rp
111 integer,
private,
parameter :: vmax = 5
113 character(len=H_SHORT),
private :: var_name(vmax)
114 character(len=H_MID),
private :: var_desc(vmax)
115 character(len=H_SHORT),
private :: var_unit(vmax)
117 data var_name /
'DENS', &
122 data var_desc /
'density', &
127 data var_unit /
'kg/m3', &
134 integer,
private :: var_hist_id(vmax)
136 integer,
private,
allocatable :: aq_hist_id(:)
139 integer,
private,
parameter :: ad_nmax = 70
141 integer,
private,
parameter :: i_w = 1
142 integer,
private,
parameter :: i_u = 2
143 integer,
private,
parameter :: i_v = 3
144 integer,
private,
parameter :: i_pott = 4
146 integer,
private,
parameter :: i_qdry = 5
147 integer,
private,
parameter :: i_qtot = 6
148 integer,
private,
parameter :: i_qhyd = 7
149 integer,
private,
parameter :: i_qliq = 8
150 integer,
private,
parameter :: i_qice = 9
152 integer,
private,
parameter :: i_lwp = 10
153 integer,
private,
parameter :: i_iwp = 11
154 integer,
private,
parameter :: i_pw = 12
156 integer,
private,
parameter :: i_rtot = 13
157 integer,
private,
parameter :: i_cptot = 14
158 integer,
private,
parameter :: i_pres = 15
159 integer,
private,
parameter :: i_temp = 16
161 integer,
private,
parameter :: i_potl = 17
162 integer,
private,
parameter :: i_rha = 18
163 integer,
private,
parameter :: i_rhl = 19
164 integer,
private,
parameter :: i_rhi = 20
166 integer,
private,
parameter :: i_vor = 21
167 integer,
private,
parameter :: i_div = 22
168 integer,
private,
parameter :: i_hdiv = 23
170 integer,
private,
parameter :: i_dens_prim = 24
171 integer,
private,
parameter :: i_w_prim = 25
172 integer,
private,
parameter :: i_u_prim = 26
173 integer,
private,
parameter :: i_v_prim = 27
174 integer,
private,
parameter :: i_pott_prim = 28
175 integer,
private,
parameter :: i_w_prim2 = 29
176 integer,
private,
parameter :: i_pt_w_prim = 30
177 integer,
private,
parameter :: i_w_prim3 = 31
178 integer,
private,
parameter :: i_tke_rs = 32
180 integer,
private,
parameter :: i_engp = 33
181 integer,
private,
parameter :: i_engk = 34
182 integer,
private,
parameter :: i_engi = 35
183 integer,
private,
parameter :: i_engt = 36
185 integer,
private,
parameter :: i_engsfc_sh = 37
186 integer,
private,
parameter :: i_engsfc_lh = 38
187 integer,
private,
parameter :: i_engsfc_rd = 39
188 integer,
private,
parameter :: i_engtoa_rd = 40
190 integer,
private,
parameter :: i_engsfc_lw_up = 41
191 integer,
private,
parameter :: i_engsfc_lw_dn = 42
192 integer,
private,
parameter :: i_engsfc_sw_up = 43
193 integer,
private,
parameter :: i_engsfc_sw_dn = 44
195 integer,
private,
parameter :: i_engtoa_lw_up = 45
196 integer,
private,
parameter :: i_engtoa_lw_dn = 46
197 integer,
private,
parameter :: i_engtoa_sw_up = 47
198 integer,
private,
parameter :: i_engtoa_sw_dn = 48
200 integer,
private,
parameter :: i_engflxt = 49
202 integer,
private,
parameter :: i_evap = 50
203 integer,
private,
parameter :: i_prcp = 51
205 integer,
private,
parameter :: i_dens_mean = 52
206 integer,
private,
parameter :: i_w_mean = 53
207 integer,
private,
parameter :: i_u_mean = 54
208 integer,
private,
parameter :: i_v_mean = 55
209 integer,
private,
parameter :: i_pott_mean = 56
210 integer,
private,
parameter :: i_t_mean = 57
212 integer,
private,
parameter :: i_qv_mean = 58
213 integer,
private,
parameter :: i_qhyd_mean = 59
214 integer,
private,
parameter :: i_qliq_mean = 60
215 integer,
private,
parameter :: i_qice_mean = 61
217 integer,
private,
parameter :: i_qsat = 62
219 integer,
private,
parameter :: i_uabs = 63
221 integer,
private,
parameter :: i_cape = 64
222 integer,
private,
parameter :: i_cin = 65
223 integer,
private,
parameter :: i_lcl = 66
224 integer,
private,
parameter :: i_lfc = 67
225 integer,
private,
parameter :: i_lnb = 68
227 integer,
private,
parameter :: i_pblh = 69
228 integer,
private,
parameter :: i_mse = 70
230 integer,
private :: ad_hist_id (ad_nmax)
231 integer,
private :: ad_prep_sw (ad_nmax)
232 integer,
private :: ad_monit_id(ad_nmax)
265 namelist / param_atmos_vars / &
275 atmos_vars_checkrange, &
284 if(
io_l )
write(
io_fid_log,*)
'++++++ Module[VARS] / Categ[ATMOS] / Origin[SCALE-RM]' 337 if(
io_l )
write(
io_fid_log,*)
'*** Not found namelist. Default used.' 338 elseif( ierr > 0 )
then 339 write(*,*)
'xxx Not appropriate names in namelist PARAM_ATMOS_VARS. Check!' 345 if(
io_l )
write(
io_fid_log,*)
'*** List of prognostic variables (ATMOS) ***' 347 '*** |',
'VARNAME ',
'|',
'DESCRIPTION ',
'[',
'UNIT ',
']' 350 '*** NO.',iv,
'|',var_name(iv),
'|', var_desc(iv),
'[', var_unit(iv),
']' 377 if(
io_l )
write(
io_fid_log,*)
'*** Check value range of variables? : ', atmos_vars_checkrange
378 if ( atmos_vars_checkcfl > 0.0_rp )
then 380 if(
io_l )
write(
io_fid_log,*)
'*** Limit of Courant number : ', atmos_vars_checkcfl
398 allocate( aq_hist_id(
qa))
415 call hist_reg( ad_hist_id(i_w ) , zinterp,
'W',
'velocity w',
'm/s', ndim=3 )
416 call hist_reg( ad_hist_id(i_u ) , zinterp,
'U',
'velocity u',
'm/s', ndim=3 )
417 call hist_reg( ad_hist_id(i_v ) , zinterp,
'V',
'velocity v',
'm/s', ndim=3 )
418 call hist_reg( ad_hist_id(i_pott) , zinterp,
'PT',
'potential temp.',
'K', ndim=3 )
420 call hist_reg( ad_hist_id(i_qdry) , zinterp,
'QDRY',
'dry air',
'kg/kg', ndim=3 )
421 call hist_reg( ad_hist_id(i_qtot) , zinterp,
'QTOT',
'total water',
'kg/kg', ndim=3 )
422 call hist_reg( ad_hist_id(i_qhyd) , zinterp,
'QHYD',
'total hydrometeors',
'kg/kg', ndim=3 )
423 call hist_reg( ad_hist_id(i_qliq) , zinterp,
'QLIQ',
'total liquid water',
'kg/kg', ndim=3 )
424 call hist_reg( ad_hist_id(i_qice) , zinterp,
'QICE',
'total ice water',
'kg/kg', ndim=3 )
426 call hist_reg( ad_hist_id(i_lwp) , zinterp,
'LWP',
'liquid water path',
'g/m2', ndim=2 )
427 call hist_reg( ad_hist_id(i_iwp) , zinterp,
'IWP',
'ice water path',
'g/m2', ndim=2 )
428 call hist_reg( ad_hist_id(i_pw ) , zinterp,
'PW',
'precipitable water',
'g/m2', ndim=2 )
430 call hist_reg( ad_hist_id(i_rtot) , zinterp,
'RTOT',
'Total gas constant',
'J/kg/K', ndim=3 )
431 call hist_reg( ad_hist_id(i_cptot), zinterp,
'CPTOT',
'Total heat capacity',
'J/kg/K', ndim=3 )
432 call hist_reg( ad_hist_id(i_pres) , zinterp,
'PRES',
'pressure',
'Pa', ndim=3 )
433 call hist_reg( ad_hist_id(i_temp) , zinterp,
'T',
'temperature',
'K', ndim=3 )
435 call hist_reg( ad_hist_id(i_potl) , zinterp,
'LWPT',
'liq. potential temp.',
'K', ndim=3 )
436 call hist_reg( ad_hist_id(i_rha) , zinterp,
'RHA',
'relative humidity(liq+ice)',
'%', ndim=3 )
437 call hist_reg( ad_hist_id(i_rhl) , zinterp,
'RH',
'relative humidity(liq)',
'%', ndim=3 )
438 call hist_reg( ad_hist_id(i_rhi) , zinterp,
'RHI',
'relative humidity(ice)',
'%', ndim=3 )
440 call hist_reg( ad_hist_id(i_vor) , zinterp,
'VOR',
'vertical vorticity',
'1/s', ndim=3 )
441 call hist_reg( ad_hist_id(i_div) , zinterp,
'DIV',
'divergence',
'1/s', ndim=3 )
442 call hist_reg( ad_hist_id(i_hdiv) , zinterp,
'HDIV',
'horizontal divergence',
'1/s', ndim=3 )
443 call hist_reg( ad_hist_id(i_uabs) , zinterp,
'Uabs',
'absolute velocity',
'm/s', ndim=3 )
445 call hist_reg( ad_hist_id(i_cape) , zinterp,
'CAPE',
'convection avail. pot. energy',
'm2/s2', ndim=2 )
446 call hist_reg( ad_hist_id(i_cin) , zinterp,
'CIN',
'convection inhibition',
'm2/s2', ndim=2 )
447 call hist_reg( ad_hist_id(i_lcl) , zinterp,
'LCL',
'lifted condensation level',
'm', ndim=2 )
448 call hist_reg( ad_hist_id(i_lfc) , zinterp,
'LFC',
'level of free convection',
'm', ndim=2 )
449 call hist_reg( ad_hist_id(i_lnb) , zinterp,
'LNB',
'level of neutral buoyancy',
'm', ndim=2 )
451 call hist_reg( ad_hist_id(i_pblh) , zinterp,
'PBLH',
'PBL height',
'm', ndim=2 )
452 call hist_reg( ad_hist_id(i_mse) , zinterp,
'MSE',
'moist static energy',
'm2/s2', ndim=3 )
454 call hist_reg( ad_hist_id(i_dens_mean), zinterp,
'DENS_MEAN',
'horiz. mean of density',
'kg/m3', ndim=1 )
455 call hist_reg( ad_hist_id(i_w_mean), zinterp,
'W_MEAN',
'horiz. mean of w',
'm/s', ndim=1 )
456 call hist_reg( ad_hist_id(i_u_mean), zinterp,
'U_MEAN',
'horiz. mean of u',
'm/s', ndim=1 )
457 call hist_reg( ad_hist_id(i_v_mean), zinterp,
'V_MEAN',
'horiz. mean of v',
'm/s', ndim=1 )
458 call hist_reg( ad_hist_id(i_pott_mean), zinterp,
'PT_MEAN',
'horiz. mean of pot.',
'K', ndim=1 )
459 call hist_reg( ad_hist_id(i_t_mean), zinterp,
'T_MEAN',
'horiz. mean of t',
'K', ndim=1 )
460 call hist_reg( ad_hist_id(i_qv_mean), zinterp,
'QV_MEAN',
'horiz. mean of QV',
'1', ndim=1 )
461 call hist_reg( ad_hist_id(i_qhyd_mean), zinterp,
'QHYD_MEAN',
'horiz. mean of QHYD',
'1', ndim=1 )
462 call hist_reg( ad_hist_id(i_qliq_mean), zinterp,
'QLIQ_MEAN',
'horiz. mean of QLIQ',
'1', ndim=1 )
463 call hist_reg( ad_hist_id(i_qice_mean), zinterp,
'QICE_MEAN',
'horiz. mean of QICE',
'1', ndim=1 )
465 call hist_reg( ad_hist_id(i_dens_prim), zinterp,
'DENS_PRIM',
'horiz. deviation of density',
'kg/m3', ndim=3 )
466 call hist_reg( ad_hist_id(i_w_prim ), zinterp,
'W_PRIM',
'horiz. deviation of w',
'm/s', ndim=3 )
467 call hist_reg( ad_hist_id(i_u_prim ), zinterp,
'U_PRIM',
'horiz. deviation of u',
'm/s', ndim=3 )
468 call hist_reg( ad_hist_id(i_v_prim ), zinterp,
'V_PRIM',
'horiz. deviation of v',
'm/s', ndim=3 )
469 call hist_reg( ad_hist_id(i_pott_prim), zinterp,
'PT_PRIM',
'horiz. deviation of pot. temp.',
'K', ndim=3 )
470 call hist_reg( ad_hist_id(i_w_prim2 ), zinterp,
'W_PRIM2',
'variance of w',
'm2/s2', ndim=3 )
471 call hist_reg( ad_hist_id(i_pt_w_prim), zinterp,
'PT_W_PRIM',
'resolved scale heat flux',
'W/s', ndim=3 )
472 call hist_reg( ad_hist_id(i_w_prim3 ), zinterp,
'W_PRIM3',
'skewness of w',
'm3/s3', ndim=3 )
473 call hist_reg( ad_hist_id(i_tke_rs ), zinterp,
'TKE_RS',
'resolved scale TKE',
'm2/s2', ndim=3 )
475 call hist_reg( ad_hist_id(i_engt) , zinterp,
'ENGT',
'total energy',
'J/m3', ndim=3 )
476 call hist_reg( ad_hist_id(i_engp) , zinterp,
'ENGP',
'potential energy',
'J/m3', ndim=3 )
477 call hist_reg( ad_hist_id(i_engk) , zinterp,
'ENGK',
'kinetic energy',
'J/m3', ndim=3 )
478 call hist_reg( ad_hist_id(i_engi) , zinterp,
'ENGI',
'internal energy',
'J/m3', ndim=3 )
482 call monit_reg( ad_monit_id(i_qdry),
'QDRY',
'dry air mass',
'kg', ndim=3, isflux=.false. )
483 call monit_reg( ad_monit_id(i_qtot),
'QTOT',
'water mass',
'kg', ndim=3, isflux=.false. )
484 call monit_reg( ad_monit_id(i_evap),
'EVAP',
'evaporation',
'kg', ndim=2, isflux=.true. )
485 call monit_reg( ad_monit_id(i_prcp),
'PRCP',
'precipitation',
'kg', ndim=2, isflux=.true. )
487 call monit_reg( ad_monit_id(i_engt),
'ENGT',
'total energy',
'J', ndim=3, isflux=.false. )
488 call monit_reg( ad_monit_id(i_engp),
'ENGP',
'potential energy',
'J', ndim=3, isflux=.false. )
489 call monit_reg( ad_monit_id(i_engk),
'ENGK',
'kinetic energy',
'J', ndim=3, isflux=.false. )
490 call monit_reg( ad_monit_id(i_engi),
'ENGI',
'internal energy',
'J', ndim=3, isflux=.false. )
492 call monit_reg( ad_monit_id(i_engflxt),
'ENGFLXT',
'total energy flux',
'J', ndim=2, isflux=.true. )
494 call monit_reg( ad_monit_id(i_engsfc_sh),
'ENGSFC_SH',
'total energy',
'J', ndim=2, isflux=.true. )
495 call monit_reg( ad_monit_id(i_engsfc_lh),
'ENGSFC_LH',
'potential energy',
'J', ndim=2, isflux=.true. )
496 call monit_reg( ad_monit_id(i_engsfc_rd),
'ENGSFC_RD',
'kinetic energy',
'J', ndim=2, isflux=.true. )
497 call monit_reg( ad_monit_id(i_engtoa_rd),
'ENGTOA_RD',
'internal energy',
'J', ndim=2, isflux=.true. )
499 call monit_reg( ad_monit_id(i_engsfc_lw_up),
'ENGSFC_LW_up',
'total energy',
'J', ndim=2, isflux=.true. )
500 call monit_reg( ad_monit_id(i_engsfc_lw_dn),
'ENGSFC_LW_dn',
'potential energy',
'J', ndim=2, isflux=.true. )
501 call monit_reg( ad_monit_id(i_engsfc_sw_up),
'ENGSFC_SW_up',
'kinetic energy',
'J', ndim=2, isflux=.true. )
502 call monit_reg( ad_monit_id(i_engsfc_sw_dn),
'ENGSFC_SW_dn',
'internal energy',
'J', ndim=2, isflux=.true. )
504 call monit_reg( ad_monit_id(i_engtoa_lw_up),
'ENGTOA_LW_up',
'total energy',
'J', ndim=2, isflux=.true. )
505 call monit_reg( ad_monit_id(i_engtoa_lw_dn),
'ENGTOA_LW_dn',
'potential energy',
'J', ndim=2, isflux=.true. )
506 call monit_reg( ad_monit_id(i_engtoa_sw_up),
'ENGTOA_SW_up',
'kinetic energy',
'J', ndim=2, isflux=.true. )
507 call monit_reg( ad_monit_id(i_engtoa_sw_dn),
'ENGTOA_SW_dn',
'internal energy',
'J', ndim=2, isflux=.true. )
509 if ( ad_hist_id(i_w) > 0 )
then 512 if ( ad_hist_id(i_u) > 0 )
then 515 if ( ad_hist_id(i_v) > 0 )
then 518 if ( ad_hist_id(i_pott) > 0 )
then 519 ad_prep_sw(i_pott) = 1
522 if ( ad_hist_id(i_qdry) > 0 &
523 .OR. ad_monit_id(i_qdry) > 0 )
then 524 ad_prep_sw(i_qdry) = 1
526 if ( ad_hist_id(i_qtot) > 0 &
527 .OR. ad_monit_id(i_qtot) > 0 )
then 528 ad_prep_sw(i_qdry) = 1
529 ad_prep_sw(i_qtot) = 1
531 if ( ad_hist_id(i_qhyd) > 0 )
then 532 ad_prep_sw(i_qhyd) = 1
534 if ( ad_hist_id(i_qliq) > 0 )
then 535 ad_prep_sw(i_qliq) = 1
537 if ( ad_hist_id(i_qice) > 0 )
then 538 ad_prep_sw(i_qice) = 1
541 if ( ad_hist_id(i_lwp) > 0 )
then 542 ad_prep_sw(i_qliq) = 1
543 ad_prep_sw(i_lwp) = 1
545 if ( ad_hist_id(i_iwp) > 0 )
then 546 ad_prep_sw(i_qice) = 1
547 ad_prep_sw(i_iwp) = 1
549 if ( ad_hist_id(i_pw) > 0 )
then 553 if ( ad_hist_id(i_rtot) > 0 )
then 554 ad_prep_sw(i_qdry) = 1
555 ad_prep_sw(i_rtot) = 1
557 if ( ad_hist_id(i_cptot) > 0 )
then 558 ad_prep_sw(i_qdry) = 1
559 ad_prep_sw(i_cptot) = 1
561 if ( ad_hist_id(i_pres) > 0 )
then 562 ad_prep_sw(i_qdry) = 1
563 ad_prep_sw(i_rtot) = 1
564 ad_prep_sw(i_cptot) = 1
565 ad_prep_sw(i_pres) = 1
567 if ( ad_hist_id(i_temp) > 0 )
then 568 ad_prep_sw(i_qdry) = 1
569 ad_prep_sw(i_rtot) = 1
570 ad_prep_sw(i_cptot) = 1
571 ad_prep_sw(i_pres) = 1
572 ad_prep_sw(i_temp) = 1
575 if ( ad_hist_id(i_potl) > 0 )
then 576 ad_prep_sw(i_pott) = 1
577 ad_prep_sw(i_qdry) = 1
578 ad_prep_sw(i_rtot) = 1
579 ad_prep_sw(i_cptot) = 1
580 ad_prep_sw(i_pres) = 1
581 ad_prep_sw(i_temp) = 1
582 ad_prep_sw(i_potl) = 1
584 if ( ad_hist_id(i_rha) > 0 &
585 .OR. ad_hist_id(i_rhl) > 0 &
586 .OR. ad_hist_id(i_rhi) > 0 )
then 587 ad_prep_sw(i_qdry) = 1
588 ad_prep_sw(i_rtot) = 1
589 ad_prep_sw(i_cptot) = 1
590 ad_prep_sw(i_pres) = 1
591 ad_prep_sw(i_temp) = 1
592 ad_prep_sw(i_qsat) = 1
596 if ( ad_hist_id(i_vor) > 0 )
then 597 ad_prep_sw(i_vor) = 1
600 if ( ad_prep_sw(i_div) > 0 )
then 601 ad_prep_sw(i_hdiv) = 1
604 if ( ad_hist_id(i_uabs) > 0 )
then 607 ad_prep_sw(i_uabs) = 1
610 if ( ad_hist_id(i_cape) > 0 &
611 .OR. ad_hist_id(i_cin) > 0 &
612 .OR. ad_hist_id(i_lcl) > 0 &
613 .OR. ad_hist_id(i_lfc) > 0 &
614 .OR. ad_hist_id(i_lnb) > 0 )
then 615 ad_prep_sw(i_cape) = 1
616 ad_prep_sw(i_cin) = 1
617 ad_prep_sw(i_lcl) = 1
618 ad_prep_sw(i_lfc) = 1
619 ad_prep_sw(i_lnb) = 1
622 if ( ad_hist_id(i_pblh) > 0 )
then 623 ad_prep_sw(i_pott) = 1
624 ad_prep_sw(i_pblh) = 1
627 if ( ad_hist_id(i_mse) > 0 )
then 628 ad_prep_sw(i_cptot) = 1
629 ad_prep_sw(i_temp) = 1
630 ad_prep_sw(i_mse) = 1
633 if ( ad_hist_id(i_dens_prim) > 0 )
then 634 ad_prep_sw(i_dens_prim) = 1
635 ad_prep_sw(i_dens_mean) = 1
638 if ( ad_hist_id(i_w_prim) > 0 )
then 640 ad_prep_sw(i_w_prim) = 1
641 ad_prep_sw(i_dens_mean) = 1
642 ad_prep_sw(i_w_mean) = 1
645 if ( ad_hist_id(i_u_prim) > 0 )
then 647 ad_prep_sw(i_u_prim) = 1
648 ad_prep_sw(i_dens_mean) = 1
649 ad_prep_sw(i_u_mean) = 1
652 if ( ad_hist_id(i_v_prim) > 0 )
then 654 ad_prep_sw(i_v_prim) = 1
655 ad_prep_sw(i_dens_mean) = 1
656 ad_prep_sw(i_v_mean) = 1
659 if ( ad_hist_id(i_pott_prim) > 0 )
then 660 ad_prep_sw(i_pott) = 1
661 ad_prep_sw(i_pott_prim) = 1
662 ad_prep_sw(i_dens_mean) = 1
663 ad_prep_sw(i_pott_mean) = 1
666 if ( ad_hist_id(i_dens_mean) > 0 )
then 667 ad_prep_sw(i_dens_mean) = 1
670 if ( ad_hist_id(i_w_mean) > 0 )
then 671 ad_prep_sw(i_w_mean) = 1
674 if ( ad_hist_id(i_u_mean) > 0 )
then 675 ad_prep_sw(i_u_mean) = 1
678 if ( ad_hist_id(i_v_mean) > 0 )
then 679 ad_prep_sw(i_v_mean) = 1
682 if ( ad_hist_id(i_pott_mean) > 0 )
then 683 ad_prep_sw(i_pott_mean) = 1
686 if ( ad_hist_id(i_t_mean) > 0 )
then 687 ad_prep_sw(i_t_mean) = 1
690 if ( ad_hist_id(i_qv_mean) > 0 )
then 691 ad_prep_sw(i_qv_mean) = 1
694 if ( ad_hist_id(i_qhyd_mean) > 0 )
then 695 ad_prep_sw(i_qhyd) = 1
696 ad_prep_sw(i_qhyd_mean) = 1
699 if ( ad_hist_id(i_qliq_mean) > 0 )
then 700 ad_prep_sw(i_qliq) = 1
701 ad_prep_sw(i_qliq_mean) = 1
704 if ( ad_hist_id(i_qice_mean) > 0 )
then 705 ad_prep_sw(i_qice) = 1
706 ad_prep_sw(i_qice_mean) = 1
709 if ( ad_hist_id(i_w_prim2) > 0 )
then 711 ad_prep_sw(i_w_prim) = 1
712 ad_prep_sw(i_w_prim2) = 1
713 ad_prep_sw(i_dens_mean) = 1
714 ad_prep_sw(i_w_mean) = 1
717 if ( ad_hist_id(i_pt_w_prim) > 0 )
then 719 ad_prep_sw(i_w_prim) = 1
720 ad_prep_sw(i_pott) = 1
721 ad_prep_sw(i_pott_prim) = 1
722 ad_prep_sw(i_pt_w_prim) = 1
723 ad_prep_sw(i_dens_mean) = 1
724 ad_prep_sw(i_w_mean) = 1
725 ad_prep_sw(i_pott_mean) = 1
728 if ( ad_hist_id(i_w_prim3) > 0 )
then 730 ad_prep_sw(i_w_prim) = 1
731 ad_prep_sw(i_w_prim3) = 1
732 ad_prep_sw(i_dens_mean) = 1
733 ad_prep_sw(i_w_mean) = 1
736 if ( ad_hist_id(i_tke_rs) > 0 )
then 740 ad_prep_sw(i_w_prim) = 1
741 ad_prep_sw(i_u_prim) = 1
742 ad_prep_sw(i_v_prim) = 1
743 ad_prep_sw(i_tke_rs) = 1
744 ad_prep_sw(i_dens_mean) = 1
745 ad_prep_sw(i_w_mean) = 1
746 ad_prep_sw(i_u_mean) = 1
747 ad_prep_sw(i_v_mean) = 1
750 if ( ad_hist_id(i_engp) > 0 &
751 .OR. ad_monit_id(i_engp) > 0 )
then 752 ad_prep_sw(i_engp) = 1
754 if ( ad_hist_id(i_engk) > 0 &
755 .OR. ad_monit_id(i_engk) > 0 )
then 759 ad_prep_sw(i_engk) = 1
761 if ( ad_hist_id(i_engi) > 0 &
762 .OR. ad_monit_id(i_engi) > 0 )
then 763 ad_prep_sw(i_qdry) = 1
764 ad_prep_sw(i_rtot) = 1
765 ad_prep_sw(i_cptot) = 1
766 ad_prep_sw(i_pres) = 1
767 ad_prep_sw(i_temp) = 1
768 ad_prep_sw(i_engi) = 1
770 if ( ad_hist_id(i_engt) > 0 &
771 .OR. ad_monit_id(i_engt) > 0 )
then 772 ad_prep_sw(i_engp) = 1
776 ad_prep_sw(i_engk) = 1
777 ad_prep_sw(i_qdry) = 1
778 ad_prep_sw(i_rtot) = 1
779 ad_prep_sw(i_cptot) = 1
780 ad_prep_sw(i_pres) = 1
781 ad_prep_sw(i_temp) = 1
782 ad_prep_sw(i_engi) = 1
783 ad_prep_sw(i_engt) = 1
798 logical,
intent(in),
optional :: FILL_BND
805 if (
present(fill_bnd) ) fill_bnd_ = fill_bnd
833 call comm_vars8(
dens(:,:,:), 1 )
834 call comm_vars8(
momz(:,:,:), 2 )
835 call comm_vars8(
momx(:,:,:), 3 )
836 call comm_vars8(
momy(:,:,:), 4 )
837 call comm_vars8(
rhot(:,:,:), 5 )
838 call comm_wait (
dens(:,:,:), 1, fill_bnd_ )
839 call comm_wait (
momz(:,:,:), 2, fill_bnd_ )
840 call comm_wait (
momx(:,:,:), 3, fill_bnd_ )
841 call comm_wait (
momy(:,:,:), 4, fill_bnd_ )
842 call comm_wait (
rhot(:,:,:), 5, fill_bnd_ )
845 call comm_vars8(
qtrc(:,:,:,iq), iq )
848 call comm_wait (
qtrc(:,:,:,iq), iq, fill_bnd_ )
864 thermodyn_qd => atmos_thermodyn_qd, &
865 thermodyn_temp_pres => atmos_thermodyn_temp_pres
898 if(
io_l )
write(
io_fid_log,*)
'*** Input restart file (ATMOS) ***' 903 call fileio_read(
dens(:,:,:), &
905 call fileio_read(
momz(:,:,:), &
907 call fileio_read(
momx(:,:,:), &
909 call fileio_read(
momy(:,:,:), &
911 call fileio_read(
rhot(:,:,:), &
915 call fileio_read(
qtrc(:,:,:,iq), &
923 write(*,*)
'*** restart file for atmosphere is not specified. STOP!' 983 atmos_phy_mp_sdm_restart_out
989 character(len=20) :: timelabel
990 character(len=H_LONG) :: basename
996 if( sd_rest_flg_out )
then 997 if(
io_l )
write(
io_fid_log,*)
'*** Output random number for SDM ***' 998 call atmos_phy_mp_sdm_restart_out(nowsec)
1004 call time_gettimelabel( timelabel )
1008 if(
io_l )
write(
io_fid_log,*)
'*** Output restart file (ATMOS) ***' 1054 real(RP) :: DENS_check(
ka,
ia,
ja)
1055 real(RP) :: MOMZ_check(
ka,
ia,
ja)
1056 real(RP) :: MOMX_check(
ka,
ia,
ja)
1057 real(RP) :: MOMY_check(
ka,
ia,
ja)
1058 real(RP) :: RHOT_check(
ka,
ia,
ja)
1059 real(RP) :: QTRC_check(
ka,
ia,
ja,
qa)
1063 character(len=H_LONG) :: basename
1065 logical :: datacheck
1066 integer :: k, i, j, iq
1077 call fileread( restart_atmos(:,:,:), basename,
'DENS', 1,
prc_myrank )
1083 write(*,*)
'xxx there is the difference : ',
dens(k,i,j)-dens_check(k,i,j)
1084 write(*,*)
'xxx at (PE-id,k,i,j,varname) : ',
prc_myrank, k, i, j,
'DENS' 1091 call fileread( restart_atmos(:,:,:), basename,
'MOMZ', 1,
prc_myrank )
1097 write(*,*)
'xxx there is the difference : ',
momz(k,i,j)-momz_check(k,i,j)
1098 write(*,*)
'xxx at (PE-id,k,i,j,varname) : ',
prc_myrank, k, i, j,
'MOMZ' 1105 call fileread( restart_atmos(:,:,:), basename,
'MOMX', 1,
prc_myrank )
1111 write(*,*)
'xxx there is the difference : ',
momx(k,i,j)-momx_check(k,i,j)
1112 write(*,*)
'xxx at (PE-id,k,i,j,varname) : ',
prc_myrank, k, i, j,
'MOMX' 1119 call fileread( restart_atmos(:,:,:), basename,
'MOMY', 1,
prc_myrank )
1125 write(*,*)
'xxx there is the difference : ',
momy(k,i,j)-momy_check(k,i,j)
1126 write(*,*)
'xxx at (PE-id,k,i,j,varname) : ',
prc_myrank, k, i, j,
'MOMY' 1133 call fileread( restart_atmos(:,:,:), basename,
'RHOT', 1,
prc_myrank )
1139 write(*,*)
'xxx there is the difference : ',
rhot(k,i,j)-rhot_check(k,i,j)
1140 write(*,*)
'xxx at (PE-id,k,i,j,varname) : ',
prc_myrank, k, i, j,
'RHOT' 1154 write(*,*)
'xxx there is the difference : ',
qtrc(k,i,j,iq)-qtrc_check(k,i,j,iq)
1155 write(*,*)
'xxx at (PE-id,k,i,j,varname) : ',
prc_myrank, k, i, j,
aq_name(iq)
1165 write(*,*)
'Data Check Clear.' 1167 if(
io_l )
write(
io_fid_log,*)
'Data Check Failed. See std. output.' 1168 write(*,*)
'Data Check Failed.' 1199 thermodyn_qd => atmos_thermodyn_qd, &
1200 thermodyn_templhv => atmos_thermodyn_templhv, &
1204 saturation_psat_all => atmos_saturation_psat_all, &
1205 saturation_psat_liq => atmos_saturation_psat_liq, &
1206 saturation_psat_ice => atmos_saturation_psat_ice
1211 real(RP) :: QDRY (
ka,
ia,
ja)
1212 real(RP) :: QTOT (
ka,
ia,
ja)
1213 real(RP) :: QHYD (
ka,
ia,
ja)
1214 real(RP) :: QLIQ (
ka,
ia,
ja)
1215 real(RP) :: QICE (
ka,
ia,
ja)
1216 real(RP) :: RHOQ (
ka,
ia,
ja)
1218 real(RP) :: LWP (
ia,
ja)
1219 real(RP) :: IWP (
ia,
ja)
1220 real(RP) :: PW (
ia,
ja)
1222 real(RP) :: RTOT (
ka,
ia,
ja)
1223 real(RP) :: CPTOT (
ka,
ia,
ja)
1224 real(RP) :: CPovCV(
ka,
ia,
ja)
1226 real(RP) :: POTL (
ka,
ia,
ja)
1227 real(RP) :: RHA (
ka,
ia,
ja)
1228 real(RP) :: RHL (
ka,
ia,
ja)
1229 real(RP) :: RHI (
ka,
ia,
ja)
1231 real(RP) :: VOR (
ka,
ia,
ja)
1232 real(RP) :: DIV (
ka,
ia,
ja)
1233 real(RP) :: HDIV (
ka,
ia,
ja)
1234 real(RP) :: Uabs (
ka,
ia,
ja)
1236 real(RP) :: CAPE (
ia,
ja)
1237 real(RP) :: CIN (
ia,
ja)
1238 real(RP) :: LCL (
ia,
ja)
1239 real(RP) :: LFC (
ia,
ja)
1240 real(RP) :: LNB (
ia,
ja)
1242 real(RP) :: PBLH (
ia,
ja)
1243 real(RP) :: POTTv (
ka,
ia,
ja)
1246 real(RP) :: MSE (
ka,
ia,
ja)
1247 real(RP) :: LHvap (
ka,
ia,
ja)
1249 real(RP) :: DENS_PRIM(
ka,
ia,
ja)
1250 real(RP) :: W_PRIM (
ka,
ia,
ja)
1251 real(RP) :: U_PRIM (
ka,
ia,
ja)
1252 real(RP) :: V_PRIM (
ka,
ia,
ja)
1253 real(RP) :: POTT_PRIM(
ka,
ia,
ja)
1254 real(RP) :: W_PRIM2 (
ka,
ia,
ja)
1255 real(RP) :: PT_W_PRIM(
ka,
ia,
ja)
1256 real(RP) :: W_PRIM3 (
ka,
ia,
ja)
1257 real(RP) :: TKE_RS (
ka,
ia,
ja)
1258 real(RP) :: DENS_MEAN(
ka)
1259 real(RP) :: W_MEAN (
ka)
1260 real(RP) :: U_MEAN (
ka)
1261 real(RP) :: V_MEAN (
ka)
1262 real(RP) :: PT_MEAN (
ka)
1263 real(RP) :: T_MEAN (
ka)
1264 real(RP) :: QV_MEAN (
ka)
1265 real(RP) :: QHYD_MEAN(
ka)
1266 real(RP) :: QLIQ_MEAN(
ka)
1267 real(RP) :: QICE_MEAN(
ka)
1269 real(RP) :: ENGT (
ka,
ia,
ja)
1270 real(RP) :: ENGP (
ka,
ia,
ja)
1271 real(RP) :: ENGK (
ka,
ia,
ja)
1272 real(RP) :: ENGI (
ka,
ia,
ja)
1274 real(RP) :: PSAT (
ka,
ia,
ja)
1275 real(RP) :: UH (
ka,
ia,
ja)
1276 real(RP) :: VH (
ka,
ia,
ja)
1278 integer :: k, i, j, iq
1282 if ( atmos_vars_checkrange )
then 1283 call valcheck(
dens(:,:,:), 0.0_rp, 2.0_rp, var_name(
i_dens), __file__, __line__ )
1284 call valcheck(
momz(:,:,:), -200.0_rp, 200.0_rp, var_name(
i_momz), __file__, __line__ )
1285 call valcheck(
momx(:,:,:), -200.0_rp, 200.0_rp, var_name(
i_momx), __file__, __line__ )
1286 call valcheck(
momy(:,:,:), -200.0_rp, 200.0_rp, var_name(
i_momy), __file__, __line__ )
1287 call valcheck(
rhot(:,:,:), 0.0_rp, 1000.0_rp, var_name(
i_rhot), __file__, __line__ )
1346 if ( ad_prep_sw(i_qdry) > 0 )
then 1347 call thermodyn_qd( qdry(:,:,:), &
1351 if ( ad_prep_sw(i_qtot) > 0 )
then 1356 qtot(k,i,j) = 1.0_rp - qdry(k,i,j)
1362 if ( ad_prep_sw(i_qhyd) > 0 )
then 1364 qhyd(:,:,:) = 0.0_rp
1367 qhyd(:,:,:) = qhyd(:,:,:) +
qtrc(:,:,:,iq)
1370 qhyd(:,:,:) = qhyd(:,:,:) +
qtrc(:,:,:,iq)
1374 if ( ad_prep_sw(i_qliq) > 0 )
then 1376 qliq(:,:,:) = 0.0_rp
1379 qliq(:,:,:) = qliq(:,:,:) +
qtrc(:,:,:,iq)
1383 if ( ad_prep_sw(i_qice) > 0 )
then 1385 qice(:,:,:) = 0.0_rp
1388 qice(:,:,:) = qice(:,:,:) +
qtrc(:,:,:,iq)
1392 if ( ad_prep_sw(i_lwp) > 0 )
then 1397 lwp(i,j) = lwp(i,j) &
1404 if ( ad_prep_sw(i_iwp) > 0 )
then 1409 iwp(i,j) = iwp(i,j) &
1416 if ( ad_prep_sw(i_pw) > 0 )
then 1428 if ( ad_prep_sw(i_rtot) > 0 )
then 1434 rtot(k,i,j) = rdry * qdry(k,i,j) + rvap *
qtrc(k,i,j,
i_qv)
1440 if ( ad_prep_sw(i_cptot) > 0 )
then 1446 cptot(k,i,j) = cpdry * qdry(k,i,j)
1456 cptot(k,i,j) = cptot(k,i,j) +
qtrc(k,i,j,iq) * cpw(iq)
1467 cpovcv(k,i,j) = cptot(k,i,j) / ( cptot(k,i,j) - rtot(k,i,j) )
1495 if ( ad_prep_sw(i_potl) > 0 )
then 1501 potl(k,i,j) =
pott(k,i,j) &
1502 - lhv / cpdry * qliq(k,i,j) *
pott(k,i,j) /
temp(k,i,j)
1508 if ( ad_prep_sw(i_qsat) > 0 )
then 1514 if ( ad_hist_id(i_rha) > 0 )
then 1515 call saturation_psat_all( psat(:,:,:), &
1523 / psat(k,i,j) * rvap *
temp(k,i,j) &
1530 if ( ad_hist_id(i_rhl) > 0 )
then 1531 call saturation_psat_liq( psat(:,:,:), &
1539 / psat(k,i,j) * rvap *
temp(k,i,j) &
1546 if ( ad_hist_id(i_rhi) > 0 )
then 1547 call saturation_psat_ice( psat(:,:,:), &
1555 / psat(k,i,j) * rvap *
temp(k,i,j) &
1562 if ( ad_prep_sw(i_vor) > 0 )
then 1569 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) ) &
1581 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) ) &
1592 vor(k,i,j) = ( vh(k,i,j ) - vh(k,i-1,j ) ) * rcdx(i) &
1593 - ( uh(k,i ,j) - uh(k,i ,j-1) ) * rcdy(j)
1601 vor(k,1 ,j) = vor(k,2 ,j)
1602 vor(k,
ia,j) = vor(k,
ia-1,j)
1609 vor(k,i,1 ) = vor(k,i,2 )
1610 vor(k,i,
ja) = vor(k,i,
ja-1)
1615 if ( ad_prep_sw(i_hdiv) > 0 )
then 1621 hdiv(k,i,j) = (
momx(k,i,j) -
momx(k ,i-1,j ) ) * rcdx(i) &
1622 + (
momy(k,i,j) -
momy(k ,i ,j-1) ) * rcdy(j)
1629 hdiv(k,i,1) = hdiv(k,i,2)
1635 hdiv(k,1,j) = hdiv(k,2,j)
1640 if ( ad_prep_sw(i_div) > 0 )
then 1646 div(k,i,j) = (
momz(k,i,j) -
momz(k-1,i ,j ) ) * (
real_fz(k,i,j)-
real_fz(k-1,i,j) ) &
1653 if ( ad_prep_sw(i_uabs) > 0 )
then 1658 uabs(k,i,j) = sqrt(
u(k,i,j) *
u(k,i,j) &
1659 +
v(k,i,j) *
v(k,i,j) )
1665 if ( ad_prep_sw(i_dens_mean) > 0 )
then 1669 if ( ad_prep_sw(i_dens_prim) > 0 )
then 1674 dens_prim(k,i,j) =
dens(k,i,j) - dens_mean(k)
1680 if ( ad_prep_sw(i_w_mean) > 0 )
then 1685 w_prim(k,i,j) =
w(k,i,j) *
dens(k,i,j)
1691 w_mean(k) = w_mean(k) / dens_mean(k)
1694 if ( ad_prep_sw(i_w_prim) > 0 )
then 1699 w_prim(k,i,j) =
w(k,i,j) - w_mean(k)
1705 if ( ad_prep_sw(i_u_mean) > 0 )
then 1710 u_prim(k,i,j) =
u(k,i,j) *
dens(k,i,j)
1716 u_mean(k) = u_mean(k) / dens_mean(k)
1719 if ( ad_prep_sw(i_u_prim) > 0 )
then 1724 u_prim(k,i,j) =
u(k,i,j) - u_mean(k)
1730 if ( ad_prep_sw(i_v_mean) > 0 )
then 1735 v_prim(k,i,j) =
v(k,i,j) *
dens(k,i,j)
1741 v_mean(k) = v_mean(k) / dens_mean(k)
1744 if ( ad_prep_sw(i_v_prim) > 0 )
then 1749 v_prim(k,i,j) =
v(k,i,j) - v_mean(k)
1755 if ( ad_prep_sw(i_t_mean) > 0 )
then 1760 pott_prim(k,i,j) =
temp(k,i,j) *
dens(k,i,j)
1766 t_mean(k) = t_mean(k) / dens_mean(k)
1770 if ( ad_prep_sw(i_pott_mean) > 0 )
then 1773 pt_mean(k) = pt_mean(k) / dens_mean(k)
1776 if ( ad_prep_sw(i_pott_prim) > 0 )
then 1781 pott_prim(k,i,j) =
pott(k,i,j) - pt_mean(k)
1787 if ( ad_prep_sw(i_qv_mean) > 0 )
then 1798 qv_mean(k) = qv_mean(k) / dens_mean(k)
1802 if ( ad_prep_sw(i_qhyd_mean) > 0 )
then 1807 rhoq(k,i,j) = qhyd(k,i,j) *
dens(k,i,j)
1813 qhyd_mean(k) = qhyd_mean(k) / dens_mean(k)
1817 if ( ad_prep_sw(i_qliq_mean) > 0 )
then 1822 rhoq(k,i,j) = qliq(k,i,j) *
dens(k,i,j)
1828 qliq_mean(k) = qliq_mean(k) / dens_mean(k)
1832 if ( ad_prep_sw(i_qice_mean) > 0 )
then 1837 rhoq(k,i,j) = qice(k,i,j) *
dens(k,i,j)
1843 qice_mean(k) = qice_mean(k) / dens_mean(k)
1847 if ( ad_prep_sw(i_w_prim2) > 0 )
then 1852 w_prim2(k,i,j) = w_prim(k,i,j) * w_prim(k,i,j)
1858 if ( ad_prep_sw(i_pt_w_prim) > 0 )
then 1863 pt_w_prim(k,i,j) = w_prim(k,i,j) * pott_prim(k,i,j) *
dens(k,i,j) * cpdry
1869 if ( ad_prep_sw(i_w_prim3) > 0 )
then 1874 w_prim3(k,i,j) = w_prim(k,i,j) * w_prim(k,i,j) * w_prim(k,i,j)
1880 if ( ad_prep_sw(i_tke_rs) > 0 )
then 1885 tke_rs(k,i,j) = 0.5_rp * ( w_prim(k,i,j) * w_prim(k,i,j) &
1886 + u_prim(k,i,j) * u_prim(k,i,j) &
1887 + v_prim(k,i,j) * v_prim(k,i,j) )
1893 if ( ad_prep_sw(i_engp) > 0 )
then 1905 if ( ad_prep_sw(i_engk) > 0 )
then 1911 engk(k,i,j) = 0.5_rp *
dens(k,i,j) * (
w(k,i,j)**2 &
1919 if ( ad_prep_sw(i_engi) > 0 )
then 1925 engi(k,i,j) =
dens(k,i,j) * qdry(k,i,j) *
temp(k,i,j) * cvdry
1935 engi(k,i,j) = engi(k,i,j) &
1946 engi(k,i,j) = engi(k,i,j) &
1957 engi(k,i,j) = engi(k,i,j) &
1958 -
dens(k,i,j) *
qtrc(k,i,j,iq) * lhf
1965 if ( ad_prep_sw(i_engt) > 0 )
then 1971 engt(k,i,j) = engp(k,i,j) + engk(k,i,j) + engi(k,i,j)
1977 call hist_in(
w(:,:,:),
'W',
'velocity w',
'm/s' )
1978 call hist_in(
u(:,:,:),
'U',
'velocity u',
'm/s' )
1979 call hist_in(
v(:,:,:),
'V',
'velocity v',
'm/s' )
1980 call hist_in(
pott(:,:,:),
'PT',
'potential temp.',
'K' )
1982 call hist_in( qdry(:,:,:),
'QDRY',
'dry air',
'kg/kg' )
1983 call hist_in( qtot(:,:,:),
'QTOT',
'total water',
'kg/kg' )
1984 call hist_in( qhyd(:,:,:),
'QHYD',
'total hydrometeors',
'kg/kg' )
1985 call hist_in( qliq(:,:,:),
'QLIQ',
'total liquid water',
'kg/kg' )
1986 call hist_in( qice(:,:,:),
'QICE',
'total ice water',
'kg/kg' )
1988 call hist_in( lwp(:,:),
'LWP',
'liquid water path',
'g/m2' )
1989 call hist_in( iwp(:,:),
'IWP',
'ice water path',
'g/m2' )
1990 call hist_in( pw(:,:),
'PW',
'precipitable water',
'g/m2' )
1992 call hist_in( rtot(:,:,:),
'RTOT',
'Total gas constant',
'J/kg/K' )
1993 call hist_in( cptot(:,:,:),
'CPTOT',
'Total heat capacity',
'J/kg/K' )
1994 call hist_in(
pres(:,:,:),
'PRES',
'pressure',
'Pa' )
1995 call hist_in(
temp(:,:,:),
'T',
'temperature',
'K' )
1997 call hist_in( potl(:,:,:),
'LWPT',
'liq. potential temp.',
'K' )
1998 call hist_in( rha(:,:,:),
'RHA',
'relative humidity(liq+ice)',
'%' )
1999 call hist_in( rhl(:,:,:),
'RH' ,
'relative humidity(liq)',
'%' )
2000 call hist_in( rhi(:,:,:),
'RHI',
'relative humidity(ice)',
'%' )
2002 call hist_in( vor(:,:,:),
'VOR',
'vertical vorticity',
'1/s' )
2003 call hist_in( div(:,:,:),
'DIV',
'divergence',
'1/s' )
2004 call hist_in( hdiv(:,:,:),
'HDIV',
'horizontal divergence',
'1/s' )
2005 call hist_in( uabs(:,:,:),
'Uabs',
'absolute velocity',
'm/s' )
2007 call hist_in( dens_mean(:),
'DENS_MEAN',
'horiz. mean of density',
'kg/m3' )
2008 call hist_in( w_mean(:),
'W_MEAN',
'horiz. mean of w',
'm/s' )
2009 call hist_in( u_mean(:),
'U_MEAN',
'horiz. mean of u',
'm/s' )
2010 call hist_in( v_mean(:),
'V_MEAN',
'horiz. mean of v',
'm/s' )
2011 call hist_in( pt_mean(:),
'PT_MEAN',
'horiz. mean of pot.',
'K' )
2012 call hist_in( t_mean(:),
'T_MEAN',
'horiz. mean of t',
'K' )
2013 call hist_in( qv_mean(:),
'QV_MEAN',
'horiz. mean of QV',
'1' )
2014 call hist_in( qhyd_mean(:),
'QHYD_MEAN',
'horiz. mean of QHYD',
'1' )
2015 call hist_in( qliq_mean(:),
'QLIQ_MEAN',
'horiz. mean of QLIQ',
'1' )
2016 call hist_in( qice_mean(:),
'QICE_MEAN',
'horiz. mean of QICE',
'1' )
2018 call hist_in( dens_prim(:,:,:),
'DENS_PRIM',
'horiz. deviation of density',
'kg/m3' )
2019 call hist_in( w_prim(:,:,:),
'W_PRIM',
'horiz. deviation of w',
'm/s' )
2020 call hist_in( u_prim(:,:,:),
'U_PRIM',
'horiz. deviation of u',
'm/s' )
2021 call hist_in( v_prim(:,:,:),
'V_PRIM',
'horiz. deviation of v',
'm/s' )
2022 call hist_in( pott_prim(:,:,:),
'PT_PRIM',
'horiz. deviation of pot. temp.',
'K' )
2023 call hist_in( w_prim2(:,:,:),
'W_PRIM2',
'variance of w',
'm2/s2' )
2024 call hist_in( pt_w_prim(:,:,:),
'PT_W_PRIM',
'resolved scale heat flux',
'W/s' )
2025 call hist_in( w_prim3(:,:,:),
'W_PRIM3',
'skewness of w',
'm3/s3' )
2026 call hist_in( tke_rs(:,:,:),
'TKE_RS',
'resolved scale TKE',
'm2/s2' )
2028 call hist_in( engt(:,:,:),
'ENGT',
'total energy',
'J/m3' )
2029 call hist_in( engp(:,:,:),
'ENGP',
'potential energy',
'J/m3' )
2030 call hist_in( engk(:,:,:),
'ENGK',
'kinetic energy',
'J/m3' )
2031 call hist_in( engi(:,:,:),
'ENGI',
'internal energy',
'J/m3' )
2033 if ( ad_prep_sw(i_cape) > 0 &
2034 .OR. ad_prep_sw(i_cin) > 0 &
2035 .OR. ad_prep_sw(i_lcl) > 0 &
2036 .OR. ad_prep_sw(i_lfc) > 0 &
2037 .OR. ad_prep_sw(i_lnb) > 0 )
then 2039 call adiabat_cape(
ks, &
2054 call hist_in( cape(:,:),
'CAPE',
'convection avail. pot. energy',
'm2/s2' )
2055 call hist_in( cin(:,:),
'CIN',
'convection inhibition',
'm2/s2' )
2056 call hist_in( lcl(:,:),
'LCL',
'lifted condensation level',
'm' )
2057 call hist_in( lfc(:,:),
'LFC',
'level of free convection',
'm' )
2058 call hist_in( lnb(:,:),
'LNB',
'level of neutral buoyancy',
'm' )
2060 if ( ad_prep_sw(i_pblh) > 0 )
then 2064 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) )
2074 if ( pottv(k,i,j) > pottv(
ks,i,j) )
then 2075 fact = ( pottv(
ks,i,j) - pottv(k-1,i,j) ) &
2076 / ( pottv(k,i,j) - pottv(k-1,i,j) )
2087 call hist_in( pblh(:,:),
'PBLH',
'PBL height',
'm' )
2089 if ( ad_prep_sw(i_mse) > 0 )
then 2090 call thermodyn_templhv( lhvap(:,:,:), &
2096 mse(k,i,j) = cptot(k,i,j) *
temp(k,i,j) &
2103 call hist_in( mse(:,:,:),
'MSE',
'moist static energy',
'm2/s2' )
2122 thermodyn_qd => atmos_thermodyn_qd, &
2123 thermodyn_temp_pres => atmos_thermodyn_temp_pres, &
2131 real(RP) :: QDRY(
ka,
ia,
ja)
2132 real(RP) :: PRES(
ka,
ia,
ja)
2133 real(RP) :: TEMP(
ka,
ia,
ja)
2135 real(RP) :: ENGT(
ka,
ia,
ja)
2136 real(RP) :: ENGP(
ka,
ia,
ja)
2137 real(RP) :: ENGK(
ka,
ia,
ja)
2138 real(RP) :: ENGI(
ka,
ia,
ja)
2140 real(RP) :: RHOQ(
ka,
ia,
ja)
2143 integer :: i, j, k, iq
2148 call stat_total( total,
dens(:,:,:), var_name(
i_dens) )
2149 call stat_total( total,
momz(:,:,:), var_name(
i_momz) )
2150 call stat_total( total,
momx(:,:,:), var_name(
i_momx) )
2151 call stat_total( total,
momy(:,:,:), var_name(
i_momy) )
2152 call stat_total( total,
rhot(:,:,:), var_name(
i_rhot) )
2155 rhoq(:,:,:) =
dens(:,:,:) *
qtrc(:,:,:,iq)
2157 call stat_total( total, rhoq(:,:,:),
aq_name(iq) )
2160 call thermodyn_qd( qdry(:,:,:), &
2163 call thermodyn_temp_pres( temp(:,:,:), &
2171 call stat_total( total, rhoq(:,:,:),
'QDRY' )
2175 call stat_total( total, rhoq(:,:,:),
'QTOT' )
2181 w(k,i,j) = 0.5_rp * (
momz(k-1,i,j)+
momz(k,i,j) ) /
dens(k,i,j)
2182 u(k,i,j) = 0.5_rp * (
momx(k,i-1,j)+
momx(k,i,j) ) /
dens(k,i,j)
2183 v(k,i,j) = 0.5_rp * (
momy(k,i,j-1)+
momy(k,i,j) ) /
dens(k,i,j)
2187 engk(k,i,j) = 0.5_rp *
dens(k,i,j) * ( w(k,i,j)**2 &
2191 engi(k,i,j) =
dens(k,i,j) * qdry(k,i,j) * temp(k,i,j) * cvdry
2193 engi(k,i,j) = engi(k,i,j) &
2194 +
dens(k,i,j) *
qtrc(k,i,j,iq) * temp(k,i,j) * cvw(iq)
2197 engi(k,i,j) = engi(k,i,j) +
dens(k,i,j) *
qtrc(k,i,j,
i_qv) * lhv
2200 engi(k,i,j) = engi(k,i,j) -
dens(k,i,j) *
qtrc(k,i,j,iq) * lhf
2203 engt(k,i,j) = engp(k,i,j) + engk(k,i,j) + engi(k,i,j)
2208 call stat_total( total, engp(:,:,:),
'ENGP' )
2209 call stat_total( total, engk(:,:,:),
'ENGK' )
2210 call stat_total( total, engi(:,:,:),
'ENGI' )
2211 call stat_total( total, engt(:,:,:),
'ENGT' )
2225 thermodyn_temp_pres => atmos_thermodyn_temp_pres
2233 call thermodyn_temp_pres(
temp(:,:,:), &
2243 w(k,i,j) = 0.5_rp * (
momz(k-1,i,j)+
momz(k,i,j) ) /
dens(k,i,j)
2264 u(k,i,j) = 0.5_rp * (
momx(k,i-1,j)+
momx(k,i,j) ) /
dens(k,i,j)
2279 v(k,i,j) = 0.5_rp * (
momy(k,i,j-1)+
momy(k,i,j) ) /
dens(k,i,j)
2293 w( 1:
ks-1,i,j) =
w(
ks,i,j)
2294 u( 1:
ks-1,i,j) =
u(
ks,i,j)
2295 v( 1:
ks-1,i,j) =
v(
ks,i,j)
2302 call comm_vars8(
u(:,:,:), 1 )
2303 call comm_vars8(
v(:,:,:), 2 )
2304 call comm_wait (
u(:,:,:), 1, .false. )
2305 call comm_wait (
v(:,:,:), 2, .false. )
2352 thermodyn_qd => atmos_thermodyn_qd, &
2353 thermodyn_temp_pres => atmos_thermodyn_temp_pres, &
2373 real(RP) :: QDRY(
ka,
ia,
ja)
2374 real(RP) :: RHOQ(
ka,
ia,
ja)
2375 real(RP) :: PRCP(
ia,
ja)
2377 real(RP) :: ENGT(
ka,
ia,
ja)
2378 real(RP) :: ENGP(
ka,
ia,
ja)
2379 real(RP) :: ENGK(
ka,
ia,
ja)
2380 real(RP) :: ENGI(
ka,
ia,
ja)
2382 real(RP) :: ENGFLXT (
ia,
ja)
2383 real(RP) :: SFLX_RD_net (
ia,
ja)
2384 real(RP) :: TOAFLX_RD_net(
ia,
ja)
2386 real(RP) :: WORK (
ka,
ia,
ja,3)
2387 character(len=H_SHORT) :: WNAME(3)
2390 integer :: k, i, j, iq
2395 call monit_in(
dens(:,:,:), var_name(
i_dens), var_desc(
i_dens), var_unit(
i_dens), ndim=3, isflux=.false. )
2396 call monit_in(
momz(:,:,:), var_name(
i_momz), var_desc(
i_momz), var_unit(
i_momz), ndim=3, isflux=.false. )
2397 call monit_in(
momx(:,:,:), var_name(
i_momx), var_desc(
i_momx), var_unit(
i_momx), ndim=3, isflux=.false. )
2398 call monit_in(
momy(:,:,:), var_name(
i_momy), var_desc(
i_momy), var_unit(
i_momy), ndim=3, isflux=.false. )
2399 call monit_in(
rhot(:,:,:), var_name(
i_rhot), var_desc(
i_rhot), var_unit(
i_rhot), ndim=3, isflux=.false. )
2408 rhoq(k,i,j) =
dens(k,i,j) *
qtrc(k,i,j,iq)
2418 call thermodyn_qd( qdry(:,:,:), &
2426 rhoq(k,i,j) =
dens(k,i,j) * qdry(k,i,j)
2430 call monit_put( ad_monit_id(i_qdry), rhoq(:,:,:) )
2438 rhoq(k,i,j) =
dens(k,i,j) * ( 1.0_rp - qdry(k,i,j) )
2442 call monit_put( ad_monit_id(i_qtot), rhoq(:,:,:) )
2445 call monit_put( ad_monit_id(i_evap), sflx_qtrc(:,:,
i_qv) )
2451 prcp(i,j) = sflx_rain(i,j) + sflx_snow(i,j)
2454 call monit_put( ad_monit_id(i_prcp), prcp(:,:) )
2458 call thermodyn_temp_pres(
temp(:,:,:), &
2470 engk(k,i,j) = 0.5_rp *
dens(k,i,j) * (
w(k,i,j)**2 &
2474 engi(k,i,j) =
dens(k,i,j) * qdry(k,i,j) *
temp(k,i,j) * cvdry
2476 engi(k,i,j) = engi(k,i,j) &
2480 engi(k,i,j) = engi(k,i,j) +
dens(k,i,j) *
qtrc(k,i,j,
i_qv) * lhv
2483 engi(k,i,j) = engi(k,i,j) -
dens(k,i,j) *
qtrc(k,i,j,iq) * lhf
2494 engt(k,i,j) = engp(k,i,j) + engk(k,i,j) + engi(k,i,j)
2502 sflx_rd_net(i,j) = ( sflx_lw_up(i,j) - sflx_lw_dn(i,j) ) &
2503 + ( sflx_sw_up(i,j) - sflx_sw_dn(i,j) )
2505 toaflx_rd_net(i,j) = ( toaflx_lw_up(i,j) - toaflx_lw_dn(i,j) ) &
2506 + ( toaflx_sw_up(i,j) - toaflx_sw_dn(i,j) )
2514 engflxt(i,j) = sflx_sh(i,j) + sflx_lh(i,j) &
2515 + sflx_rd_net(i,j) - toaflx_rd_net(i,j)
2519 call monit_put( ad_monit_id(i_engt), engt(:,:,:) )
2520 call monit_put( ad_monit_id(i_engp), engp(:,:,:) )
2521 call monit_put( ad_monit_id(i_engk), engk(:,:,:) )
2522 call monit_put( ad_monit_id(i_engi), engi(:,:,:) )
2524 call monit_put( ad_monit_id(i_engflxt), engflxt(:,:) )
2527 call monit_put( ad_monit_id(i_engsfc_sh), sflx_sh(:,:) )
2528 call monit_put( ad_monit_id(i_engsfc_lh), sflx_lh(:,:) )
2529 call monit_put( ad_monit_id(i_engsfc_rd), sflx_rd_net(:,:) )
2530 call monit_put( ad_monit_id(i_engtoa_rd), toaflx_rd_net(:,:) )
2532 call monit_put( ad_monit_id(i_engsfc_lw_up), sflx_lw_up(:,:) )
2533 call monit_put( ad_monit_id(i_engsfc_lw_dn), sflx_lw_dn(:,:) )
2534 call monit_put( ad_monit_id(i_engsfc_sw_up), sflx_sw_up(:,:) )
2535 call monit_put( ad_monit_id(i_engsfc_sw_dn), sflx_sw_dn(:,:) )
2537 call monit_put( ad_monit_id(i_engtoa_lw_up), toaflx_lw_up(:,:) )
2538 call monit_put( ad_monit_id(i_engtoa_lw_dn), toaflx_lw_dn(:,:) )
2539 call monit_put( ad_monit_id(i_engtoa_sw_up), toaflx_sw_up(:,:) )
2540 call monit_put( ad_monit_id(i_engtoa_sw_dn), toaflx_sw_dn(:,:) )
2542 if ( atmos_vars_checkrange )
then 2544 work(:,:,:,1) =
w(:,:,:)
2546 work(:,:,:,2) =
u(:,:,:)
2548 work(:,:,:,3) =
v(:,:,:)
2557 if ( atmos_vars_checkcfl > 0.0_rp )
then 2559 work(:,:,:,:) = 0.0_rp
2564 work(k,i,j,1) = 0.5_rp * abs(
momz(k,i,j)) / (
dens(k+1,i,j) +
dens(k,i,j) ) &
2566 work(k,i,j,2) = 0.5_rp * abs(
momx(k,i,j)) / (
dens(k,i+1,j) +
dens(k,i,j) ) &
2568 work(k,i,j,3) = 0.5_rp * abs(
momy(k,i,j)) / (
dens(k,i,j+1) +
dens(k,i,j) ) &
2574 cflmax = maxval( work(:,:,:,:) )
2575 if ( cflmax > atmos_vars_checkcfl )
then 2576 if(
io_l )
write(
io_fid_log,*)
"*** [ATMOS_vars_monitor] Courant number exceeded the upper limit. : ", cflmax
2577 write(*,*)
"*** [ATMOS_vars_monitor] Courant number exceeded the upper limit. : ", cflmax, &
2580 wname(1) =
"Courant num. Z" 2581 wname(2) =
"Courant num. X" 2582 wname(3) =
"Courant num. Y" 2584 call stat_detail( work(:,:,:,:), wname(:), supress_globalcomm=.true. )
integer, public imax
of computational cells: x
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
logical, public atmos_sw_phy_cp
logical, public statistics_checktotal
calc&report variable totals to logfile?
real(rp), dimension(:,:,:), allocatable, target, public momz
real(rp), public const_cvdry
specific heat (dry air,constant volume) [J/kg/K]
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_ch_vars_setup
Setup.
real(rp), dimension(:,:,:), allocatable, public atmos_phy_sf_sflx_qtrc
subroutine, public prc_mpistop
Abort MPI.
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]
real(rp), dimension(:), allocatable, public aq_cp
CP for each hydrometeors [J/kg/K].
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
module Atmosphere / Dynamics
subroutine, public atmos_phy_tb_vars_restart_write
Write restart.
integer, parameter, public i_momz
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.
integer, public ke
end point of inner domain: z, local
real(rp), dimension(:,:,:), allocatable, public rhot_tp
real(rp), dimension(:,:,:), allocatable, public real_fz
geopotential height [m] (cell face )
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_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
real(rp), dimension(:,:), allocatable, public atmos_phy_rd_sflx_lw_dn
logical, public atmos_restart_output
output 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.
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
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 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]
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 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
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
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_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 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
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
real(rp), dimension(:,:,:), allocatable, target, public dens_avw
real(rp), dimension(:,:,:), allocatable, public v
subroutine, public atmos_phy_mp_vars_setup
Setup.
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
module ATMOSPHERE / Thermodynamics
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
character(len=h_long), public atmos_restart_out_basename
basename of the output file
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
real(rp), dimension(:,:,:), pointer, public rhot_av
integer, public io_fid_conf
Config file ID.
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
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_vars_restart_read
Read restart of atmospheric variables.
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)