MOM6
MOM_intrinsic_functions.F90
1 !> A module with intrinsic functions that are used by MOM but are not supported
2 !! by some compilers.
4 
5 ! This file is part of MOM6. See LICENSE.md for the license.
6 
7 implicit none ; private
8 
9 public :: invcosh
10 
11 contains
12 
13 !> Evaluate the inverse cosh, either using a math library or an
14 !! equivalent expression
15 function invcosh(x)
16  real, intent(in) :: x !< The argument of the inverse of cosh. NaNs will
17  !! occur if x<1, but there is no error checking
18  real :: invcosh
19 
20 #ifdef __INTEL_COMPILER
21  invcosh = acosh(x)
22 #else
23  invcosh = log(x+sqrt(x*x-1))
24 #endif
25 
26 end function invcosh
27 
28 end module mom_intrinsic_functions
mom_intrinsic_functions
A module with intrinsic functions that are used by MOM but are not supported by some compilers.
Definition: MOM_intrinsic_functions.F90:3