SCALE-RM
mod_land_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 :: land_admin_setup
27 
28  !-----------------------------------------------------------------------------
29  !
30  !++ Public parameters & variables
31  !
32  character(len=H_SHORT), public :: land_dyn_type = 'NONE'
33  ! 'OFF'
34  ! 'BUCKET'
35  ! 'INIT'
36  character(len=H_SHORT), public :: land_sfc_type = 'SKIN'
37  ! 'FIXED-TEMP'
38  character(len=H_SHORT), public :: snow_type = 'NONE'
39  ! 'OFF'
40  ! 'KY90'
41  logical, public :: land_do
42  logical, public :: snow_sw
43 
44  !-----------------------------------------------------------------------------
45  !
46  !++ Private procedure
47  !
48  !-----------------------------------------------------------------------------
49  !
50  !++ Private parameters & variables
51  !
52  !-----------------------------------------------------------------------------
53 contains
54  !-----------------------------------------------------------------------------
56  subroutine land_admin_setup
57  use scale_prc, only: &
58  prc_abort
59  implicit none
60 
61  namelist / param_land / &
62  land_dyn_type, &
63  land_sfc_type, &
64  snow_type
65 
66  integer :: ierr
67  !---------------------------------------------------------------------------
68 
69  log_newline
70  log_info("LAND_ADMIN_setup",*) 'Setup'
71 
72  !--- read namelist
73  rewind(io_fid_conf)
74  read(io_fid_conf,nml=param_land,iostat=ierr)
75  if( ierr < 0 ) then !--- missing
76  log_info("LAND_ADMIN_setup",*) 'Not found namelist. Default used.'
77  elseif( ierr > 0 ) then !--- fatal error
78  log_error("LAND_ADMIN_setup",*) 'Not appropriate names in namelist PARAM_LAND. Check!'
79  call prc_abort
80  endif
81  log_nml(param_land)
82 
83  !-----< module component check >-----
84 
85  log_newline
86  log_info("LAND_ADMIN_setup",*) 'Land model components '
87 
88  if ( land_dyn_type /= 'OFF' .AND. land_dyn_type /= 'NONE' ) then
89  log_info_cont(*) 'Land model : ON, ', trim(land_dyn_type)
90  land_do = .true.
91  else
92  log_info_cont(*) 'Land model : OFF'
93  land_do = .false.
94  endif
95 
96  if ( land_do ) then
97 
98  if ( snow_type /= 'OFF' .AND. snow_type /= 'NONE' ) then
99  log_info_cont(*) '+ Snow physics : ON, ', trim(snow_type)
100  snow_sw = .true.
101  else
102  log_info_cont(*) '+ Snow physics : OFF'
103  snow_sw = .false.
104  endif
105 
106  log_info_cont(*) '+ Land surface model : ', trim(land_sfc_type)
107 
108  end if
109 
110  return
111  end subroutine land_admin_setup
112 
113 end module mod_land_admin
scale_prc::prc_abort
subroutine, public prc_abort
Abort Process.
Definition: scale_prc.F90:342
scale_precision
module PRECISION
Definition: scale_precision.F90:14
mod_land_admin::land_sfc_type
character(len=h_short), public land_sfc_type
Definition: mod_land_admin.F90:36
mod_land_admin::snow_type
character(len=h_short), public snow_type
Definition: mod_land_admin.F90:38
mod_land_admin::land_dyn_type
character(len=h_short), public land_dyn_type
Definition: mod_land_admin.F90:32
scale_prc
module PROCESS
Definition: scale_prc.F90:11
scale_io
module STDIO
Definition: scale_io.F90:10
mod_land_admin
module Land admin
Definition: mod_land_admin.F90:11
scale_prof
module profiler
Definition: scale_prof.F90:11
mod_land_admin::land_do
logical, public land_do
Definition: mod_land_admin.F90:41
mod_land_admin::snow_sw
logical, public snow_sw
Definition: mod_land_admin.F90:42
mod_land_admin::land_admin_setup
subroutine, public land_admin_setup
Setup.
Definition: mod_land_admin.F90:57
scale_io::io_fid_conf
integer, public io_fid_conf
Config file ID.
Definition: scale_io.F90:56