SCALE-RM
scale_land_phy.F90
Go to the documentation of this file.
1 !-------------------------------------------------------------------------------
9 !-------------------------------------------------------------------------------
11  !-----------------------------------------------------------------------------
12  !
13  !++ used modules
14  !
15  use scale_precision
16  use scale_stdio
17  use scale_prof
18  !-----------------------------------------------------------------------------
19  implicit none
20  private
21  !-----------------------------------------------------------------------------
22  !
23  !++ Public procedure
24  !
25  public :: land_phy_setup
26 
27  abstract interface
28  subroutine lnd( &
29  LAND_TEMP_t, &
30  LAND_WATER_t, &
31  LAND_TEMP, &
32  LAND_WATER, &
33  LAND_WaterLimit, &
34  LAND_ThermalCond, &
35  LAND_HeatCapacity, &
36  LAND_WaterDiff, &
37  LAND_SFLX_GH, &
38  LAND_SFLX_prec, &
39  LAND_SFLX_evap, &
40  CDZ, &
41  dt )
42  use scale_precision
45  implicit none
46 
47  real(RP), intent(out) :: LAND_TEMP_t (LKMAX,IA,JA)
48  real(RP), intent(out) :: LAND_WATER_t (LKMAX,IA,JA)
49 
50  real(RP), intent(in) :: LAND_TEMP (LKMAX,IA,JA)
51  real(RP), intent(in) :: LAND_WATER (LKMAX,IA,JA)
52  real(RP), intent(in) :: LAND_WaterLimit (IA,JA)
53  real(RP), intent(in) :: LAND_ThermalCond (IA,JA)
54  real(RP), intent(in) :: LAND_HeatCapacity(IA,JA)
55  real(RP), intent(in) :: LAND_WaterDiff (IA,JA)
56  real(RP), intent(in) :: LAND_SFLX_GH (IA,JA)
57  real(RP), intent(in) :: LAND_SFLX_prec (IA,JA)
58  real(RP), intent(in) :: LAND_SFLX_evap (IA,JA)
59  real(RP), intent(in) :: CDZ (LKMAX)
60  real(DP), intent(in) :: dt
61  end subroutine lnd
62  end interface
63  procedure(lnd), pointer :: land_phy => null()
64  public :: land_phy
65 
66  !-----------------------------------------------------------------------------
67  !
68  !++ Public parameters & variables
69  !
70  !-----------------------------------------------------------------------------
71  !
72  !++ Private procedure
73  !
74  !-----------------------------------------------------------------------------
75  !
76  !++ Private parameters & variables
77  !
78  !-----------------------------------------------------------------------------
79 contains
80  !-----------------------------------------------------------------------------
82  subroutine land_phy_setup( LAND_TYPE )
83  use scale_process, only: &
85  use scale_land_phy_const, only: &
88  use scale_land_phy_slab, only: &
91  use scale_land_phy_matsiro, only: &
94  implicit none
95 
96  character(len=*), intent(in) :: land_type
97  !---------------------------------------------------------------------------
98 
99  select case( land_type )
100  case( 'CONST' )
101  call land_phy_const_setup( land_type )
103  case( 'SLAB', 'THIN-SLAB', 'THICK-SLAB' )
104  call land_phy_slab_setup( land_type )
106  case( 'MATSIRO' )
107  call land_phy_matsiro_setup( land_type )
109  case default
110  write(*,*) 'xxx invalid Land type(', trim(land_type), '). CHECK!'
111  call prc_mpistop
112  end select
113 
114  return
115  end subroutine land_phy_setup
116 
117 end module scale_land_phy
subroutine, public land_phy_matsiro_setup(LAND_TYPE)
Setup.
subroutine, public prc_mpistop
Abort MPI.
module LAND / Physics Constant model
module STDIO
Definition: scale_stdio.F90:12
subroutine, public land_phy_setup(LAND_TYPE)
Setup.
subroutine, public land_phy_slab_setup(LAND_TYPE)
Setup.
procedure(lnd), pointer, public land_phy
module grid index
subroutine, public land_phy_const_setup(LAND_TYPE)
Setup.
subroutine, public land_phy_slab(TEMP_t, WATER_t, TEMP, WATER, WaterLimit, ThermalCond, HeatCapacity, WaterDiff, SFLX_GH, SFLX_prec, SFLX_evap, CDZ, dt)
Physical processes for land submodel.
module LAND / Physics
module PROCESS
module profiler
Definition: scale_prof.F90:10
subroutine, public land_phy_const(TEMP_t, WATER_t, TEMP, WATER, WaterLimit, ThermalCond, HeatCapacity, WaterDiff, SFLX_GH, SFLX_prec, SFLX_evap, CDZ, dt)
Physical processes for land submodel.
module PRECISION
module LAND / Physics Slab model
module land grid index
subroutine, public land_phy_matsiro(LAND_TEMP_t, LAND_WATER_t, LAND_TEMP, LAND_WATER, LAND_WaterLimit, LAND_ThermalCond, LAND_HeatCapacity, LAND_WaterDiff, LAND_SFLX_GH, LAND_SFLX_prec, LAND_SFLX_evap, CDZ, dt)
Physical processes for land submodel.
module LAND / Physics Matsiro model