FMS  2024.03
Flexible Modeling System
monin_obukhov_inter.F90
1 !***********************************************************************
2 !* GNU Lesser General Public License
3 !*
4 !* This file is part of the GFDL Flexible Modeling System (FMS).
5 !*
6 !* FMS is free software: you can redistribute it and/or modify it under
7 !* the terms of the GNU Lesser General Public License as published by
8 !* the Free Software Foundation, either version 3 of the License, or (at
9 !* your option) any later version.
10 !*
11 !* FMS is distributed in the hope that it will be useful, but WITHOUT
12 !* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 !* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 !* for more details.
15 !*
16 !* You should have received a copy of the GNU Lesser General Public
17 !* License along with FMS. If not, see <http://www.gnu.org/licenses/>.
18 !***********************************************************************
19 !> @defgroup monin_obukhov_inter monin_obukhov_inter
20 !> @ingroup monin_obukhov
21 !> @brief Utility routines to be used in @ref monin_obukhov_mod
22 
23 !> @addtogroup monin_obukhov_inter
24 !> @{
25 module monin_obukhov_inter
26 
27 use platform_mod, only: r4_kind, r8_kind
28 implicit none
29 private
30 
31 
32 public :: monin_obukhov_diff
33 public :: monin_obukhov_drag_1d
41 
43  module procedure monin_obukhov_diff_r4, monin_obukhov_diff_r8
44 end interface monin_obukhov_diff
45 
47  module procedure monin_obukhov_drag_1d_r4, monin_obukhov_drag_1d_r8
48 end interface monin_obukhov_drag_1d
49 
51  module procedure monin_obukhov_solve_zeta_r4, monin_obukhov_solve_zeta_r8
52 end interface monin_obukhov_solve_zeta
53 
55  module procedure monin_obukhov_derivative_t_r4, monin_obukhov_derivative_t_r8
56 end interface monin_obukhov_derivative_t
57 
59  module procedure monin_obukhov_derivative_m_r4, monin_obukhov_derivative_m_r8
60 end interface monin_obukhov_derivative_m
61 
63  module procedure monin_obukhov_profile_1d_r4, monin_obukhov_profile_1d_r8
64 end interface monin_obukhov_profile_1d
65 
67  module procedure monin_obukhov_integral_m_r4, monin_obukhov_integral_m_r8
68 end interface monin_obukhov_integral_m
69 
71  module procedure monin_obukhov_integral_tq_r4, monin_obukhov_integral_tq_r8
72 end interface monin_obukhov_integral_tq
73 
75  module procedure monin_obukhov_stable_mix_r4, monin_obukhov_stable_mix_r8
76 end interface monin_obukhov_stable_mix
77 
78 contains
79 
80 #include "monin_obukhov_inter_r4.fh"
81 #include "monin_obukhov_inter_r8.fh"
82 
83 end module monin_obukhov_inter
84 !> @}
85 ! close documentation grouping