12#include "scaleFElib.h"
19 use scale_const,
only: &
47 integer,
intent(in) :: np
48 real(rp),
intent(out) :: coriolis(np)
49 character(*),
intent(in) :: colioris_type
50 real(rp),
intent(in),
optional :: y(np)
51 real(rp),
intent(in),
optional :: f0
52 real(rp),
intent(in),
optional :: beta
53 real(rp),
intent(in),
optional :: y0
54 real(rp),
intent(in),
optional :: lat(np)
59 if ( trim(colioris_type) ==
'PLANE' )
then
60 if ( ( .not.
present(f0) ) .or. ( .not.
present(beta) ) &
61 .or. ( .not.
present(y) ) .or. ( .not.
present(y0) ) )
then
62 log_error(
'get_coriolis_parameter',*)
'If COLIORIS_type is set to PLANE, f0 and beta must be passed. Check!'
67 coriolis(i) = f0 + beta * ( y(i) - y0 )
69 else if ( trim(colioris_type) ==
'SPHERE' )
then
70 if ( .not.
present(lat) )
then
71 log_error(
'get_coriolis_parameter',*)
'If COLIORIS_type is set to SPHERE, lat must be passed. Check!'
76 coriolis(i) = 2.0_rp * ohm * sin( lat(i) )
78 else if ( trim(colioris_type) ==
'NONE' )
then
84 log_error(
'get_coriolis_parameter',*)
'Unexpected COLIORIS_type is specified. Check! COLIORIS_type=', colioris_type
Module common / Coriolis parameter.
subroutine, public get_coriolis_parameter(coriolis, colioris_type, np, y, f0, beta, y0, lat)
Get Coriolis parameter.