SCALE-RM
mod_da_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  use scale_tracer
23 
24  use scale_const, only: &
25  undef => const_undef
26  !-----------------------------------------------------------------------------
27  implicit none
28  private
29  !-----------------------------------------------------------------------------
30  !
31  !++ Public procedure
32  !
33  public :: da_vars_setup
34  public :: da_vars_history
35  public :: da_vars_finalize
36  public :: da_vars_monitor
37 
38  !-----------------------------------------------------------------------------
39  !
40  !++ Public parameters & variables
41  !
42  logical, public :: da_compute_ens_history = .false.
43 
44  integer, public, parameter :: obs_in_basename_maxsize = 1
45 
46  character(len=H_LONG), public :: obs_in_basename(obs_in_basename_maxsize)
47  character(len=H_LONG), public :: obs_in_format (obs_in_basename_maxsize)
48  character(len=H_LONG), public :: obs_in_maskfile = ''
49 
50  logical, public :: positive_definite_q = .false.
51  logical, public :: positive_definite_qhyd = .false.
52 
53  integer, public :: obs_in_num = 1
54 
55  !-----------------------------------------------------------------------------
56  !
57  !++ Private procedure
58  !
59  !-----------------------------------------------------------------------------
60  !
61  !++ Private parameters & variables
62  !
63  !-----------------------------------------------------------------------------
64 contains
65  !-----------------------------------------------------------------------------
67  subroutine da_vars_setup
68  use scale_prc, only: &
69  prc_abort
70  implicit none
71 
72  integer :: ierr
73 
74  namelist / param_da_vars / &
77  obs_in_format, &
81  !---------------------------------------------------------------------------
82 
83  log_newline
84  log_info("DA_vars_setup",*) 'Setup'
85 
86  obs_in_basename(:) = ''
87  obs_in_format(:) = ''
88 
89  !--- read namelist
90  rewind(io_fid_conf)
91  read(io_fid_conf,nml=param_da_vars,iostat=ierr)
92  if( ierr < 0 ) then !--- missing
93  log_info("DA_vars_setup",*) 'Not found namelist. Default used.'
94  elseif( ierr > 0 ) then !--- fatal error
95  log_error("DA_vars_setup",*) 'Not appropriate names in namelist PARAM_DA_VARS. Check!'
96  call prc_abort
97  endif
98  log_nml(param_da_vars)
99 
100  return
101  end subroutine da_vars_setup
102 
103  !-----------------------------------------------------------------------------
105  subroutine da_vars_history
106  implicit none
107  !---------------------------------------------------------------------------
108 
109  return
110  end subroutine da_vars_history
111 
112  !-----------------------------------------------------------------------------
114  subroutine da_vars_finalize
115  implicit none
116  !---------------------------------------------------------------------------
117 
118  return
119  end subroutine da_vars_finalize
120 
121  !-----------------------------------------------------------------------------
123  subroutine da_vars_monitor
124  implicit none
125  !---------------------------------------------------------------------------
126 
127  return
128  end subroutine da_vars_monitor
129 
130 end module mod_da_vars
scale_prc::prc_abort
subroutine, public prc_abort
Abort Process.
Definition: scale_prc.F90:350
mod_da_vars::obs_in_basename
character(len=h_long), dimension(obs_in_basename_maxsize), public obs_in_basename
Definition: mod_da_vars.F90:46
scale_precision
module PRECISION
Definition: scale_precision.F90:14
mod_da_vars::obs_in_basename_maxsize
integer, parameter, public obs_in_basename_maxsize
Definition: mod_da_vars.F90:44
mod_da_vars::obs_in_format
character(len=h_long), dimension(obs_in_basename_maxsize), public obs_in_format
Definition: mod_da_vars.F90:47
mod_da_vars
module Data Assimilation Variables
Definition: mod_da_vars.F90:12
scale_prc
module PROCESS
Definition: scale_prc.F90:11
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
mod_da_vars::positive_definite_q
logical, public positive_definite_q
Definition: mod_da_vars.F90:50
scale_const
module CONSTANT
Definition: scale_const.F90:11
mod_da_vars::obs_in_maskfile
character(len=h_long), public obs_in_maskfile
Definition: mod_da_vars.F90:48
scale_prof
module profiler
Definition: scale_prof.F90:11
mod_da_vars::da_vars_monitor
subroutine, public da_vars_monitor
monitor output
Definition: mod_da_vars.F90:124
mod_da_vars::da_compute_ens_history
logical, public da_compute_ens_history
Definition: mod_da_vars.F90:42
scale_tracer
module TRACER
Definition: scale_tracer.F90:12
scale_debug
module DEBUG
Definition: scale_debug.F90:11
mod_da_vars::obs_in_num
integer, public obs_in_num
Definition: mod_da_vars.F90:53
mod_da_vars::da_vars_finalize
subroutine, public da_vars_finalize
Finalize.
Definition: mod_da_vars.F90:115
scale_const::const_undef
real(rp), public const_undef
Definition: scale_const.F90:43
mod_da_vars::da_vars_setup
subroutine, public da_vars_setup
Setup.
Definition: mod_da_vars.F90:68
scale_io::io_fid_conf
integer, public io_fid_conf
Config file ID.
Definition: scale_io.F90:57
mod_da_vars::positive_definite_qhyd
logical, public positive_definite_qhyd
Definition: mod_da_vars.F90:51
mod_da_vars::da_vars_history
subroutine, public da_vars_history
History output set for data-assimilation variables.
Definition: mod_da_vars.F90:106