SCALE-RM
mod_lake_admin.F90
Go to the documentation of this file.
1 !-------------------------------------------------------------------------------
9 !-------------------------------------------------------------------------------
10 #include "scalelib.h"
12  !-----------------------------------------------------------------------------
13  !
14  !++ used modules
15  !
16  use scale_precision
17  use scale_io
18  use scale_prof
19  !-----------------------------------------------------------------------------
20  implicit none
21  private
22  !-----------------------------------------------------------------------------
23  !
24  !++ Public procedure
25  !
26  public :: lake_admin_setup
27 
28  !-----------------------------------------------------------------------------
29  !
30  !++ Public parameters & variables
31  !
32  logical, public :: lake_do = .true. ! main switch for the model
33 
34  character(len=H_SHORT), public :: lake_dyn_type = 'NONE'
35  ! 'OFF'
36  character(len=H_SHORT), public :: lake_sfc_type = 'NONE'
37 
38  !-----------------------------------------------------------------------------
39  !
40  !++ Private procedure
41  !
42  !-----------------------------------------------------------------------------
43  !
44  !++ Private parameters & variables
45  !
46  !-----------------------------------------------------------------------------
47 contains
48  !-----------------------------------------------------------------------------
50  subroutine lake_admin_setup
51  use scale_prc, only: &
52  prc_abort
53  implicit none
54 
55 ! namelist / PARAM_LAKE / &
56 ! LAKE_DYN_TYPE
57 
58 ! integer :: ierr
59  !---------------------------------------------------------------------------
60 
61  log_newline
62  log_info("LAKE_ADMIN_setup",*) 'Setup'
63 
64  !--- read namelist
65 !!$ rewind(IO_FID_CONF)
66 !!$ read(IO_FID_CONF,nml=PARAM_LAKE,iostat=ierr)
67 !!$ if( ierr < 0 ) then !--- missing
68 !!$ LOG_INFO("LAKE_ADMIN_setup",*) 'Not found namelist. Default used.'
69 !!$ elseif( ierr > 0 ) then !--- fatal error
70 !!$ LOG_ERROR("LAKE_ADMIN_setup",*) 'Not appropriate names in namelist PARAM_LAKE. Check!'
71 !!$ call PRC_abort
72 !!$ endif
73 !!$ LOG_NML(PARAM_LAKE)
74 
75  !-----< module component check >-----
76 
77  log_newline
78  log_info("LAKE_ADMIN_setup",*) 'Lake model components '
79 
80  if ( lake_dyn_type /= 'OFF' .AND. lake_dyn_type /= 'NONE' ) then
81  log_error("LAKE_ADMIN_setup",*) 'Currently, no lake model is impremented'
82 !!$ if ( WKMAX < 0 ) then
83 !!$ LOG_ERROR("LAKE_ADMIN_setup",*) 'LAKE_DYN_TYPE is set but WKMAX < 0'
84 !!$ call PRC_abort
85 !!$ end if
86  log_info_cont(*) 'Lake model : ON, ', trim(lake_dyn_type)
87  lake_do = .true.
88  else
89  log_info_cont(*) 'Lake model : OFF'
90  lake_do = .false.
91  endif
92 
93  return
94  end subroutine lake_admin_setup
95 
96 end module mod_lake_admin
scale_prc::prc_abort
subroutine, public prc_abort
Abort Process.
Definition: scale_prc.F90:350
mod_lake_admin::lake_sfc_type
character(len=h_short), public lake_sfc_type
Definition: mod_lake_admin.F90:36
scale_precision
module PRECISION
Definition: scale_precision.F90:14
mod_lake_admin::lake_admin_setup
subroutine, public lake_admin_setup
Setup.
Definition: mod_lake_admin.F90:51
scale_prc
module PROCESS
Definition: scale_prc.F90:11
scale_io
module STDIO
Definition: scale_io.F90:10
mod_lake_admin::lake_do
logical, public lake_do
Definition: mod_lake_admin.F90:32
scale_prof
module profiler
Definition: scale_prof.F90:11
mod_lake_admin
module Lake admin
Definition: mod_lake_admin.F90:11
mod_lake_admin::lake_dyn_type
character(len=h_short), public lake_dyn_type
Definition: mod_lake_admin.F90:34