SCALE-RM
mod_atmos_phy_ae_vars.F90
Go to the documentation of this file.
1 !-------------------------------------------------------------------------------
10 !-------------------------------------------------------------------------------
11 #include "scalelib.h"
13  !-----------------------------------------------------------------------------
14  !
15  !++ used modules
16  !
17  use scale_precision
18  use scale_io
19  use scale_prof
20  use scale_debug
22  !-----------------------------------------------------------------------------
23  implicit none
24  private
25  !-----------------------------------------------------------------------------
26  !
27  !++ Public procedure
28  !
29  public :: atmos_phy_ae_vars_setup
34 
40 
42 
45 
46  !-----------------------------------------------------------------------------
47  !
48  !++ Public parameters & variables
49  !
50  logical, public :: atmos_phy_ae_restart_output = .false.
51 
52  character(len=H_LONG), public :: atmos_phy_ae_restart_in_basename = ''
54  logical, public :: atmos_phy_ae_restart_in_postfix_timelabel = .false.
55  character(len=H_LONG), public :: atmos_phy_ae_restart_out_basename = ''
57  logical, public :: atmos_phy_ae_restart_out_postfix_timelabel = .true.
58  character(len=H_MID), public :: atmos_phy_ae_restart_out_title = 'ATMOS_PHY_AE restart'
59  character(len=H_SHORT), public :: atmos_phy_ae_restart_out_dtype = 'DEFAULT'
60 
61  real(rp), public, allocatable :: atmos_phy_ae_rhoq_t(:,:,:,:) ! tendency rho*QTRC [kg/kg/s]
62 
63  real(rp), public, allocatable :: atmos_phy_ae_ccn(:,:,:) ! cloud condensation nuclei [/m3]
64  real(rp), public, allocatable :: atmos_phy_ae_ccn_t(:,:,:) ! tendency CCN [/m3/s]
65  real(rp), public, allocatable :: atmos_phy_ae_emit(:,:,:,:) ! emission of aerosol and gas
66 
67  integer, public :: qa_ae = 0
68  integer, public :: qs_ae = -1
69  integer, public :: qe_ae = -2
70 
71  !-----------------------------------------------------------------------------
72  !
73  !++ Private procedure
74  !
75  !-----------------------------------------------------------------------------
76  !
77  !++ Private parameters & variables
78  !
79  integer, private, parameter :: vmax = 1
80  integer, private, parameter :: i_ccn = 1
81 
82  character(len=H_SHORT), private :: var_name(vmax)
83  character(len=H_MID), private :: var_desc(vmax)
84  character(len=H_SHORT), private :: var_unit(vmax)
85  integer, private :: var_id(vmax)
86  integer, private :: restart_fid = -1 ! file ID
87 
88  data var_name / 'CCN' /
89  data var_desc / 'cloud condensation nuclei' /
90  data var_unit / 'num/m3' /
91 
92 
93  ! for diagnostics
94  real(rp), private, allocatable :: atmos_phy_ae_re(:,:,:,:)
95  real(rp), private, allocatable :: atmos_phy_ae_qe(:,:,:,:)
96  logical, private :: diag_re
97  logical, private :: diag_qe
98 
99  ! for history
100  integer, private,allocatable :: hist_re_id(:)
101  integer, private,allocatable :: hist_qe_id(:)
102  logical, private :: hist_re
103  logical, private :: hist_qe
104 
105  !-----------------------------------------------------------------------------
106 contains
107  !-----------------------------------------------------------------------------
109  subroutine atmos_phy_ae_vars_setup
110  use scale_prc, only: &
111  prc_abort
112  use scale_const, only: &
113  undef => const_undef
114  use scale_atmos_aerosol, only: &
115  n_ae, &
116  ae_name, &
117  ae_desc
118  use scale_file_history, only: &
120  implicit none
121 
122  namelist / param_atmos_phy_ae_vars / &
132 
133  integer :: ierr
134  integer :: iv
135  !---------------------------------------------------------------------------
136 
137  log_newline
138  log_info("ATMOS_PHY_AE_vars_setup",*) 'Setup'
139 
140  allocate( atmos_phy_ae_rhoq_t(ka,ia,ja,qs_ae:qe_ae) )
141  atmos_phy_ae_rhoq_t(:,:,:, :) = undef
142  !$acc enter data create(ATMOS_PHY_AE_RHOQ_t)
143 
144  allocate( atmos_phy_ae_ccn(ka,ia,ja) )
145  atmos_phy_ae_ccn(:,:,:) = undef
146  !$acc enter data create(ATMOS_PHY_AE_CCN)
147 
148  allocate( atmos_phy_ae_ccn_t(ka,ia,ja) )
149  atmos_phy_ae_ccn_t(:,:,:) = undef
150  !$acc enter data create(ATMOS_PHY_AE_CCN_t)
151 
152  allocate( atmos_phy_ae_emit(ka,ia,ja,qs_ae:qe_ae) )
153  atmos_phy_ae_emit(:,:,:,:) = 0.0_rp
154  !$acc enter data copyin(ATMOS_PHY_AE_EMIT)
155 
156  !--- read namelist
157  rewind(io_fid_conf)
158  read(io_fid_conf,nml=param_atmos_phy_ae_vars,iostat=ierr)
159  if( ierr < 0 ) then !--- missing
160  log_info("ATMOS_PHY_AE_vars_setup",*) 'Not found namelist. Default used.'
161  elseif( ierr > 0 ) then !--- fatal error
162  log_error("ATMOS_PHY_AE_vars_setup",*) 'Not appropriate names in namelist PARAM_ATMOS_PHY_AE_VARS. Check!'
163  call prc_abort
164  endif
165  log_nml(param_atmos_phy_ae_vars)
166 
167  log_newline
168  log_info("ATMOS_PHY_AE_vars_setup",*) '[ATMOS_PHY_AE] prognostic/diagnostic variables'
169  log_info_cont('(1x,A,A24,A,A48,A,A12,A)') &
170  ' |', 'VARNAME ','|', &
171  'DESCRIPTION ', '[', 'UNIT ', ']'
172  do iv = 1, vmax
173  log_info_cont('(1x,A,I3,A,A24,A,A48,A,A12,A)') &
174  'NO.',iv,'|',var_name(iv),'|',var_desc(iv),'[',var_unit(iv),']'
175  enddo
176 
177  log_newline
178  if ( atmos_phy_ae_restart_in_basename /= '' ) then
179  log_info("ATMOS_PHY_AE_vars_setup",*) 'Restart input? : YES, file = ', trim(atmos_phy_ae_restart_in_basename)
180  log_info("ATMOS_PHY_AE_vars_setup",*) 'Add timelabel? : ', atmos_phy_ae_restart_in_postfix_timelabel
181  else
182  log_info("ATMOS_PHY_AE_vars_setup",*) 'Restart input? : NO'
183  endif
185  .AND. atmos_phy_ae_restart_out_basename /= '' ) then
186  log_info("ATMOS_PHY_AE_vars_setup",*) 'Restart output? : YES, file = ', trim(atmos_phy_ae_restart_out_basename)
187  log_info("ATMOS_PHY_AE_vars_setup",*) 'Add timelabel? : ', atmos_phy_ae_restart_out_postfix_timelabel
188  else
189  log_info("ATMOS_PHY_AE_vars_setup",*) 'Restart output? : NO'
191  endif
192 
193  ! diagnostices
194  allocate( atmos_phy_ae_re(ka,ia,ja,n_ae) )
195  allocate( atmos_phy_ae_qe(ka,ia,ja,n_ae) )
196 !OCL XFILL
197  atmos_phy_ae_re(:,:,:,:) = undef
198 !OCL XFILL
199  atmos_phy_ae_qe(:,:,:,:) = undef
200  diag_re = .false.
201  diag_qe = .false.
202  !$acc enter data create(ATMOS_PHY_AE_Re,ATMOS_PHY_AE_Qe)
203 
204  ! history
205  hist_re = .false.
206  allocate( hist_re_id(n_ae) )
207  do iv = 1, n_ae
208  call file_history_reg( 'Re_'//trim(ae_name(iv)), 'effective radius of '//trim(ae_desc(iv)), 'cm', hist_re_id(iv), fill_halo=.true., dim_type='ZXY' )
209  if ( hist_re_id(iv) > 0 ) hist_re = .true.
210  end do
211 
212  hist_qe = .false.
213  allocate( hist_qe_id(n_ae) )
214  do iv = 1, n_ae
215  call file_history_reg( 'Qe_'//trim(ae_name(iv)), 'mass mixing ratio of '//trim(ae_desc(iv)), 'kg/kg', hist_qe_id(iv), fill_halo=.true., dim_type='ZXY' )
216  if ( hist_qe_id(iv) > 0 ) hist_qe = .true.
217  end do
218 
219  return
220  end subroutine atmos_phy_ae_vars_setup
221 
222  !-----------------------------------------------------------------------------
224  subroutine atmos_phy_ae_vars_finalize
225  implicit none
226  !---------------------------------------------------------------------------
227 
228  log_newline
229  log_info("ATMOS_PHY_AE_vars_finalize",*) 'Finalize'
230 
231  !$acc exit data delete(ATMOS_PHY_AE_RHOQ_t)
232  deallocate( atmos_phy_ae_rhoq_t )
233 
234  !$acc exit data delete(ATMOS_PHY_AE_CCN)
235  deallocate( atmos_phy_ae_ccn )
236 
237  !$acc exit data delete(ATMOS_PHY_AE_CCN_t)
238  deallocate( atmos_phy_ae_ccn_t )
239 
240  !$acc exit data delete(ATMOS_PHY_AE_EMIT)
241  deallocate( atmos_phy_ae_emit )
242 
243  ! diagnostices
244  !$acc exit data delete(ATMOS_PHY_AE_Re,ATMOS_PHY_AE_Qe)
245  deallocate( atmos_phy_ae_re )
246  deallocate( atmos_phy_ae_qe )
247 
248  ! history
249  deallocate( hist_re_id )
250 
251  deallocate( hist_qe_id )
252 
253  return
254  end subroutine atmos_phy_ae_vars_finalize
255 
256  !-----------------------------------------------------------------------------
258  subroutine atmos_phy_ae_vars_fillhalo
259  use scale_comm_cartesc, only: &
260  comm_vars8, &
261  comm_wait
262  implicit none
263 
264  integer :: i, j
265  !---------------------------------------------------------------------------
266 
267  !$omp parallel do
268  !$acc kernels
269  !$acc loop independent collapse(2)
270  do j = js, je
271  do i = is, ie
272  atmos_phy_ae_ccn( 1:ks-1,i,j) = atmos_phy_ae_ccn(ks,i,j)
273  atmos_phy_ae_ccn(ke+1:ka, i,j) = atmos_phy_ae_ccn(ke,i,j)
274  enddo
275  enddo
276  !$acc end kernels
277 
278  call comm_vars8( atmos_phy_ae_ccn(:,:,:), 1 )
279  call comm_wait ( atmos_phy_ae_ccn(:,:,:), 1 )
280 
281  return
282  end subroutine atmos_phy_ae_vars_fillhalo
283 
284  !-----------------------------------------------------------------------------
287  use scale_time, only: &
289  use scale_file_cartesc, only: &
291  implicit none
292 
293  character(len=19) :: timelabel
294  character(len=H_LONG) :: basename
295  !---------------------------------------------------------------------------
296 
297  log_newline
298  log_info("ATMOS_PHY_AE_vars_restart_open",*) 'Open restart file (ATMOS_PHY_AE) '
299 
300  if ( atmos_phy_ae_restart_in_basename /= '' ) then
301 
303  call time_gettimelabel( timelabel )
304  basename = trim(atmos_phy_ae_restart_in_basename)//'_'//trim(timelabel)
305  else
306  basename = trim(atmos_phy_ae_restart_in_basename)
307  endif
308 
309  log_info("ATMOS_PHY_AE_vars_restart_open",*) 'basename: ', trim(basename)
310 
311  call file_cartesc_open( basename, restart_fid, aggregate=atmos_phy_ae_restart_in_aggregate )
312  else
313  log_info("ATMOS_PHY_AE_vars_restart_open",*) 'restart file for ATMOS_PHY_AE is not specified.'
314  endif
315 
316  return
317  end subroutine atmos_phy_ae_vars_restart_open
318 
319  !-----------------------------------------------------------------------------
322  use scale_file, only: &
324  use scale_file_cartesc, only: &
325  file_cartesc_read, &
327  implicit none
328 
329  integer :: i, j
330  !---------------------------------------------------------------------------
331 
332  if ( restart_fid /= -1 ) then
333  log_newline
334  log_info("ATMOS_PHY_AE_vars_restart_read",*) 'Read from restart file (ATMOS_PHY_AE) '
335 
336  call file_cartesc_read( restart_fid, var_name(1), 'ZXY', & ! [IN]
337  atmos_phy_ae_ccn(:,:,:) ) ! [OUT]
338 
339  if ( file_get_aggregate(restart_fid) ) then
340  call file_cartesc_flush( restart_fid ) ! X/Y halos have been read from file
341  !$acc update device(ATMOS_PHY_AE_CCN)
342 
343  ! fill K halos
344  !$omp parallel do
345  !$acc kernels
346  !$acc loop independent collapse(2)
347  do j = 1, ja
348  do i = 1, ia
349  atmos_phy_ae_ccn( 1:ks-1,i,j) = atmos_phy_ae_ccn(ks,i,j)
350  atmos_phy_ae_ccn(ke+1:ka, i,j) = atmos_phy_ae_ccn(ke,i,j)
351  enddo
352  enddo
353  !$acc end kernels
354  else
356  end if
357 
358  call atmos_phy_ae_vars_check
359 
360  else
361  log_info("ATMOS_PHY_AE_vars_restart_read",*) 'invlaid restart file ID for ATMOS_PHY_AE.'
362  endif
363 
364  return
365  end subroutine atmos_phy_ae_vars_restart_read
366 
367  !-----------------------------------------------------------------------------
370  use scale_time, only: &
372  use scale_file_cartesc, only: &
374  implicit none
375 
376  character(len=19) :: timelabel
377  character(len=H_LONG) :: basename
378  !---------------------------------------------------------------------------
379 
380  if ( atmos_phy_ae_restart_out_basename /= '' ) then
381 
382  log_newline
383  log_info("ATMOS_PHY_AE_vars_restart_create",*) 'Create restart file (ATMOS_PHY_AE) '
384 
386  call time_gettimelabel( timelabel )
387  basename = trim(atmos_phy_ae_restart_out_basename)//'_'//trim(timelabel)
388  else
389  basename = trim(atmos_phy_ae_restart_out_basename)
390  endif
391 
392  log_info("ATMOS_PHY_AE_vars_restart_create",*) 'basename: ', trim(basename)
393 
394  call file_cartesc_create( &
396  restart_fid, & ! [OUT]
397  aggregate=atmos_phy_ae_restart_out_aggregate ) ! [IN]
398 
399  endif
400 
401  return
402  end subroutine atmos_phy_ae_vars_restart_create
403 
404  !-----------------------------------------------------------------------------
407  use scale_file_cartesc, only: &
409  implicit none
410 
411  if ( restart_fid /= -1 ) then
412  call file_cartesc_enddef( restart_fid ) ! [IN]
413  endif
414 
415  return
416  end subroutine atmos_phy_ae_vars_restart_enddef
417 
418  !-----------------------------------------------------------------------------
421  use scale_file_cartesc, only: &
423  implicit none
424  !---------------------------------------------------------------------------
425 
426  if ( restart_fid /= -1 ) then
427  log_newline
428  log_info("ATMOS_PHY_AE_vars_restart_close",*) 'Close restart file (ATMOS_PHY_AE) '
429 
430  call file_cartesc_close( restart_fid ) ! [IN]
431 
432  restart_fid = -1
433  endif
434 
435  return
436  end subroutine atmos_phy_ae_vars_restart_close
437 
438  !-----------------------------------------------------------------------------
441  use scale_file_cartesc, only: &
443  implicit none
444  !---------------------------------------------------------------------------
445 
446  if ( restart_fid /= -1 ) then
447  call file_cartesc_def_var( restart_fid, var_name(1), var_desc(1), var_unit(1), 'ZXY', atmos_phy_ae_restart_out_dtype, &
448  var_id(1) )
449  endif
450 
451  return
452  end subroutine atmos_phy_ae_vars_restart_def_var
453 
454  !-----------------------------------------------------------------------------
457  use scale_file_cartesc, only: &
458  file_cartesc_write_var
459  implicit none
460  !---------------------------------------------------------------------------
461 
462  if ( restart_fid /= -1 ) then
463 
465 
466  call atmos_phy_ae_vars_check
467 
468  call file_cartesc_write_var( restart_fid, var_id(1), atmos_phy_ae_ccn(:,:,:), var_name(1), 'ZXY' ) ! [IN]
469 
470  endif
471 
472  return
473  end subroutine atmos_phy_ae_vars_restart_write
474 
475  subroutine atmos_phy_ae_vars_history( &
476  QTRC, RH )
477  use scale_tracer, only: &
478  qa
479  use scale_atmos_aerosol, only: &
480  n_ae
481  use scale_file_history, only: &
482  file_history_put
483  real(rp), intent(in) :: qtrc(ka,ia,ja,qa)
484  real(rp), intent(in) :: rh(ka,ia,ja)
485 
486  real(rp) :: work(ka,ia,ja,n_ae)
487  integer :: iv
488 
489  if ( hist_re ) then
491  qtrc(:,:,:,:), rh(:,:,:), & ! [IN]
492  re=work(:,:,:,:) ) ! [OUT]
493  do iv = 1, n_ae
494  if ( hist_re_id(iv) > 0 ) &
495  call file_history_put( hist_re_id(iv), work(:,:,:,iv) )
496  end do
497  end if
498 
499  if ( hist_qe ) then
501  qtrc(:,:,:,:), rh(:,:,:), & ! [IN]
502  qe=work(:,:,:,:) ) ! [OUT]
503  do iv = 1, n_ae
504  if ( hist_qe_id(iv) > 0 ) &
505  call file_history_put( hist_qe_id(iv), work(:,:,:,iv) )
506  end do
507  end if
508 
509  return
510  end subroutine atmos_phy_ae_vars_history
511 
513  QTRC, RH, &
514  Re, Qe )
515  use scale_time, only: &
517  use scale_tracer, only: &
518  qa
519  use scale_atmos_aerosol, only: &
520  n_ae
521  use scale_atmos_phy_ae_kajino13, only: &
523  use scale_atmos_phy_ae_offline, only: &
526  use mod_atmos_admin, only: &
528 
529  real(rp), intent(in) :: qtrc(ka,ia,ja,qa)
530  real(rp), intent(in) :: rh(ka,ia,ja)
531  real(rp), intent(out), optional :: re(ka,ia,ja,n_ae)
532  real(rp), intent(out), optional :: qe(ka,ia,ja,n_ae)
533 
534  if ( present(re) ) then
535  !$acc data copyout(Re)
536  if ( .not. diag_re ) then
537 
538  select case ( atmos_phy_ae_type )
539  case ( 'KAJINO13' )
540  !$acc update host(QTRC(:,:,:,QS_AE:QE_AE),RH)
542  ka, ia, ja, qa_ae, &
543  qtrc(:,:,:,qs_ae:qe_ae), rh(:,:,:), & ! [IN]
544  atmos_phy_ae_re(:,:,:,:) ) ! [OUT]
545  !$acc update device(ATMOS_PHY_AE_Re)
546  case ( 'OFFLINE' )
547  !$acc update host(RH)
549  ka, ia, ja, &
550  rh(:,:,:), & ! [IN]
551  atmos_phy_ae_re(:,:,:,:) ) ! [OUT]
552  !$acc update device(ATMOS_PHY_AE_Re)
553  case default
554  !$acc kernels
555  atmos_phy_ae_re(:,:,:,:) = 0.0_rp
556  !$acc end kernels
557  end select
558 
559  diag_re = .true.
560  end if
561 !OCL XFILL
562  !$acc kernels
563  re(:,:,:,:) = atmos_phy_ae_re(:,:,:,:)
564  !$acc end kernels
565  !$acc end data
566  end if
567 
568  if ( present(qe) ) then
569  !$acc data copyout(Qe)
570  if ( .not. diag_qe ) then
571 
572  select case ( atmos_phy_ae_type )
573  case ( 'OFFLINE' )
575  ka, ia, ja, &
576  time_nowdaysec, &
577  atmos_phy_ae_qe(:,:,:,:) ) ! [OUT]
578  !$acc update device(ATMOS_PHY_AE_Qe)
579  case default
580  !$acc kernels
581  atmos_phy_ae_qe(:,:,:,:) = 0.0_rp
582  !$acc end kernels
583  end select
584 
585  diag_qe = .true.
586  end if
587 !OCL XFILL
588  !$acc kernels
589  qe(:,:,:,:) = atmos_phy_ae_qe(:,:,:,:)
590  !$acc end kernels
591  !$acc end data
592  end if
593 
594  return
595  end subroutine atmos_phy_ae_vars_get_diagnostic
596 
598  diag_re = .false.
599  diag_qe = .false.
600 
601  return
603 
604  subroutine atmos_phy_ae_vars_check
605  use scale_statistics, only: &
607  statistics_total
608  use scale_atmos_grid_cartesc_real, only: &
611  implicit none
612 
613  call valcheck( ka, ks, ke, ia, is, ie, ja, js, je, &
614  atmos_phy_ae_ccn(:,:,:), & ! (in)
615  0.0_rp, 1.0e12_rp, var_name(1), & ! (in)
616  __file__, __line__ ) ! (in)
617 
618  call statistics_total( ka, ks, ke, ia, is, ie, ja, js, je, &
619  atmos_phy_ae_ccn(:,:,:), var_name(1), &
620  atmos_grid_cartesc_real_vol(:,:,:), & ! (in)
622 
623  return
624  end subroutine atmos_phy_ae_vars_check
625 
626 end module mod_atmos_phy_ae_vars
scale_atmos_phy_ae_kajino13
module atmosphere / physics / aerosol / Kajino13
Definition: scale_atmos_phy_ae_kajino13.F90:12
scale_statistics
module Statistics
Definition: scale_statistics.F90:11
mod_atmos_phy_ae_vars::atmos_phy_ae_vars_restart_close
subroutine, public atmos_phy_ae_vars_restart_close
Close restart file.
Definition: mod_atmos_phy_ae_vars.F90:421
scale_atmos_grid_cartesc_index::ke
integer, public ke
end point of inner domain: z, local
Definition: scale_atmos_grid_cartesC_index.F90:52
scale_time::time_nowdaysec
real(dp), public time_nowdaysec
second of current time [sec]
Definition: scale_time.F90:72
scale_prc::prc_abort
subroutine, public prc_abort
Abort Process.
Definition: scale_prc.F90:350
mod_atmos_phy_ae_vars::atmos_phy_ae_restart_out_basename
character(len=h_long), public atmos_phy_ae_restart_out_basename
Basename of the output file.
Definition: mod_atmos_phy_ae_vars.F90:55
scale_tracer::qa
integer, public qa
Definition: scale_tracer.F90:35
mod_atmos_phy_ae_vars::atmos_phy_ae_vars_fillhalo
subroutine, public atmos_phy_ae_vars_fillhalo
HALO Communication.
Definition: mod_atmos_phy_ae_vars.F90:259
mod_atmos_phy_ae_vars::atmos_phy_ae_restart_in_aggregate
logical, public atmos_phy_ae_restart_in_aggregate
Switch to use aggregate file.
Definition: mod_atmos_phy_ae_vars.F90:53
scale_file_cartesc::file_cartesc_enddef
subroutine, public file_cartesc_enddef(fid)
Exit netCDF file define mode.
Definition: scale_file_cartesC.F90:964
scale_file_cartesc::file_cartesc_def_var
subroutine, public file_cartesc_def_var(fid, varname, desc, unit, dim_type, datatype, vid, standard_name, timeintv, nsteps, cell_measures)
Define a variable to file.
Definition: scale_file_cartesC.F90:3360
mod_atmos_phy_ae_vars::atmos_phy_ae_vars_reset_diagnostics
subroutine, public atmos_phy_ae_vars_reset_diagnostics
Definition: mod_atmos_phy_ae_vars.F90:598
mod_atmos_phy_ae_vars::atmos_phy_ae_restart_output
logical, public atmos_phy_ae_restart_output
output restart file?
Definition: mod_atmos_phy_ae_vars.F90:50
mod_atmos_phy_ae_vars::atmos_phy_ae_restart_in_postfix_timelabel
logical, public atmos_phy_ae_restart_in_postfix_timelabel
Add timelabel to the basename of input file?
Definition: mod_atmos_phy_ae_vars.F90:54
scale_precision
module PRECISION
Definition: scale_precision.F90:14
scale_atmos_grid_cartesc_index::ka
integer, public ka
Definition: scale_atmos_grid_cartesC_index.F90:47
mod_atmos_admin
module ATMOS admin
Definition: mod_atmos_admin.F90:11
mod_atmos_phy_ae_vars::atmos_phy_ae_vars_get_diagnostic
subroutine, public atmos_phy_ae_vars_get_diagnostic(QTRC, RH, Re, Qe)
Definition: mod_atmos_phy_ae_vars.F90:515
scale_atmos_aerosol::n_ae
integer, parameter, public n_ae
Definition: scale_atmos_aerosol.F90:33
mod_atmos_phy_ae_vars::atmos_phy_ae_restart_in_basename
character(len=h_long), public atmos_phy_ae_restart_in_basename
Basename of the input file.
Definition: mod_atmos_phy_ae_vars.F90:52
mod_atmos_phy_ae_vars::atmos_phy_ae_vars_restart_create
subroutine, public atmos_phy_ae_vars_restart_create
Create restart file.
Definition: mod_atmos_phy_ae_vars.F90:370
scale_atmos_aerosol::ae_desc
character(len=h_mid), dimension(n_ae), parameter, public ae_desc
Definition: scale_atmos_aerosol.F90:44
scale_atmos_grid_cartesc_real
module Atmosphere GRID CartesC Real(real space)
Definition: scale_atmos_grid_cartesC_real.F90:11
scale_atmos_phy_ae_kajino13::atmos_phy_ae_kajino13_effective_radius
subroutine, public atmos_phy_ae_kajino13_effective_radius(KA, IA, JA, QA_AE, QTRC, RH, Re)
Calculate Effective Radius.
Definition: scale_atmos_phy_ae_kajino13.F90:948
scale_file_history
module file_history
Definition: scale_file_history.F90:15
scale_file
module file
Definition: scale_file.F90:15
scale_prc
module PROCESS
Definition: scale_prc.F90:11
mod_atmos_phy_ae_vars::atmos_phy_ae_vars_history
subroutine, public atmos_phy_ae_vars_history(QTRC, RH)
Definition: mod_atmos_phy_ae_vars.F90:477
scale_precision::rp
integer, parameter, public rp
Definition: scale_precision.F90:41
scale_atmos_grid_cartesc_index::ie
integer, public ie
end point of inner domain: x, local
Definition: scale_atmos_grid_cartesC_index.F90:54
mod_atmos_phy_ae_vars::atmos_phy_ae_restart_out_postfix_timelabel
logical, public atmos_phy_ae_restart_out_postfix_timelabel
Add timelabel to the basename of output file?
Definition: mod_atmos_phy_ae_vars.F90:57
scale_io
module STDIO
Definition: scale_io.F90:10
scale_atmos_grid_cartesc_index
module atmosphere / grid / cartesC index
Definition: scale_atmos_grid_cartesC_index.F90:12
scale_const
module CONSTANT
Definition: scale_const.F90:11
scale_atmos_grid_cartesc_index::ia
integer, public ia
Definition: scale_atmos_grid_cartesC_index.F90:48
scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_vol
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_vol
control volume (zxy) [m3]
Definition: scale_atmos_grid_cartesC_real.F90:84
mod_atmos_phy_ae_vars::atmos_phy_ae_emit
real(rp), dimension(:,:,:,:), allocatable, public atmos_phy_ae_emit
Definition: mod_atmos_phy_ae_vars.F90:65
mod_atmos_phy_ae_vars::qa_ae
integer, public qa_ae
Definition: mod_atmos_phy_ae_vars.F90:67
scale_atmos_phy_ae_offline::atmos_phy_ae_offline_effective_radius
subroutine, public atmos_phy_ae_offline_effective_radius(KA, IA, JA, RH, Re)
Calculate Effective Radius.
Definition: scale_atmos_phy_ae_offline.F90:239
mod_atmos_phy_ae_vars::atmos_phy_ae_restart_out_aggregate
logical, public atmos_phy_ae_restart_out_aggregate
Switch to use aggregate file.
Definition: mod_atmos_phy_ae_vars.F90:56
mod_atmos_phy_ae_vars::atmos_phy_ae_vars_finalize
subroutine, public atmos_phy_ae_vars_finalize
Finalize.
Definition: mod_atmos_phy_ae_vars.F90:225
scale_file_cartesc::file_cartesc_close
subroutine, public file_cartesc_close(fid)
Close a netCDF file.
Definition: scale_file_cartesC.F90:1044
mod_atmos_phy_ae_vars::atmos_phy_ae_vars_restart_read
subroutine, public atmos_phy_ae_vars_restart_read
Read restart.
Definition: mod_atmos_phy_ae_vars.F90:322
mod_atmos_phy_ae_vars::atmos_phy_ae_restart_out_title
character(len=h_mid), public atmos_phy_ae_restart_out_title
title of the output file
Definition: mod_atmos_phy_ae_vars.F90:58
scale_prof
module profiler
Definition: scale_prof.F90:11
scale_atmos_grid_cartesc_index::is
integer, public is
start point of inner domain: x, local
Definition: scale_atmos_grid_cartesC_index.F90:53
scale_atmos_phy_ae_offline
module atmosphere / physics / aerosol / offline
Definition: scale_atmos_phy_ae_offline.F90:12
scale_atmos_grid_cartesc_index::ja
integer, public ja
Definition: scale_atmos_grid_cartesC_index.F90:49
scale_time
module TIME
Definition: scale_time.F90:11
mod_atmos_admin::atmos_phy_ae_type
character(len=h_short), public atmos_phy_ae_type
Definition: mod_atmos_admin.F90:37
scale_tracer
module TRACER
Definition: scale_tracer.F90:12
scale_atmos_aerosol
module atmosphere / aerosol
Definition: scale_atmos_aerosol.F90:12
mod_atmos_phy_ae_vars::atmos_phy_ae_ccn
real(rp), dimension(:,:,:), allocatable, public atmos_phy_ae_ccn
Definition: mod_atmos_phy_ae_vars.F90:63
mod_atmos_phy_ae_vars::atmos_phy_ae_vars_restart_write
subroutine, public atmos_phy_ae_vars_restart_write
Write restart.
Definition: mod_atmos_phy_ae_vars.F90:457
mod_atmos_phy_ae_vars::atmos_phy_ae_vars_restart_def_var
subroutine, public atmos_phy_ae_vars_restart_def_var
Write restart.
Definition: mod_atmos_phy_ae_vars.F90:441
scale_atmos_grid_cartesc_index::ks
integer, public ks
start point of inner domain: z, local
Definition: scale_atmos_grid_cartesC_index.F90:51
scale_debug
module DEBUG
Definition: scale_debug.F90:11
scale_atmos_phy_ae_offline::atmos_phy_ae_offline_qtrc2qaero
subroutine, public atmos_phy_ae_offline_qtrc2qaero(KA, IA, JA, time_now, Qe)
Calculate Effective Radius.
Definition: scale_atmos_phy_ae_offline.F90:280
scale_file_cartesc::file_cartesc_create
subroutine, public file_cartesc_create(basename, title, datatype, fid, date, subsec, haszcoord, append, aggregate, single)
Create/open a netCDF file.
Definition: scale_file_cartesC.F90:796
scale_statistics::statistics_checktotal
logical, public statistics_checktotal
calc&report variable totals to logfile?
Definition: scale_statistics.F90:109
scale_file_cartesc::file_cartesc_flush
subroutine, public file_cartesc_flush(fid)
Flush all pending requests to a netCDF file (PnetCDF only)
Definition: scale_file_cartesC.F90:1018
mod_atmos_phy_ae_vars::atmos_phy_ae_vars_setup
subroutine, public atmos_phy_ae_vars_setup
Setup.
Definition: mod_atmos_phy_ae_vars.F90:110
scale_time::time_gettimelabel
subroutine, public time_gettimelabel(timelabel)
generate time label
Definition: scale_time.F90:93
scale_comm_cartesc
module COMMUNICATION
Definition: scale_comm_cartesC.F90:11
mod_atmos_phy_ae_vars::atmos_phy_ae_rhoq_t
real(rp), dimension(:,:,:,:), allocatable, public atmos_phy_ae_rhoq_t
Definition: mod_atmos_phy_ae_vars.F90:61
scale_atmos_grid_cartesc_index::js
integer, public js
start point of inner domain: y, local
Definition: scale_atmos_grid_cartesC_index.F90:55
mod_atmos_phy_ae_vars::qs_ae
integer, public qs_ae
Definition: mod_atmos_phy_ae_vars.F90:68
mod_atmos_phy_ae_vars::atmos_phy_ae_vars_restart_enddef
subroutine, public atmos_phy_ae_vars_restart_enddef
Exit netCDF define mode.
Definition: mod_atmos_phy_ae_vars.F90:407
scale_atmos_aerosol::ae_name
character(len=h_short), dimension(n_ae), parameter, public ae_name
Definition: scale_atmos_aerosol.F90:42
scale_file::file_get_aggregate
logical function, public file_get_aggregate(fid)
Definition: scale_file.F90:6316
mod_atmos_phy_ae_vars
module ATMOSPHERE / Physics Aerosol Microphysics
Definition: mod_atmos_phy_ae_vars.F90:12
scale_file_cartesc::file_cartesc_open
subroutine, public file_cartesc_open(basename, fid, single, aggregate)
open a netCDF file for read
Definition: scale_file_cartesC.F90:760
mod_atmos_phy_ae_vars::atmos_phy_ae_restart_out_dtype
character(len=h_short), public atmos_phy_ae_restart_out_dtype
REAL4 or REAL8.
Definition: mod_atmos_phy_ae_vars.F90:59
scale_file_history::file_history_reg
subroutine, public file_history_reg(name, desc, unit, itemid, standard_name, ndims, dim_type, cell_measures, fill_halo)
Register/Append variable to history file.
Definition: scale_file_history.F90:685
mod_atmos_phy_ae_vars::atmos_phy_ae_vars_restart_open
subroutine, public atmos_phy_ae_vars_restart_open
Open restart file for read.
Definition: mod_atmos_phy_ae_vars.F90:287
mod_atmos_phy_ae_vars::atmos_phy_ae_ccn_t
real(rp), dimension(:,:,:), allocatable, public atmos_phy_ae_ccn_t
Definition: mod_atmos_phy_ae_vars.F90:64
scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_totvol
real(rp), public atmos_grid_cartesc_real_totvol
total volume (zxy, local) [m3]
Definition: scale_atmos_grid_cartesC_real.F90:88
scale_const::const_undef
real(rp), public const_undef
Definition: scale_const.F90:43
scale_io::io_fid_conf
integer, public io_fid_conf
Config file ID.
Definition: scale_io.F90:57
scale_atmos_grid_cartesc_index::je
integer, public je
end point of inner domain: y, local
Definition: scale_atmos_grid_cartesC_index.F90:56
scale_file_cartesc
module file / cartesianC
Definition: scale_file_cartesC.F90:11
mod_atmos_phy_ae_vars::qe_ae
integer, public qe_ae
Definition: mod_atmos_phy_ae_vars.F90:69