16 #include "inc_openmp.h" 17 #include "macro_thermodyn.h" 72 real(RP),
public,
target,
allocatable ::
dens(:,:,:)
73 real(RP),
public,
target,
allocatable ::
momz(:,:,:)
74 real(RP),
public,
target,
allocatable ::
momx(:,:,:)
75 real(RP),
public,
target,
allocatable ::
momy(:,:,:)
76 real(RP),
public,
target,
allocatable ::
rhot(:,:,:)
77 real(RP),
public,
target,
allocatable ::
qtrc(:,:,:,:)
79 real(RP),
public,
target,
allocatable ::
dens_avw(:,:,:)
80 real(RP),
public,
target,
allocatable ::
momz_avw(:,:,:)
81 real(RP),
public,
target,
allocatable ::
momx_avw(:,:,:)
82 real(RP),
public,
target,
allocatable ::
momy_avw(:,:,:)
83 real(RP),
public,
target,
allocatable ::
rhot_avw(:,:,:)
84 real(RP),
public,
target,
allocatable ::
qtrc_avw(:,:,:,:)
86 real(RP),
public,
pointer ::
dens_av(:,:,:)
87 real(RP),
public,
pointer ::
momz_av(:,:,:)
88 real(RP),
public,
pointer ::
momx_av(:,:,:)
89 real(RP),
public,
pointer ::
momy_av(:,:,:)
90 real(RP),
public,
pointer ::
rhot_av(:,:,:)
91 real(RP),
public,
pointer ::
qtrc_av(:,:,:,:)
94 real(RP),
public,
allocatable ::
dens_tp(:,:,:)
95 real(RP),
public,
allocatable ::
momz_tp(:,:,:)
96 real(RP),
public,
allocatable ::
momx_tp(:,:,:)
97 real(RP),
public,
allocatable ::
momy_tp(:,:,:)
98 real(RP),
public,
allocatable ::
rhot_tp(:,:,:)
99 real(RP),
public,
allocatable ::
rhoq_tp(:,:,:,:)
102 real(RP),
public,
allocatable ::
pott(:,:,:)
103 real(RP),
public,
allocatable ::
temp(:,:,:)
104 real(RP),
public,
allocatable ::
pres(:,:,:)
105 real(RP),
public,
allocatable ::
phyd(:,:,:)
106 real(RP),
public,
allocatable ::
w (:,:,:)
107 real(RP),
public,
allocatable ::
u (:,:,:)
108 real(RP),
public,
allocatable ::
v (:,:,:)
109 real(RP),
public,
allocatable ::
n2 (:,:,:)
119 logical,
private :: atmos_vars_checkrange = .false.
120 real(RP),
private :: atmos_vars_checkcfl = 0.0_rp
122 integer,
private,
parameter :: vmax = 5
123 character(len=H_SHORT),
private :: var_name(vmax)
124 character(len=H_MID),
private :: var_desc(vmax)
125 character(len=H_SHORT),
private :: var_unit(vmax)
126 integer,
private,
allocatable :: var_id(:)
127 integer,
private :: restart_fid = -1
129 data var_name /
'DENS', &
134 data var_desc /
'density', &
139 data var_unit /
'kg/m3', &
146 integer,
private :: var_hist_id(vmax)
147 integer,
private,
allocatable :: aq_hist_id(:)
150 integer,
private,
parameter :: ad_nmax = 71
152 integer,
private,
parameter :: i_w = 1
153 integer,
private,
parameter :: i_u = 2
154 integer,
private,
parameter :: i_v = 3
155 integer,
private,
parameter :: i_pott = 4
157 integer,
private,
parameter :: i_qdry = 5
158 integer,
private,
parameter :: i_qtot = 6
159 integer,
private,
parameter :: i_qhyd = 7
160 integer,
private,
parameter :: i_qliq = 8
161 integer,
private,
parameter :: i_qice = 9
163 integer,
private,
parameter :: i_lwp = 10
164 integer,
private,
parameter :: i_iwp = 11
165 integer,
private,
parameter :: i_pw = 12
167 integer,
private,
parameter :: i_rtot = 13
168 integer,
private,
parameter :: i_cptot = 14
169 integer,
private,
parameter :: i_pres = 15
170 integer,
private,
parameter :: i_temp = 16
172 integer,
private,
parameter :: i_potl = 17
173 integer,
private,
parameter :: i_rha = 18
174 integer,
private,
parameter :: i_rhl = 19
175 integer,
private,
parameter :: i_rhi = 20
177 integer,
private,
parameter :: i_vor = 21
178 integer,
private,
parameter :: i_div = 22
179 integer,
private,
parameter :: i_hdiv = 23
181 integer,
private,
parameter :: i_dens_prim = 24
182 integer,
private,
parameter :: i_w_prim = 25
183 integer,
private,
parameter :: i_u_prim = 26
184 integer,
private,
parameter :: i_v_prim = 27
185 integer,
private,
parameter :: i_pott_prim = 28
186 integer,
private,
parameter :: i_w_prim2 = 29
187 integer,
private,
parameter :: i_pt_w_prim = 30
188 integer,
private,
parameter :: i_w_prim3 = 31
189 integer,
private,
parameter :: i_tke_rs = 32
191 integer,
private,
parameter :: i_engp = 33
192 integer,
private,
parameter :: i_engk = 34
193 integer,
private,
parameter :: i_engi = 35
194 integer,
private,
parameter :: i_engt = 36
196 integer,
private,
parameter :: i_engsfc_sh = 37
197 integer,
private,
parameter :: i_engsfc_lh = 38
198 integer,
private,
parameter :: i_engsfc_rd = 39
199 integer,
private,
parameter :: i_engtoa_rd = 40
201 integer,
private,
parameter :: i_engsfc_lw_up = 41
202 integer,
private,
parameter :: i_engsfc_lw_dn = 42
203 integer,
private,
parameter :: i_engsfc_sw_up = 43
204 integer,
private,
parameter :: i_engsfc_sw_dn = 44
206 integer,
private,
parameter :: i_engtoa_lw_up = 45
207 integer,
private,
parameter :: i_engtoa_lw_dn = 46
208 integer,
private,
parameter :: i_engtoa_sw_up = 47
209 integer,
private,
parameter :: i_engtoa_sw_dn = 48
211 integer,
private,
parameter :: i_engflxt = 49
213 integer,
private,
parameter :: i_evap = 50
214 integer,
private,
parameter :: i_prcp = 51
216 integer,
private,
parameter :: i_dens_mean = 52
217 integer,
private,
parameter :: i_w_mean = 53
218 integer,
private,
parameter :: i_u_mean = 54
219 integer,
private,
parameter :: i_v_mean = 55
220 integer,
private,
parameter :: i_pott_mean = 56
221 integer,
private,
parameter :: i_t_mean = 57
223 integer,
private,
parameter :: i_qv_mean = 58
224 integer,
private,
parameter :: i_qhyd_mean = 59
225 integer,
private,
parameter :: i_qliq_mean = 60
226 integer,
private,
parameter :: i_qice_mean = 61
228 integer,
private,
parameter :: i_qsat = 62
230 integer,
private,
parameter :: i_uabs = 63
232 integer,
private,
parameter :: i_n2 = 64
234 integer,
private,
parameter :: i_cape = 65
235 integer,
private,
parameter :: i_cin = 66
236 integer,
private,
parameter :: i_lcl = 67
237 integer,
private,
parameter :: i_lfc = 68
238 integer,
private,
parameter :: i_lnb = 69
240 integer,
private,
parameter :: i_pblh = 70
241 integer,
private,
parameter :: i_mse = 71
243 integer,
private :: ad_hist_id (ad_nmax)
244 integer,
private :: ad_prep_sw (ad_nmax)
245 integer,
private :: ad_monit_id(ad_nmax)
247 logical,
private :: atmos_restart_in_check_coordinates = .true.
280 namelist / param_atmos_vars / &
283 atmos_restart_in_check_coordinates, &
292 atmos_vars_checkrange, &
300 if(
io_l )
write(
io_fid_log,*)
'++++++ Module[VARS] / Categ[ATMOS] / Origin[SCALE-RM]' 355 if(
io_l )
write(
io_fid_log,*)
'*** Not found namelist. Default used.' 356 elseif( ierr > 0 )
then 357 write(*,*)
'xxx Not appropriate names in namelist PARAM_ATMOS_VARS. Check!' 363 if(
io_l )
write(
io_fid_log,*)
'*** List of prognostic variables (ATMOS) ***' 365 '*** |',
'VARNAME ',
'|', &
366 'DESCRIPTION ',
'[',
'UNIT ',
']' 368 if(
io_l )
write(
io_fid_log,
'(1x,A,I3,A,A24,A,A48,A,A12,A)') &
369 '*** NO.',iv,
'|',var_name(iv),
'|', var_desc(iv),
'[', var_unit(iv),
']' 372 if(
io_l )
write(
io_fid_log,
'(1x,A,I3,A,A24,A,A48,A,A12,A)') &
398 if(
io_l )
write(
io_fid_log,*)
'*** Check value range of variables? : ', atmos_vars_checkrange
399 if ( atmos_vars_checkcfl > 0.0_rp )
then 401 if(
io_l )
write(
io_fid_log,*)
'*** Limit of Courant number : ', atmos_vars_checkcfl
419 allocate( aq_hist_id(max(
qa,1)))
436 call hist_reg( ad_hist_id(i_w) ,
'W',
'velocity w',
'm/s', ndim=3 )
437 call hist_reg( ad_hist_id(i_u) ,
'U',
'velocity u',
'm/s', ndim=3 )
438 call hist_reg( ad_hist_id(i_v) ,
'V',
'velocity v',
'm/s', ndim=3 )
439 call hist_reg( ad_hist_id(i_pott) ,
'PT',
'potential temp.',
'K', ndim=3 )
441 call hist_reg( ad_hist_id(i_qdry) ,
'QDRY',
'dry air',
'kg/kg', ndim=3 )
442 call hist_reg( ad_hist_id(i_qtot) ,
'QTOT',
'total water',
'kg/kg', ndim=3 )
443 call hist_reg( ad_hist_id(i_qhyd) ,
'QHYD',
'total hydrometeors',
'kg/kg', ndim=3 )
444 call hist_reg( ad_hist_id(i_qliq) ,
'QLIQ',
'total liquid water',
'kg/kg', ndim=3 )
445 call hist_reg( ad_hist_id(i_qice) ,
'QICE',
'total ice water',
'kg/kg', ndim=3 )
447 call hist_reg( ad_hist_id(i_lwp) ,
'LWP',
'liquid water path',
'g/m2', ndim=2 )
448 call hist_reg( ad_hist_id(i_iwp) ,
'IWP',
'ice water path',
'g/m2', ndim=2 )
449 call hist_reg( ad_hist_id(i_pw ) ,
'PW',
'precipitable water',
'g/m2', ndim=2 )
451 call hist_reg( ad_hist_id(i_rtot) ,
'RTOT',
'Total gas constant',
'J/kg/K', ndim=3 )
452 call hist_reg( ad_hist_id(i_cptot) ,
'CPTOT',
'Total heat capacity',
'J/kg/K', ndim=3 )
453 call hist_reg( ad_hist_id(i_pres) ,
'PRES',
'pressure',
'Pa', ndim=3 )
454 call hist_reg( ad_hist_id(i_temp) ,
'T',
'temperature',
'K', ndim=3 )
456 call hist_reg( ad_hist_id(i_potl) ,
'LWPT',
'liq. potential temp.',
'K', ndim=3 )
457 call hist_reg( ad_hist_id(i_rha) ,
'RHA',
'relative humidity(liq+ice)',
'%', ndim=3 )
458 call hist_reg( ad_hist_id(i_rhl) ,
'RH',
'relative humidity(liq)',
'%', ndim=3 )
459 call hist_reg( ad_hist_id(i_rhi) ,
'RHI',
'relative humidity(ice)',
'%', ndim=3 )
461 call hist_reg( ad_hist_id(i_vor) ,
'VOR',
'vertical vorticity',
'1/s', ndim=3 )
462 call hist_reg( ad_hist_id(i_div) ,
'DIV',
'divergence',
'1/s', ndim=3 )
463 call hist_reg( ad_hist_id(i_hdiv) ,
'HDIV',
'horizontal divergence',
'1/s', ndim=3 )
464 call hist_reg( ad_hist_id(i_uabs) ,
'Uabs',
'absolute velocity',
'm/s', ndim=3 )
466 call hist_reg( ad_hist_id(i_n2) ,
'N2',
'squared Brunt-Vaisala frequency',
'1/s2', ndim=3 )
468 call hist_reg( ad_hist_id(i_cape) ,
'CAPE',
'convection avail. pot. energy',
'm2/s2', ndim=2 )
469 call hist_reg( ad_hist_id(i_cin) ,
'CIN',
'convection inhibition',
'm2/s2', ndim=2 )
470 call hist_reg( ad_hist_id(i_lcl) ,
'LCL',
'lifted condensation level',
'm', ndim=2 )
471 call hist_reg( ad_hist_id(i_lfc) ,
'LFC',
'level of free convection',
'm', ndim=2 )
472 call hist_reg( ad_hist_id(i_lnb) ,
'LNB',
'level of neutral buoyancy',
'm', ndim=2 )
474 call hist_reg( ad_hist_id(i_pblh) ,
'PBLH',
'PBL height',
'm', ndim=2 )
475 call hist_reg( ad_hist_id(i_mse) ,
'MSE',
'moist static energy',
'm2/s2', ndim=3 )
477 call hist_reg( ad_hist_id(i_dens_mean),
'DENS_MEAN',
'horiz. mean of density',
'kg/m3', ndim=1 )
478 call hist_reg( ad_hist_id(i_w_mean) ,
'W_MEAN',
'horiz. mean of w',
'm/s', ndim=1 )
479 call hist_reg( ad_hist_id(i_u_mean) ,
'U_MEAN',
'horiz. mean of u',
'm/s', ndim=1 )
480 call hist_reg( ad_hist_id(i_v_mean) ,
'V_MEAN',
'horiz. mean of v',
'm/s', ndim=1 )
481 call hist_reg( ad_hist_id(i_pott_mean),
'PT_MEAN',
'horiz. mean of pot.',
'K', ndim=1 )
482 call hist_reg( ad_hist_id(i_t_mean) ,
'T_MEAN',
'horiz. mean of t',
'K', ndim=1 )
483 call hist_reg( ad_hist_id(i_qv_mean) ,
'QV_MEAN',
'horiz. mean of QV',
'1', ndim=1 )
484 call hist_reg( ad_hist_id(i_qhyd_mean),
'QHYD_MEAN',
'horiz. mean of QHYD',
'1', ndim=1 )
485 call hist_reg( ad_hist_id(i_qliq_mean),
'QLIQ_MEAN',
'horiz. mean of QLIQ',
'1', ndim=1 )
486 call hist_reg( ad_hist_id(i_qice_mean),
'QICE_MEAN',
'horiz. mean of QICE',
'1', ndim=1 )
488 call hist_reg( ad_hist_id(i_dens_prim),
'DENS_PRIM',
'horiz. deviation of density',
'kg/m3', ndim=3 )
489 call hist_reg( ad_hist_id(i_w_prim ),
'W_PRIM',
'horiz. deviation of w',
'm/s', ndim=3 )
490 call hist_reg( ad_hist_id(i_u_prim ),
'U_PRIM',
'horiz. deviation of u',
'm/s', ndim=3 )
491 call hist_reg( ad_hist_id(i_v_prim ),
'V_PRIM',
'horiz. deviation of v',
'm/s', ndim=3 )
492 call hist_reg( ad_hist_id(i_pott_prim),
'PT_PRIM',
'horiz. deviation of pot. temp.',
'K', ndim=3 )
493 call hist_reg( ad_hist_id(i_w_prim2 ),
'W_PRIM2',
'variance of w',
'm2/s2', ndim=3 )
494 call hist_reg( ad_hist_id(i_pt_w_prim),
'PT_W_PRIM',
'resolved scale heat flux',
'W/s', ndim=3 )
495 call hist_reg( ad_hist_id(i_w_prim3 ),
'W_PRIM3',
'skewness of w',
'm3/s3', ndim=3 )
496 call hist_reg( ad_hist_id(i_tke_rs ),
'TKE_RS',
'resolved scale TKE',
'm2/s2', ndim=3 )
498 call hist_reg( ad_hist_id(i_engt) ,
'ENGT',
'total energy',
'J/m3', ndim=3 )
499 call hist_reg( ad_hist_id(i_engp) ,
'ENGP',
'potential energy',
'J/m3', ndim=3 )
500 call hist_reg( ad_hist_id(i_engk) ,
'ENGK',
'kinetic energy',
'J/m3', ndim=3 )
501 call hist_reg( ad_hist_id(i_engi) ,
'ENGI',
'internal energy',
'J/m3', ndim=3 )
505 call monit_reg( ad_monit_id(i_qdry) ,
'QDRY',
'dry air mass',
'kg', ndim=3, isflux=.false. )
506 call monit_reg( ad_monit_id(i_qtot) ,
'QTOT',
'water mass',
'kg', ndim=3, isflux=.false. )
507 call monit_reg( ad_monit_id(i_evap) ,
'EVAP',
'evaporation',
'kg', ndim=2, isflux=.true. )
508 call monit_reg( ad_monit_id(i_prcp) ,
'PRCP',
'precipitation',
'kg', ndim=2, isflux=.true. )
510 call monit_reg( ad_monit_id(i_engt) ,
'ENGT',
'total energy',
'J', ndim=3, isflux=.false. )
511 call monit_reg( ad_monit_id(i_engp) ,
'ENGP',
'potential energy',
'J', ndim=3, isflux=.false. )
512 call monit_reg( ad_monit_id(i_engk) ,
'ENGK',
'kinetic energy',
'J', ndim=3, isflux=.false. )
513 call monit_reg( ad_monit_id(i_engi) ,
'ENGI',
'internal energy',
'J', ndim=3, isflux=.false. )
515 call monit_reg( ad_monit_id(i_engflxt) ,
'ENGFLXT',
'total energy flux',
'J', ndim=2, isflux=.true. )
517 call monit_reg( ad_monit_id(i_engsfc_sh) ,
'ENGSFC_SH',
'SFC specific heat flux',
'J', ndim=2, isflux=.true. )
518 call monit_reg( ad_monit_id(i_engsfc_lh) ,
'ENGSFC_LH',
'SFC latent heat flux',
'J', ndim=2, isflux=.true. )
519 call monit_reg( ad_monit_id(i_engsfc_rd) ,
'ENGSFC_RD',
'SFC net radiation flux',
'J', ndim=2, isflux=.true. )
520 call monit_reg( ad_monit_id(i_engtoa_rd) ,
'ENGTOA_RD',
'TOA net radiation flux',
'J', ndim=2, isflux=.true. )
522 call monit_reg( ad_monit_id(i_engsfc_lw_up),
'ENGSFC_LW_up',
'SFC LW upward flux',
'J', ndim=2, isflux=.true. )
523 call monit_reg( ad_monit_id(i_engsfc_lw_dn),
'ENGSFC_LW_dn',
'SFC LW downward flux',
'J', ndim=2, isflux=.true. )
524 call monit_reg( ad_monit_id(i_engsfc_sw_up),
'ENGSFC_SW_up',
'SFC SW upward flux',
'J', ndim=2, isflux=.true. )
525 call monit_reg( ad_monit_id(i_engsfc_sw_dn),
'ENGSFC_SW_dn',
'SFC SW downward flux',
'J', ndim=2, isflux=.true. )
527 call monit_reg( ad_monit_id(i_engtoa_lw_up),
'ENGTOA_LW_up',
'TOA LW upward flux',
'J', ndim=2, isflux=.true. )
528 call monit_reg( ad_monit_id(i_engtoa_lw_dn),
'ENGTOA_LW_dn',
'TOA LW downward flux',
'J', ndim=2, isflux=.true. )
529 call monit_reg( ad_monit_id(i_engtoa_sw_up),
'ENGTOA_SW_up',
'TOA SW upward flux',
'J', ndim=2, isflux=.true. )
530 call monit_reg( ad_monit_id(i_engtoa_sw_dn),
'ENGTOA_SW_dn',
'TOA SW downward flux',
'J', ndim=2, isflux=.true. )
532 if ( ad_hist_id(i_qdry) > 0 &
533 .OR. ad_monit_id(i_qdry) > 0 )
then 534 ad_prep_sw(i_qdry) = 1
536 if ( ad_hist_id(i_qtot) > 0 &
537 .OR. ad_monit_id(i_qtot) > 0 )
then 538 ad_prep_sw(i_qdry) = 1
539 ad_prep_sw(i_qtot) = 1
541 if ( ad_hist_id(i_qhyd) > 0 )
then 542 ad_prep_sw(i_qhyd) = 1
544 if ( ad_hist_id(i_qliq) > 0 )
then 545 ad_prep_sw(i_qliq) = 1
547 if ( ad_hist_id(i_qice) > 0 )
then 548 ad_prep_sw(i_qice) = 1
551 if ( ad_hist_id(i_lwp) > 0 )
then 552 ad_prep_sw(i_qliq) = 1
553 ad_prep_sw(i_lwp) = 1
555 if ( ad_hist_id(i_iwp) > 0 )
then 556 ad_prep_sw(i_qice) = 1
557 ad_prep_sw(i_iwp) = 1
559 if ( ad_hist_id(i_pw) > 0 )
then 563 if ( ad_hist_id(i_rtot) > 0 )
then 564 ad_prep_sw(i_qdry) = 1
565 ad_prep_sw(i_rtot) = 1
567 if ( ad_hist_id(i_cptot) > 0 )
then 568 ad_prep_sw(i_qdry) = 1
569 ad_prep_sw(i_cptot) = 1
572 if ( ad_hist_id(i_potl) > 0 )
then 573 ad_prep_sw(i_qdry) = 1
574 ad_prep_sw(i_rtot) = 1
575 ad_prep_sw(i_cptot) = 1
576 ad_prep_sw(i_potl) = 1
578 if ( ad_hist_id(i_rha) > 0 &
579 .OR. ad_hist_id(i_rhl) > 0 &
580 .OR. ad_hist_id(i_rhi) > 0 )
then 581 ad_prep_sw(i_qdry) = 1
582 ad_prep_sw(i_rtot) = 1
583 ad_prep_sw(i_cptot) = 1
584 ad_prep_sw(i_qsat) = 1
588 if ( ad_hist_id(i_vor) > 0 )
then 589 ad_prep_sw(i_vor) = 1
592 if ( ad_prep_sw(i_div) > 0 )
then 593 ad_prep_sw(i_hdiv) = 1
596 if ( ad_hist_id(i_uabs) > 0 )
then 597 ad_prep_sw(i_uabs) = 1
600 if ( ad_hist_id(i_cape) > 0 &
601 .OR. ad_hist_id(i_cin) > 0 &
602 .OR. ad_hist_id(i_lcl) > 0 &
603 .OR. ad_hist_id(i_lfc) > 0 &
604 .OR. ad_hist_id(i_lnb) > 0 )
then 605 ad_prep_sw(i_cape) = 1
606 ad_prep_sw(i_cin) = 1
607 ad_prep_sw(i_lcl) = 1
608 ad_prep_sw(i_lfc) = 1
609 ad_prep_sw(i_lnb) = 1
612 if ( ad_hist_id(i_pblh) > 0 )
then 613 ad_prep_sw(i_pblh) = 1
616 if ( ad_hist_id(i_mse) > 0 )
then 617 ad_prep_sw(i_cptot) = 1
618 ad_prep_sw(i_mse) = 1
621 if ( ad_hist_id(i_dens_prim) > 0 )
then 622 ad_prep_sw(i_dens_prim) = 1
623 ad_prep_sw(i_dens_mean) = 1
626 if ( ad_hist_id(i_w_prim) > 0 )
then 627 ad_prep_sw(i_w_prim) = 1
628 ad_prep_sw(i_dens_mean) = 1
629 ad_prep_sw(i_w_mean) = 1
632 if ( ad_hist_id(i_u_prim) > 0 )
then 633 ad_prep_sw(i_u_prim) = 1
634 ad_prep_sw(i_dens_mean) = 1
635 ad_prep_sw(i_u_mean) = 1
638 if ( ad_hist_id(i_v_prim) > 0 )
then 639 ad_prep_sw(i_v_prim) = 1
640 ad_prep_sw(i_dens_mean) = 1
641 ad_prep_sw(i_v_mean) = 1
644 if ( ad_hist_id(i_pott_prim) > 0 )
then 645 ad_prep_sw(i_pott_prim) = 1
646 ad_prep_sw(i_dens_mean) = 1
647 ad_prep_sw(i_pott_mean) = 1
650 if ( ad_hist_id(i_dens_mean) > 0 )
then 651 ad_prep_sw(i_dens_mean) = 1
654 if ( ad_hist_id(i_w_mean) > 0 )
then 655 ad_prep_sw(i_w_mean) = 1
658 if ( ad_hist_id(i_u_mean) > 0 )
then 659 ad_prep_sw(i_u_mean) = 1
662 if ( ad_hist_id(i_v_mean) > 0 )
then 663 ad_prep_sw(i_v_mean) = 1
666 if ( ad_hist_id(i_pott_mean) > 0 )
then 667 ad_prep_sw(i_pott_mean) = 1
670 if ( ad_hist_id(i_t_mean) > 0 )
then 671 ad_prep_sw(i_t_mean) = 1
674 if ( ad_hist_id(i_qv_mean) > 0 )
then 675 ad_prep_sw(i_qv_mean) = 1
678 if ( ad_hist_id(i_qhyd_mean) > 0 )
then 679 ad_prep_sw(i_qhyd) = 1
680 ad_prep_sw(i_qhyd_mean) = 1
683 if ( ad_hist_id(i_qliq_mean) > 0 )
then 684 ad_prep_sw(i_qliq) = 1
685 ad_prep_sw(i_qliq_mean) = 1
688 if ( ad_hist_id(i_qice_mean) > 0 )
then 689 ad_prep_sw(i_qice) = 1
690 ad_prep_sw(i_qice_mean) = 1
693 if ( ad_hist_id(i_w_prim2) > 0 )
then 694 ad_prep_sw(i_w_prim) = 1
695 ad_prep_sw(i_w_prim2) = 1
696 ad_prep_sw(i_dens_mean) = 1
697 ad_prep_sw(i_w_mean) = 1
700 if ( ad_hist_id(i_pt_w_prim) > 0 )
then 701 ad_prep_sw(i_w_prim) = 1
702 ad_prep_sw(i_pott_prim) = 1
703 ad_prep_sw(i_pt_w_prim) = 1
704 ad_prep_sw(i_dens_mean) = 1
705 ad_prep_sw(i_w_mean) = 1
706 ad_prep_sw(i_pott_mean) = 1
709 if ( ad_hist_id(i_w_prim3) > 0 )
then 710 ad_prep_sw(i_w_prim) = 1
711 ad_prep_sw(i_w_prim3) = 1
712 ad_prep_sw(i_dens_mean) = 1
713 ad_prep_sw(i_w_mean) = 1
716 if ( ad_hist_id(i_tke_rs) > 0 )
then 717 ad_prep_sw(i_w_prim) = 1
718 ad_prep_sw(i_u_prim) = 1
719 ad_prep_sw(i_v_prim) = 1
720 ad_prep_sw(i_tke_rs) = 1
721 ad_prep_sw(i_dens_mean) = 1
722 ad_prep_sw(i_w_mean) = 1
723 ad_prep_sw(i_u_mean) = 1
724 ad_prep_sw(i_v_mean) = 1
727 if ( ad_hist_id(i_engp) > 0 &
728 .OR. ad_monit_id(i_engp) > 0 )
then 729 ad_prep_sw(i_engp) = 1
731 if ( ad_hist_id(i_engk) > 0 &
732 .OR. ad_monit_id(i_engk) > 0 )
then 733 ad_prep_sw(i_engk) = 1
735 if ( ad_hist_id(i_engi) > 0 &
736 .OR. ad_monit_id(i_engi) > 0 )
then 737 ad_prep_sw(i_qdry) = 1
738 ad_prep_sw(i_rtot) = 1
739 ad_prep_sw(i_cptot) = 1
740 ad_prep_sw(i_engi) = 1
742 if ( ad_hist_id(i_engt) > 0 &
743 .OR. ad_monit_id(i_engt) > 0 )
then 744 ad_prep_sw(i_engp) = 1
745 ad_prep_sw(i_engk) = 1
746 ad_prep_sw(i_qdry) = 1
747 ad_prep_sw(i_rtot) = 1
748 ad_prep_sw(i_cptot) = 1
749 ad_prep_sw(i_engi) = 1
750 ad_prep_sw(i_engt) = 1
765 logical,
intent(in),
optional :: fill_bnd
772 if (
present(fill_bnd) ) fill_bnd_ = fill_bnd
800 call comm_vars8(
dens(:,:,:), 1 )
801 call comm_vars8(
momz(:,:,:), 2 )
802 call comm_vars8(
momx(:,:,:), 3 )
803 call comm_vars8(
momy(:,:,:), 4 )
804 call comm_vars8(
rhot(:,:,:), 5 )
805 call comm_wait (
dens(:,:,:), 1, fill_bnd_ )
806 call comm_wait (
momz(:,:,:), 2, fill_bnd_ )
807 call comm_wait (
momx(:,:,:), 3, fill_bnd_ )
808 call comm_wait (
momy(:,:,:), 4, fill_bnd_ )
809 call comm_wait (
rhot(:,:,:), 5, fill_bnd_ )
812 call comm_vars8(
qtrc(:,:,:,iq), iq )
815 call comm_wait (
qtrc(:,:,:,iq), iq, fill_bnd_ )
832 fileio_check_coordinates
834 thermodyn_qd => atmos_thermodyn_qd, &
835 thermodyn_temp_pres => atmos_thermodyn_temp_pres
864 character(len=19) :: timelabel
865 character(len=H_LONG) :: basename
869 if(
io_l )
write(
io_fid_log,*)
'*** Open restart file (ATMOS) ***' 884 if ( atmos_restart_in_check_coordinates )
then 885 call fileio_check_coordinates( restart_fid, atmos=.true. )
889 write(*,*)
'*** restart file for atmosphere is not specified. STOP!' 923 thermodyn_qd => atmos_thermodyn_qd, &
924 thermodyn_temp_pres => atmos_thermodyn_temp_pres
956 if ( restart_fid /= -1 )
then 958 if(
io_l )
write(
io_fid_log,*)
'*** Read from restart file (ATMOS) ***' 960 call fileio_read(
dens(:,:,:), &
961 restart_fid, var_name(1),
'ZXY', step=1 )
962 call fileio_read(
momz(:,:,:), &
963 restart_fid, var_name(2),
'ZXY', step=1 )
964 call fileio_read(
momx(:,:,:), &
965 restart_fid, var_name(3),
'ZXY', step=1 )
966 call fileio_read(
momy(:,:,:), &
967 restart_fid, var_name(4),
'ZXY', step=1 )
968 call fileio_read(
rhot(:,:,:), &
969 restart_fid, var_name(5),
'ZXY', step=1 )
972 call fileio_read(
qtrc(:,:,:,iq), &
1000 write(*,*)
'*** invalid restart file ID for atmosphere. STOP!' 1039 real(RP) :: sfc_dens(
ia,
ja)
1040 real(RP) :: sfc_pres(
ia,
ja)
1043 call bottom_estimate(
dens_av(:,:,:), &
1069 real(RP) :: dens_check(
ka,
ia,
ja)
1070 real(RP) :: momz_check(
ka,
ia,
ja)
1071 real(RP) :: momx_check(
ka,
ia,
ja)
1072 real(RP) :: momy_check(
ka,
ia,
ja)
1073 real(RP) :: rhot_check(
ka,
ia,
ja)
1074 real(RP) :: qtrc_check(
ka,
ia,
ja,
qa)
1076 character(len=H_LONG) :: basename
1078 logical :: datacheck
1079 integer :: k, i, j, iq
1093 call fileio_read( dens_check(:,:,:), fid,
'DENS',
'ZXY', step=1 )
1094 call fileio_read( momz_check(:,:,:), fid,
'MOMZ',
'ZXY', step=1 )
1095 call fileio_read( momx_check(:,:,:), fid,
'MOMX',
'ZXY', step=1 )
1096 call fileio_read( momy_check(:,:,:), fid,
'MOMY',
'ZXY', step=1 )
1097 call fileio_read( rhot_check(:,:,:), fid,
'RHOT',
'ZXY', step=1 )
1099 call fileio_read( qtrc_check(:,:,:,iq), fid,
tracer_name(iq),
'ZXY', step=1 )
1109 write(*,*)
'xxx there is the difference : ',
dens(k,i,j)-dens_check(k,i,j)
1110 write(*,*)
'xxx at (PE-id,k,i,j,varname) : ',
prc_myrank, k, i, j,
'DENS' 1121 write(*,*)
'xxx there is the difference : ',
momz(k,i,j)-momz_check(k,i,j)
1122 write(*,*)
'xxx at (PE-id,k,i,j,varname) : ',
prc_myrank, k, i, j,
'MOMZ' 1133 write(*,*)
'xxx there is the difference : ',
momx(k,i,j)-momx_check(k,i,j)
1134 write(*,*)
'xxx at (PE-id,k,i,j,varname) : ',
prc_myrank, k, i, j,
'MOMX' 1145 write(*,*)
'xxx there is the difference : ',
momy(k,i,j)-momy_check(k,i,j)
1146 write(*,*)
'xxx at (PE-id,k,i,j,varname) : ',
prc_myrank, k, i, j,
'MOMY' 1157 write(*,*)
'xxx there is the difference : ',
rhot(k,i,j)-rhot_check(k,i,j)
1158 write(*,*)
'xxx at (PE-id,k,i,j,varname) : ',
prc_myrank, k, i, j,
'RHOT' 1170 write(*,*)
'xxx there is the difference : ',
qtrc(k,i,j,iq)-qtrc_check(k,i,j,iq)
1171 write(*,*)
'xxx at (PE-id,k,i,j,varname) : ',
prc_myrank, k, i, j,
tracer_name(iq)
1181 write(*,*)
'Data Check Clear.' 1183 if(
io_l )
write(
io_fid_log,*)
'Data Check Failed. See std. output.' 1184 write(*,*)
'Data Check Failed.' 1213 thermodyn_qd => atmos_thermodyn_qd
1215 hydrometeor_lhv => atmos_hydrometeor_lhv, &
1227 saturation_psat_all => atmos_saturation_psat_all, &
1228 saturation_psat_liq => atmos_saturation_psat_liq, &
1229 saturation_psat_ice => atmos_saturation_psat_ice
1239 real(RP) :: qdry (
ka,
ia,
ja)
1240 real(RP) :: qtot (
ka,
ia,
ja)
1241 real(RP) :: qhyd (
ka,
ia,
ja)
1242 real(RP) :: qliq (
ka,
ia,
ja)
1243 real(RP) :: qice (
ka,
ia,
ja)
1244 real(RP) :: rhoq (
ka,
ia,
ja)
1246 real(RP) :: lwp (
ia,
ja)
1247 real(RP) :: iwp (
ia,
ja)
1248 real(RP) :: pw (
ia,
ja)
1250 real(RP) :: rtot (
ka,
ia,
ja)
1251 real(RP) :: cptot (
ka,
ia,
ja)
1252 real(RP) :: cvtot (
ka,
ia,
ja)
1253 real(RP) :: cpovcv(
ka,
ia,
ja)
1255 real(RP) :: potl (
ka,
ia,
ja)
1256 real(RP) :: rha (
ka,
ia,
ja)
1257 real(RP) :: rhl (
ka,
ia,
ja)
1258 real(RP) :: rhi (
ka,
ia,
ja)
1260 real(RP) :: vor (
ka,
ia,
ja)
1261 real(RP) :: div (
ka,
ia,
ja)
1262 real(RP) :: hdiv (
ka,
ia,
ja)
1263 real(RP) :: uabs (
ka,
ia,
ja)
1265 real(RP) :: cape (
ia,
ja)
1266 real(RP) :: cin (
ia,
ja)
1267 real(RP) :: lcl (
ia,
ja)
1268 real(RP) :: lfc (
ia,
ja)
1269 real(RP) :: lnb (
ia,
ja)
1271 real(RP) :: pblh (
ia,
ja)
1272 real(RP) :: pottv (
ka,
ia,
ja)
1275 real(RP) :: mse (
ka,
ia,
ja)
1276 real(RP) :: lhv_local(
ka,
ia,
ja)
1278 real(RP) :: prec (
ia,
ja)
1279 real(RP) :: rain (
ia,
ja)
1280 real(RP) :: snow (
ia,
ja)
1282 real(RP) :: dens_prim(
ka,
ia,
ja)
1283 real(RP) :: w_prim (
ka,
ia,
ja)
1284 real(RP) :: u_prim (
ka,
ia,
ja)
1285 real(RP) :: v_prim (
ka,
ia,
ja)
1286 real(RP) :: pott_prim(
ka,
ia,
ja)
1287 real(RP) :: w_prim2 (
ka,
ia,
ja)
1288 real(RP) :: pt_w_prim(
ka,
ia,
ja)
1289 real(RP) :: w_prim3 (
ka,
ia,
ja)
1290 real(RP) :: tke_rs (
ka,
ia,
ja)
1291 real(RP) :: dens_mean(
ka)
1292 real(RP) :: w_mean (
ka)
1293 real(RP) :: u_mean (
ka)
1294 real(RP) :: v_mean (
ka)
1295 real(RP) :: pt_mean (
ka)
1296 real(RP) :: t_mean (
ka)
1297 real(RP) :: qv_mean (
ka)
1298 real(RP) :: qhyd_mean(
ka)
1299 real(RP) :: qliq_mean(
ka)
1300 real(RP) :: qice_mean(
ka)
1302 real(RP) :: engt (
ka,
ia,
ja)
1303 real(RP) :: engp (
ka,
ia,
ja)
1304 real(RP) :: engk (
ka,
ia,
ja)
1305 real(RP) :: engi (
ka,
ia,
ja)
1307 real(RP) :: psat (
ka,
ia,
ja)
1308 real(RP) :: uh (
ka,
ia,
ja)
1309 real(RP) :: vh (
ka,
ia,
ja)
1311 integer :: k, i, j, iq
1315 if ( atmos_vars_checkrange )
then 1316 call valcheck(
dens(:,:,:), 0.0_rp, 2.0_rp, var_name(
i_dens), __file__, __line__ )
1317 call valcheck(
momz(:,:,:), -200.0_rp, 200.0_rp, var_name(
i_momz), __file__, __line__ )
1318 call valcheck(
momx(:,:,:), -200.0_rp, 200.0_rp, var_name(
i_momx), __file__, __line__ )
1319 call valcheck(
momy(:,:,:), -200.0_rp, 200.0_rp, var_name(
i_momy), __file__, __line__ )
1320 call valcheck(
rhot(:,:,:), 0.0_rp, 1000.0_rp, var_name(
i_rhot), __file__, __line__ )
1335 if ( ad_prep_sw(i_qdry) > 0 )
then 1336 call thermodyn_qd( qdry(:,:,:), &
1341 if ( ad_prep_sw(i_qtot) > 0 )
then 1346 qtot(k,i,j) = 1.0_rp - qdry(k,i,j)
1352 if ( ad_prep_sw(i_qhyd) > 0 )
then 1354 qhyd(:,:,:) = 0.0_rp
1356 qhyd(:,:,:) = qhyd(:,:,:) +
qtrc_av(:,:,:,iq)
1360 if ( ad_prep_sw(i_qliq) > 0 )
then 1362 qliq(:,:,:) = 0.0_rp
1364 qliq(:,:,:) = qliq(:,:,:) +
qtrc_av(:,:,:,iq)
1368 if ( ad_prep_sw(i_qice) > 0 )
then 1370 qice(:,:,:) = 0.0_rp
1372 qice(:,:,:) = qice(:,:,:) +
qtrc_av(:,:,:,iq)
1376 if ( ad_prep_sw(i_lwp) > 0 )
then 1381 lwp(i,j) = lwp(i,j) &
1388 if ( ad_prep_sw(i_iwp) > 0 )
then 1393 iwp(i,j) = iwp(i,j) &
1400 if ( ad_prep_sw(i_pw) > 0 )
then 1412 if ( ad_prep_sw(i_rtot) > 0 )
then 1418 calc_r(rtot(k,i,j), qdry(k,i,j),
qtrc_av, k, i, j, iq, rdry,
tracer_r)
1424 if ( ad_prep_sw(i_cptot) > 0 )
then 1433 cptot(k,i,j) = cpdry * qdry(k,i,j)
1434 cvtot(k,i,j) = cvdry * qdry(k,i,j)
1448 cpovcv(k,i,j) = cptot(k,i,j) / cvtot(k,i,j)
1454 if ( ad_prep_sw(i_potl) > 0 )
then 1455 call hydrometeor_lhv( lhv_local(:,:,:),
temp(:,:,:) )
1462 potl(k,i,j) =
pott(k,i,j) &
1463 - lhv_local(k,i,j) / cpdry * qliq(k,i,j) *
pott(k,i,j) /
temp(k,i,j)
1469 if ( ad_prep_sw(i_qsat) > 0 )
then 1475 if ( ad_hist_id(i_rha) > 0 )
then 1476 call saturation_psat_all( psat(:,:,:),
temp(:,:,:) )
1484 / psat(k,i,j) * rvap *
temp(k,i,j) &
1491 if ( ad_hist_id(i_rhl) > 0 )
then 1492 call saturation_psat_liq( psat(:,:,:), &
1500 / psat(k,i,j) * rvap *
temp(k,i,j) &
1507 if ( ad_hist_id(i_rhi) > 0 )
then 1508 call saturation_psat_ice( psat(:,:,:), &
1516 / psat(k,i,j) * rvap *
temp(k,i,j) &
1523 if ( ad_prep_sw(i_vor) > 0 )
then 1530 uh(k,i,j) = 0.5_rp * (
momx_av(k,i,j)+
momx_av(k,i,j+1)+
momx_av(k,i-1,j)+
momx_av(k,i-1,j+1) ) &
1542 vh(k,i,j) = 0.5_rp * (
momy_av(k,i,j)+
momy_av(k,i+1,j)+
momy_av(k,i,j-1)+
momy_av(k,i+1,j-1) ) &
1553 vor(k,i,j) = ( vh(k,i,j ) - vh(k,i-1,j ) ) * rcdx(i) &
1554 - ( uh(k,i ,j) - uh(k,i ,j-1) ) * rcdy(j)
1562 vor(k,1 ,j) = vor(k,2 ,j)
1563 vor(k,
ia,j) = vor(k,
ia-1,j)
1570 vor(k,i,1 ) = vor(k,i,2 )
1571 vor(k,i,
ja) = vor(k,i,
ja-1)
1576 if ( ad_prep_sw(i_hdiv) > 0 )
then 1582 hdiv(k,i,j) = (
momx_av(k,i,j) -
momx_av(k ,i-1,j ) ) * rcdx(i) &
1590 hdiv(k,i,1) = hdiv(k,i,2)
1596 hdiv(k,1,j) = hdiv(k,2,j)
1601 if ( ad_prep_sw(i_div) > 0 )
then 1607 div(k,i,j) = (
momz_av(k,i,j) -
momz_av(k-1,i ,j ) ) * (
real_fz(k,i,j)-
real_fz(k-1,i,j) ) &
1614 if ( ad_prep_sw(i_uabs) > 0 )
then 1619 uabs(k,i,j) = sqrt(
u(k,i,j) *
u(k,i,j) &
1620 +
v(k,i,j) *
v(k,i,j) )
1626 if ( ad_prep_sw(i_dens_mean) > 0 )
then 1630 if ( ad_prep_sw(i_dens_prim) > 0 )
then 1635 dens_prim(k,i,j) =
dens_av(k,i,j) - dens_mean(k)
1641 if ( ad_prep_sw(i_w_mean) > 0 )
then 1646 w_prim(k,i,j) =
w(k,i,j) *
dens_av(k,i,j)
1652 w_mean(k) = w_mean(k) / dens_mean(k)
1655 if ( ad_prep_sw(i_w_prim) > 0 )
then 1660 w_prim(k,i,j) =
w(k,i,j) - w_mean(k)
1666 if ( ad_prep_sw(i_u_mean) > 0 )
then 1671 u_prim(k,i,j) =
u(k,i,j) *
dens_av(k,i,j)
1677 u_mean(k) = u_mean(k) / dens_mean(k)
1680 if ( ad_prep_sw(i_u_prim) > 0 )
then 1685 u_prim(k,i,j) =
u(k,i,j) - u_mean(k)
1691 if ( ad_prep_sw(i_v_mean) > 0 )
then 1696 v_prim(k,i,j) =
v(k,i,j) *
dens_av(k,i,j)
1702 v_mean(k) = v_mean(k) / dens_mean(k)
1705 if ( ad_prep_sw(i_v_prim) > 0 )
then 1710 v_prim(k,i,j) =
v(k,i,j) - v_mean(k)
1716 if ( ad_prep_sw(i_t_mean) > 0 )
then 1727 t_mean(k) = t_mean(k) / dens_mean(k)
1731 if ( ad_prep_sw(i_pott_mean) > 0 )
then 1734 pt_mean(k) = pt_mean(k) / dens_mean(k)
1737 if ( ad_prep_sw(i_pott_prim) > 0 )
then 1742 pott_prim(k,i,j) =
pott(k,i,j) - pt_mean(k)
1748 if ( ad_prep_sw(i_qv_mean) > 0 )
then 1759 qv_mean(k) = qv_mean(k) / dens_mean(k)
1763 if ( ad_prep_sw(i_qhyd_mean) > 0 )
then 1768 rhoq(k,i,j) = qhyd(k,i,j) *
dens_av(k,i,j)
1774 qhyd_mean(k) = qhyd_mean(k) / dens_mean(k)
1778 if ( ad_prep_sw(i_qliq_mean) > 0 )
then 1783 rhoq(k,i,j) = qliq(k,i,j) *
dens_av(k,i,j)
1789 qliq_mean(k) = qliq_mean(k) / dens_mean(k)
1793 if ( ad_prep_sw(i_qice_mean) > 0 )
then 1798 rhoq(k,i,j) = qice(k,i,j) *
dens_av(k,i,j)
1804 qice_mean(k) = qice_mean(k) / dens_mean(k)
1808 if ( ad_prep_sw(i_w_prim2) > 0 )
then 1813 w_prim2(k,i,j) = w_prim(k,i,j) * w_prim(k,i,j)
1819 if ( ad_prep_sw(i_pt_w_prim) > 0 )
then 1824 pt_w_prim(k,i,j) = w_prim(k,i,j) * pott_prim(k,i,j) *
dens_av(k,i,j) * cpdry
1830 if ( ad_prep_sw(i_w_prim3) > 0 )
then 1835 w_prim3(k,i,j) = w_prim(k,i,j) * w_prim(k,i,j) * w_prim(k,i,j)
1841 if ( ad_prep_sw(i_tke_rs) > 0 )
then 1846 tke_rs(k,i,j) = 0.5_rp * ( w_prim(k,i,j) * w_prim(k,i,j) &
1847 + u_prim(k,i,j) * u_prim(k,i,j) &
1848 + v_prim(k,i,j) * v_prim(k,i,j) )
1854 if ( ad_prep_sw(i_engp) > 0 )
then 1866 if ( ad_prep_sw(i_engk) > 0 )
then 1872 engk(k,i,j) = 0.5_rp *
dens_av(k,i,j) * (
w(k,i,j)**2 &
1880 if ( ad_prep_sw(i_engi) > 0 )
then 1886 engi(k,i,j) =
dens_av(k,i,j) * qdry(k,i,j) *
temp(k,i,j) * cvdry
1896 engi(k,i,j) = engi(k,i,j) &
1903 if (
i_qv > 0 )
then 1908 engi(k,i,j) = engi(k,i,j) &
1920 engi(k,i,j) = engi(k,i,j) &
1928 if ( ad_prep_sw(i_engt) > 0 )
then 1934 engt(k,i,j) = engp(k,i,j) + engk(k,i,j) + engi(k,i,j)
1940 call hist_in(
w(:,:,:),
'W',
'velocity w',
'm/s' )
1941 call hist_in(
u(:,:,:),
'U',
'velocity u',
'm/s' )
1942 call hist_in(
v(:,:,:),
'V',
'velocity v',
'm/s' )
1943 call hist_in(
pott(:,:,:),
'PT',
'potential temp.',
'K' )
1945 call hist_in( qdry(:,:,:),
'QDRY',
'dry air',
'kg/kg' )
1946 call hist_in( qtot(:,:,:),
'QTOT',
'total water',
'kg/kg' )
1947 call hist_in( qhyd(:,:,:),
'QHYD',
'total hydrometeors',
'kg/kg' )
1948 call hist_in( qliq(:,:,:),
'QLIQ',
'total liquid water',
'kg/kg' )
1949 call hist_in( qice(:,:,:),
'QICE',
'total ice water',
'kg/kg' )
1951 call hist_in( lwp(:,:),
'LWP',
'liquid water path',
'g/m2' )
1952 call hist_in( iwp(:,:),
'IWP',
'ice water path',
'g/m2' )
1953 call hist_in( pw(:,:),
'PW',
'precipitable water',
'g/m2' )
1955 call hist_in( rtot(:,:,:),
'RTOT',
'Total gas constant',
'J/kg/K' )
1956 call hist_in( cptot(:,:,:),
'CPTOT',
'Total heat capacity',
'J/kg/K' )
1957 call hist_in(
pres(:,:,:),
'PRES',
'pressure',
'Pa' )
1958 call hist_in(
temp(:,:,:),
'T',
'temperature',
'K' )
1960 call hist_in( potl(:,:,:),
'LWPT',
'liq. potential temp.',
'K' )
1961 call hist_in( rha(:,:,:),
'RHA',
'relative humidity(liq+ice)',
'%' )
1962 call hist_in( rhl(:,:,:),
'RH' ,
'relative humidity(liq)',
'%' )
1963 call hist_in( rhi(:,:,:),
'RHI',
'relative humidity(ice)',
'%' )
1965 call hist_in( vor(:,:,:),
'VOR',
'vertical vorticity',
'1/s' )
1966 call hist_in( div(:,:,:),
'DIV',
'divergence',
'1/s' )
1967 call hist_in( hdiv(:,:,:),
'HDIV',
'horizontal divergence',
'1/s' )
1968 call hist_in( uabs(:,:,:),
'Uabs',
'absolute velocity',
'm/s' )
1970 call hist_in(
n2(:,:,:),
'N2',
'squared Brunt-Vaisala frequency',
'1/s2' )
1972 call hist_in( dens_mean(:),
'DENS_MEAN',
'horiz. mean of density',
'kg/m3' )
1973 call hist_in( w_mean(:),
'W_MEAN',
'horiz. mean of w',
'm/s' )
1974 call hist_in( u_mean(:),
'U_MEAN',
'horiz. mean of u',
'm/s' )
1975 call hist_in( v_mean(:),
'V_MEAN',
'horiz. mean of v',
'm/s' )
1976 call hist_in( pt_mean(:),
'PT_MEAN',
'horiz. mean of pot.',
'K' )
1977 call hist_in( t_mean(:),
'T_MEAN',
'horiz. mean of t',
'K' )
1978 call hist_in( qv_mean(:),
'QV_MEAN',
'horiz. mean of QV',
'1' )
1979 call hist_in( qhyd_mean(:),
'QHYD_MEAN',
'horiz. mean of QHYD',
'1' )
1980 call hist_in( qliq_mean(:),
'QLIQ_MEAN',
'horiz. mean of QLIQ',
'1' )
1981 call hist_in( qice_mean(:),
'QICE_MEAN',
'horiz. mean of QICE',
'1' )
1983 call hist_in( dens_prim(:,:,:),
'DENS_PRIM',
'horiz. deviation of density',
'kg/m3' )
1984 call hist_in( w_prim(:,:,:),
'W_PRIM',
'horiz. deviation of w',
'm/s' )
1985 call hist_in( u_prim(:,:,:),
'U_PRIM',
'horiz. deviation of u',
'm/s' )
1986 call hist_in( v_prim(:,:,:),
'V_PRIM',
'horiz. deviation of v',
'm/s' )
1987 call hist_in( pott_prim(:,:,:),
'PT_PRIM',
'horiz. deviation of pot. temp.',
'K' )
1988 call hist_in( w_prim2(:,:,:),
'W_PRIM2',
'variance of w',
'm2/s2' )
1989 call hist_in( pt_w_prim(:,:,:),
'PT_W_PRIM',
'resolved scale heat flux',
'W/s' )
1990 call hist_in( w_prim3(:,:,:),
'W_PRIM3',
'skewness of w',
'm3/s3' )
1991 call hist_in( tke_rs(:,:,:),
'TKE_RS',
'resolved scale TKE',
'm2/s2' )
1993 call hist_in( engt(:,:,:),
'ENGT',
'total energy',
'J/m3' )
1994 call hist_in( engp(:,:,:),
'ENGP',
'potential energy',
'J/m3' )
1995 call hist_in( engk(:,:,:),
'ENGK',
'kinetic energy',
'J/m3' )
1996 call hist_in( engi(:,:,:),
'ENGI',
'internal energy',
'J/m3' )
1998 if ( ad_prep_sw(i_cape) > 0 &
1999 .OR. ad_prep_sw(i_cin) > 0 &
2000 .OR. ad_prep_sw(i_lcl) > 0 &
2001 .OR. ad_prep_sw(i_lfc) > 0 &
2002 .OR. ad_prep_sw(i_lnb) > 0 )
then 2004 call adiabat_cape(
ks, &
2019 call hist_in( cape(:,:),
'CAPE',
'convection avail. pot. energy',
'm2/s2' )
2020 call hist_in( cin(:,:),
'CIN',
'convection inhibition',
'm2/s2' )
2021 call hist_in( lcl(:,:),
'LCL',
'lifted condensation level',
'm' )
2022 call hist_in( lfc(:,:),
'LFC',
'level of free convection',
'm' )
2023 call hist_in( lnb(:,:),
'LNB',
'level of neutral buoyancy',
'm' )
2025 if ( ad_prep_sw(i_pblh) > 0 )
then 2032 pottv(k,i,j) =
pott(k,i,j) * fact
2042 if ( pottv(k,i,j) > pottv(
ks,i,j) )
then 2043 fact = ( pottv(
ks,i,j) - pottv(k-1,i,j) ) &
2044 / ( pottv(k,i,j) - pottv(k-1,i,j) )
2055 call hist_in( pblh(:,:),
'PBLH',
'PBL height',
'm' )
2057 if ( ad_prep_sw(i_mse) > 0 )
then 2058 call hydrometeor_lhv( lhv_local(:,:,:),
temp(:,:,:) )
2063 mse(k,i,j) = cptot(k,i,j) *
temp(k,i,j) &
2070 call hist_in( mse(:,:,:),
'MSE',
'moist static energy',
'm2/s2' )
2074 prec(i,j) = sflx_rain_mp(i,j) + sflx_snow_mp(i,j) &
2076 rain(i,j) = sflx_rain_mp(i,j) &
2078 snow(i,j) = sflx_snow_mp(i,j)
2081 call hist_in( prec(:,:),
'PREC',
'surface precipitation rate (total)',
'kg/m2/s' )
2082 call hist_in( rain(:,:),
'RAIN',
'surface rain rate (total)',
'kg/m2/s' )
2083 call hist_in( snow(:,:),
'SNOW',
'surface snow rate (total)',
'kg/m2/s' )
2100 thermodyn_qd => atmos_thermodyn_qd, &
2101 thermodyn_temp_pres => atmos_thermodyn_temp_pres
2114 real(RP) :: qdry(
ka,
ia,
ja)
2118 real(RP) :: engt(
ka,
ia,
ja)
2119 real(RP) :: engp(
ka,
ia,
ja)
2120 real(RP) :: engk(
ka,
ia,
ja)
2121 real(RP) :: engi(
ka,
ia,
ja)
2123 real(RP) :: rhoq(
ka,
ia,
ja)
2126 integer :: i, j, k, iq
2131 call stat_total( total,
dens(:,:,:), var_name(
i_dens) )
2132 call stat_total( total,
momz(:,:,:), var_name(
i_momz) )
2133 call stat_total( total,
momx(:,:,:), var_name(
i_momx) )
2134 call stat_total( total,
momy(:,:,:), var_name(
i_momy) )
2135 call stat_total( total,
rhot(:,:,:), var_name(
i_rhot) )
2140 call stat_total( total, rhoq(:,:,:),
tracer_name(iq) )
2143 call thermodyn_qd( qdry(:,:,:), &
2147 call thermodyn_temp_pres(
temp(:,:,:), &
2158 call stat_total( total, rhoq(:,:,:),
'QDRY' )
2162 call stat_total( total, rhoq(:,:,:),
'QTOT' )
2174 engk(k,i,j) = 0.5_rp *
dens_av(k,i,j) * (
w(k,i,j)**2 &
2178 engi(k,i,j) =
dens_av(k,i,j) * qdry(k,i,j) *
temp(k,i,j) * cvdry
2180 engi(k,i,j) = engi(k,i,j) &
2184 if (
i_qv > 0 )
then 2192 engt(k,i,j) = engp(k,i,j) + engk(k,i,j) + engi(k,i,j)
2197 call stat_total( total, engp(:,:,:),
'ENGP' )
2198 call stat_total( total, engk(:,:,:),
'ENGK' )
2199 call stat_total( total, engi(:,:,:),
'ENGI' )
2200 call stat_total( total, engt(:,:,:),
'ENGT' )
2250 thermodyn_qd => atmos_thermodyn_qd, &
2251 thermodyn_temp_pres => atmos_thermodyn_temp_pres
2278 real(RP) :: qdry(
ka,
ia,
ja)
2279 real(RP) :: rhoq(
ka,
ia,
ja)
2280 real(RP) :: prcp(
ia,
ja)
2282 real(RP) :: engt(
ka,
ia,
ja)
2283 real(RP) :: engp(
ka,
ia,
ja)
2284 real(RP) :: engk(
ka,
ia,
ja)
2285 real(RP) :: engi(
ka,
ia,
ja)
2287 real(RP) :: engflxt (
ia,
ja)
2288 real(RP) :: sflx_rd_net (
ia,
ja)
2289 real(RP) :: toaflx_rd_net(
ia,
ja)
2291 real(RP) :: work (
ka,
ia,
ja,3)
2292 character(len=H_SHORT) :: wname(3)
2295 integer :: k, i, j, iq
2322 call thermodyn_qd( qdry(:,:,:), &
2331 rhoq(k,i,j) =
dens_av(k,i,j) * qdry(k,i,j)
2335 call monit_put( ad_monit_id(i_qdry), rhoq(:,:,:) )
2343 rhoq(k,i,j) =
dens_av(k,i,j) * ( 1.0_rp - qdry(k,i,j) )
2347 call monit_put( ad_monit_id(i_qtot), rhoq(:,:,:) )
2350 if (
i_qv > 0 )
then 2351 call monit_put( ad_monit_id(i_evap), sflx_qtrc(:,:,
i_qv) )
2358 prcp(i,j) = sflx_rain_cp(i,j) &
2359 + sflx_rain_mp(i,j) + sflx_snow_mp(i,j)
2362 call monit_put( ad_monit_id(i_prcp), prcp(:,:) )
2376 engk(k,i,j) = 0.5_rp *
dens_av(k,i,j) * (
w(k,i,j)**2 &
2380 engi(k,i,j) =
dens_av(k,i,j) * qdry(k,i,j) *
temp(k,i,j) * cvdry
2382 engi(k,i,j) = engi(k,i,j) &
2386 if (
i_qv > 0 )
then 2402 engt(k,i,j) = engp(k,i,j) + engk(k,i,j) + engi(k,i,j)
2410 sflx_rd_net(i,j) = ( sflx_lw_up(i,j) - sflx_lw_dn(i,j) ) &
2411 + ( sflx_sw_up(i,j) - sflx_sw_dn(i,j) )
2413 toaflx_rd_net(i,j) = ( toaflx_lw_up(i,j) - toaflx_lw_dn(i,j) ) &
2414 + ( toaflx_sw_up(i,j) - toaflx_sw_dn(i,j) )
2422 engflxt(i,j) = sflx_sh(i,j) + sflx_lh(i,j) &
2423 + sflx_rd_net(i,j) - toaflx_rd_net(i,j)
2427 call monit_put( ad_monit_id(i_engp), engp(:,:,:) )
2428 call monit_put( ad_monit_id(i_engk), engk(:,:,:) )
2429 call monit_put( ad_monit_id(i_engi), engi(:,:,:) )
2430 call monit_put( ad_monit_id(i_engt), engt(:,:,:) )
2432 call monit_put( ad_monit_id(i_engflxt), engflxt(:,:) )
2435 call monit_put( ad_monit_id(i_engsfc_sh), sflx_sh(:,:) )
2436 call monit_put( ad_monit_id(i_engsfc_lh), sflx_lh(:,:) )
2437 call monit_put( ad_monit_id(i_engsfc_rd), sflx_rd_net(:,:) )
2438 call monit_put( ad_monit_id(i_engtoa_rd), toaflx_rd_net(:,:) )
2440 call monit_put( ad_monit_id(i_engsfc_lw_up), sflx_lw_up(:,:) )
2441 call monit_put( ad_monit_id(i_engsfc_lw_dn), sflx_lw_dn(:,:) )
2442 call monit_put( ad_monit_id(i_engsfc_sw_up), sflx_sw_up(:,:) )
2443 call monit_put( ad_monit_id(i_engsfc_sw_dn), sflx_sw_dn(:,:) )
2445 call monit_put( ad_monit_id(i_engtoa_lw_up), toaflx_lw_up(:,:) )
2446 call monit_put( ad_monit_id(i_engtoa_lw_dn), toaflx_lw_dn(:,:) )
2447 call monit_put( ad_monit_id(i_engtoa_sw_up), toaflx_sw_up(:,:) )
2448 call monit_put( ad_monit_id(i_engtoa_sw_dn), toaflx_sw_dn(:,:) )
2450 if ( atmos_vars_checkrange )
then 2452 work(:,:,:,1) =
w(:,:,:)
2454 work(:,:,:,2) =
u(:,:,:)
2456 work(:,:,:,3) =
v(:,:,:)
2465 if ( atmos_vars_checkcfl > 0.0_rp )
then 2467 work(:,:,:,:) = 0.0_rp
2482 cflmax = maxval( work(:,:,:,:) )
2483 if ( cflmax > atmos_vars_checkcfl )
then 2484 if(
io_l )
write(
io_fid_log,*)
"*** [ATMOS_vars_monitor] Courant number exceeded the upper limit. : ", cflmax
2485 write(*,*)
"*** [ATMOS_vars_monitor] Courant number exceeded the upper limit. : ", cflmax, &
2488 wname(1) =
"Courant num. Z" 2489 wname(2) =
"Courant num. X" 2490 wname(3) =
"Courant num. Y" 2492 call stat_detail( work(:,:,:,:), wname(:), supress_globalcomm=.true. )
2534 atmos_phy_mp_sdm_restart_create
2540 character(len=19) :: timelabel
2541 character(len=H_LONG) :: basename
2545 if( sd_rest_flg_out )
then 2546 if(
io_l )
write(
io_fid_log,*)
'*** Output random number for SDM ***' 2547 call atmos_phy_mp_sdm_restart_create(nowsec)
2554 if(
io_l )
write(
io_fid_log,*)
'*** Create restart file (ATMOS) ***' 2557 call time_gettimelabel( timelabel )
2568 allocate( var_id(vmax+
qa) )
2616 atmos_phy_mp_sdm_restart_enddef
2623 if( sd_rest_flg_out )
then 2624 call atmos_phy_mp_sdm_restart_enddef
2628 if ( restart_fid /= -1 )
then 2677 atmos_phy_mp_sdm_restart_close
2683 if( sd_rest_flg_out )
then 2684 call atmos_phy_mp_sdm_restart_close
2688 if ( restart_fid /= -1 )
then 2690 if(
io_l )
write(
io_fid_log,*)
'*** Close restart file (ATMOS) ***' 2696 if (
allocated(var_id) )
deallocate( var_id )
2744 atmos_phy_mp_sdm_restart_def_var
2752 if( sd_rest_flg_out )
then 2753 call atmos_phy_mp_sdm_restart_def_var
2757 if ( restart_fid /= -1 )
then 2822 atmos_phy_mp_sdm_restart_write
2830 if( sd_rest_flg_out )
then 2831 call atmos_phy_mp_sdm_restart_write
2835 if ( restart_fid /= -1 )
then 2841 call fileio_write_var( restart_fid, var_id(
i_dens),
dens(:,:,:), var_name(
i_dens),
'ZXY' )
2842 call fileio_write_var( restart_fid, var_id(
i_momz),
momz(:,:,:), var_name(
i_momz),
'ZHXY' )
2843 call fileio_write_var( restart_fid, var_id(
i_momx),
momx(:,:,:), var_name(
i_momx),
'ZXHY' )
2844 call fileio_write_var( restart_fid, var_id(
i_momy),
momy(:,:,:), var_name(
i_momy),
'ZXYH' )
2845 call fileio_write_var( restart_fid, var_id(
i_rhot),
rhot(:,:,:), var_name(
i_rhot),
'ZXY' )
2848 call fileio_write_var( restart_fid, var_id(vmax+iq),
qtrc(:,:,:,iq),
tracer_name(iq),
'ZXY' )
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
subroutine, public atmos_phy_sf_vars_restart_open
Open restart file for read.
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?
subroutine, public atmos_vars_restart_open
Open restart file for reading atmospheric variables.
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.
subroutine, public atmos_dyn_vars_restart_open
Open restart file for read.
real(rp), public const_cpdry
specific heat (dry air,constant pressure) [J/kg/K]
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.
subroutine, public atmos_vars_restart_close
Close restart file.
subroutine, public atmos_vars_fillhalo(FILL_BND)
HALO Communication.
real(rp), dimension(qa_max), public tracer_r
subroutine, public atmos_phy_cp_vars_restart_open
Open restart file for read.
module Atmosphere / Physics Cloud Microphysics
integer, parameter, public i_momx
logical, public io_l
output log or not? (this process)
logical, public atmos_restart_in_postfix_timelabel
Add timelabel to the basename of input file?
subroutine, public atmos_phy_cp_vars_restart_write
Write restart.
real(rp), dimension(:), allocatable, public grid_rcdx
reciprocal of center-dx
module ATMOSPHERE / Bottom boundary treatment
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 fileio_flush(fid)
Flush all pending requests to a netCDF file (PnetCDF only)
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
character(len=h_short), public atmos_restart_out_dtype
REAL4 or REAL8.
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 phyd
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 variables to restart file.
real(rp), dimension(:,:), allocatable, public atmos_phy_rd_sflx_lw_up
character(len=h_short), dimension(qa_max), public tracer_name
integer, parameter, public i_dens
real(rp), dimension(:,:), allocatable, public atmos_phy_mp_sflx_rain
character(len=h_long), public atmos_restart_check_basename
real(rp), dimension(qa_max), public tracer_cv
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.
character(len=h_short), dimension(qa_max), public tracer_unit
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?
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...
subroutine, public atmos_phy_rd_vars_restart_open
Open restart file for read.
real(rp), dimension(:,:,:), allocatable, target, public momz_avw
real(rp), dimension(qa_max), public tracer_cp
module ATMOSPHERIC Surface Variables
subroutine, public atmos_phy_sf_vars_restart_write
Write variables to restart file.
subroutine, public atmos_phy_sf_vars_restart_close
Close restart file.
real(rp), dimension(:,:,:,:), allocatable, target, public qtrc_avw
logical, public io_nml
output log or not? (for namelist, this process)
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 whole cells: x, local, with HALO
real(rp), dimension(:,:,:), allocatable, public temp
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)
real(rp), dimension(:,:), allocatable, public real_z1
Height of the lowermost grid from surface (cell center) [m].
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 whole cells: z, local, with HALO
subroutine, public hist_setpres(PRES, SFC_PRES)
set interpolation factor for pressure coordinate
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
module ATMOSPHERE / Diagnostic
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.
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_diagnostic_get(POTT, TEMP, PRES, PHYD, W, U, V, N2, DENS, MOMZ, MOMX, MOMY, RHOT, QTRC)
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
logical, public atmos_restart_out_postfix_timelabel
Add timelabel to the basename of output file?
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 lhf
latent heat of fusion for use [J/kg]
real(rp), parameter, public const_rvap
specific gas constant (water vapor) [J/kg/K]
real(rp), public lhv
latent heat of vaporization for use [J/kg]
logical, public atmos_sw_phy_mp
subroutine, public atmos_phy_rd_vars_restart_write
Write variables to restart file.
subroutine, public atmos_bottom_estimate(DENS, PRES, CZ, Zsfc, Z1, SFC_DENS, SFC_PRES)
Calc bottom boundary of atmosphere (just above surface)
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
subroutine, public atmos_phy_mp_vars_restart_open
Open restart file for read.
module Atmosphere / Physics Chemistry
subroutine, public fileio_enddef(fid)
Exit netCDF file define mode.
subroutine, public prof_rapstart(rapname_base, level)
Start raptime.
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.
real(rp), dimension(:,:,:), allocatable, public n2
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_rd_vars_restart_enddef
Exit netCDF define mode.
real(rp), dimension(:,:), allocatable, public atmos_phy_rd_toaflx_sw_dn
character(len=h_long), public atmos_restart_in_basename
Basename of the input file.
logical, public io_aggregate
do parallel I/O through PnetCDF
subroutine, public atmos_vars_history_setpres
Set pressure for history output.
subroutine, public atmos_phy_tb_vars_restart_def_var
Write restart.
subroutine, public fileio_open(fid, basename)
open a netCDF file for read
character(len=h_long), public atmos_restart_out_basename
Basename of the output file.
real(rp), dimension(:,:), allocatable, public topo_zsfc
absolute ground height [m]
subroutine, public fileio_def_var(fid, vid, varname, desc, unit, axistype, datatype, timeintv, nsteps)
Define a variable to 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
character(len=h_mid), dimension(qa_max), public tracer_desc
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
integer, public io_fid_conf
Config file ID.
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.
subroutine, public atmos_phy_ch_vars_restart_open
Open restart file for read.
subroutine, public hist_reg(itemid, item, desc, unit, ndim, xdim, ydim, zdim)
Register/Append variable to history file.
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.
subroutine, public atmos_phy_tb_vars_restart_open
Open restart file for read.
integer, public io_fid_nml
Log file ID (only for output namelist)
real(rp), dimension(:,:), allocatable, public atmos_phy_rd_toaflx_lw_up
subroutine, public atmos_phy_tb_vars_restart_close
Close restart file.
real(rp), dimension(qa_max), public tracer_mass
subroutine, public atmos_vars_restart_read
Read restart of atmospheric variables.
subroutine, public atmos_phy_ae_vars_restart_open
Open restart file for read.
logical, public atmos_use_average
subroutine, public atmos_vars_diagnostics
Calc diagnostic variables.
real(rp), dimension(:,:,:,:), allocatable, target, public qtrc
integer, public ja
of whole cells: y, local, with HALO