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_slab, only: &
88  use scale_land_phy_matsiro, only: &
91  implicit none
92 
93  character(len=*), intent(in) :: LAND_TYPE
94  !---------------------------------------------------------------------------
95 
96  select case ( land_type )
97  case ( 'CONST' )
98  call land_phy_slab_setup( land_type )
100  case ( 'SLAB' )
101  call land_phy_slab_setup( land_type )
103  case ( 'MATSIRO' )
104  call land_phy_matsiro_setup( land_type )
106  case default
107  write(*,*) 'xxx invalid Land type(', trim(land_type), '). CHECK!'
108  call prc_mpistop
109  end select
110 
111  return
112  end subroutine land_phy_setup
113 
114 end module scale_land_phy
subroutine, public land_phy_matsiro_setup(LAND_TYPE)
Setup.
subroutine, public prc_mpistop
Abort MPI.
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
integer, public ia
of x whole cells (local, with HALO)
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
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
integer, public ja
of y whole cells (local, with HALO)