LCOV - code coverage report
Current view: top level - cicecore/shared - ice_constants.F90 (source / functions) Hit Total Coverage
Test: 231018-211459:8916b9ff2c:1:quick Lines: 0 16 0.00 %
Date: 2023-10-18 15:30:36 Functions: 0 2 0.00 %

          Line data    Source code
       1             : !=======================================================================
       2             : !
       3             : ! This module defines a variety of physical and numerical constants
       4             : ! used throughout the ice model
       5             : !
       6             : ! author Elizabeth C. Hunke, LANL
       7             : 
       8             :       module ice_constants
       9             : 
      10             :       use ice_kinds_mod
      11             : 
      12             :       implicit none
      13             :       private
      14             : 
      15             :       public :: ice_init_constants
      16             :       public :: ice_query_constants
      17             : 
      18             :       !-----------------------------------------------------------------
      19             :       ! physical constants
      20             :       !-----------------------------------------------------------------
      21             : 
      22             :       real (kind=dbl_kind), public :: &
      23             :          omega     = 7.292e-5_dbl_kind   ,&! angular velocity of earth (rad/sec)   ! LCOV_EXCL_LINE
      24             :          radius    = 6.37e6_dbl_kind       ! earth radius (m)
      25             : 
      26             :       real (kind=dbl_kind), public :: &
      27             :          spval_dbl = 1.0e30_dbl_kind    ! special value (double precision)
      28             : 
      29             :       real (kind=real_kind), public :: &
      30             :          spval     = 1.0e30_real_kind   ! special value for netCDF output
      31             : 
      32             :       ! these are currently set so as to have no effect on the decomposition
      33             :       real (kind=dbl_kind), public :: &
      34             :          shlat  =  30.0_dbl_kind   ,&! artificial masking edge (deg)   ! LCOV_EXCL_LINE
      35             :          nhlat  = -30.0_dbl_kind     ! artificial masking edge (deg)
      36             : 
      37             :       !-----------------------------------------------------------------
      38             :       ! numbers used outside the column package
      39             :       !-----------------------------------------------------------------
      40             : 
      41             :       real (kind=dbl_kind), parameter, public :: &
      42             :         c0   = 0.0_dbl_kind, &   ! LCOV_EXCL_LINE
      43             :         c1   = 1.0_dbl_kind, &   ! LCOV_EXCL_LINE
      44             :         c1p5 = 1.5_dbl_kind, &   ! LCOV_EXCL_LINE
      45             :         c2   = 2.0_dbl_kind, &   ! LCOV_EXCL_LINE
      46             :         c3   = 3.0_dbl_kind, &   ! LCOV_EXCL_LINE
      47             :         c4   = 4.0_dbl_kind, &   ! LCOV_EXCL_LINE
      48             :         c5   = 5.0_dbl_kind, &   ! LCOV_EXCL_LINE
      49             :         c6   = 6.0_dbl_kind, &   ! LCOV_EXCL_LINE
      50             :         c8   = 8.0_dbl_kind, &   ! LCOV_EXCL_LINE
      51             :         c9   = 9.0_dbl_kind, &   ! LCOV_EXCL_LINE
      52             :         c10  = 10.0_dbl_kind, &   ! LCOV_EXCL_LINE
      53             :         c12  = 12.0_dbl_kind, &   ! LCOV_EXCL_LINE
      54             :         c15  = 15.0_dbl_kind, &   ! LCOV_EXCL_LINE
      55             :         c16  = 16.0_dbl_kind, &   ! LCOV_EXCL_LINE
      56             :         c20  = 20.0_dbl_kind, &   ! LCOV_EXCL_LINE
      57             :         c25  = 25.0_dbl_kind, &   ! LCOV_EXCL_LINE
      58             :         c30  = 30.0_dbl_kind, &   ! LCOV_EXCL_LINE
      59             :         c100 = 100.0_dbl_kind, &   ! LCOV_EXCL_LINE
      60             :         c180 = 180.0_dbl_kind, &   ! LCOV_EXCL_LINE
      61             :         c360 = 360.0_dbl_kind, &   ! LCOV_EXCL_LINE
      62             :         c365 = 365.0_dbl_kind, &   ! LCOV_EXCL_LINE
      63             :         c400 = 400.0_dbl_kind, &   ! LCOV_EXCL_LINE
      64             :         c1000= 1000.0_dbl_kind, &   ! LCOV_EXCL_LINE
      65             :         c3600= 3600.0_dbl_kind, &   ! LCOV_EXCL_LINE
      66             :         p001 = 0.001_dbl_kind, &   ! LCOV_EXCL_LINE
      67             :         p01  = 0.01_dbl_kind, &   ! LCOV_EXCL_LINE
      68             :         p025 = 0.025_dbl_kind, &   ! LCOV_EXCL_LINE
      69             :         p05  = 0.05_dbl_kind, &   ! LCOV_EXCL_LINE
      70             :         p1   = 0.1_dbl_kind, &   ! LCOV_EXCL_LINE
      71             :         p15  = 0.15_dbl_kind, &   ! LCOV_EXCL_LINE
      72             :         p2   = 0.2_dbl_kind, &   ! LCOV_EXCL_LINE
      73             :         p25  = 0.25_dbl_kind, &   ! LCOV_EXCL_LINE
      74             :         p3   = 0.3_dbl_kind, &   ! LCOV_EXCL_LINE
      75             :         p4   = 0.4_dbl_kind, &   ! LCOV_EXCL_LINE
      76             :         p5   = 0.5_dbl_kind, &   ! LCOV_EXCL_LINE
      77             :         p6   = 0.6_dbl_kind, &   ! LCOV_EXCL_LINE
      78             :         p75  = 0.75_dbl_kind, &   ! LCOV_EXCL_LINE
      79             :         p111 = c1/c9, &   ! LCOV_EXCL_LINE
      80             :         p166 = c1/c6, &   ! LCOV_EXCL_LINE
      81             :         p222 = c2/c9, &   ! LCOV_EXCL_LINE
      82             :         p333 = c1/c3, &   ! LCOV_EXCL_LINE
      83             :         p666 = c2/c3, &   ! LCOV_EXCL_LINE
      84             :         p055 = p111*p5, &   ! LCOV_EXCL_LINE
      85             :         p027 = p055*p5, &   ! LCOV_EXCL_LINE
      86             :         eps04  = 1.0e-4_dbl_kind, &   ! LCOV_EXCL_LINE
      87             :         eps13  = 1.0e-13_dbl_kind, &   ! LCOV_EXCL_LINE
      88             :         eps16  = 1.0e-16_dbl_kind
      89             : 
      90             :       !-----------------------------------------------------------------
      91             :       ! location of fields for staggered grids
      92             :       !-----------------------------------------------------------------
      93             : 
      94             :       integer (int_kind), parameter, public :: &
      95             :         field_loc_unknown  =  0, &   ! LCOV_EXCL_LINE
      96             :         field_loc_noupdate = -1, &   ! LCOV_EXCL_LINE
      97             :         field_loc_center   =  1, &   ! LCOV_EXCL_LINE
      98             :         field_loc_NEcorner =  2, &   ! LCOV_EXCL_LINE
      99             :         field_loc_Nface    =  3, &   ! LCOV_EXCL_LINE
     100             :         field_loc_Eface    =  4
     101             : 
     102             :       !-----------------------------------------------------------------
     103             :       ! field type attribute - necessary for handling
     104             :       ! changes of direction across tripole boundary
     105             :       !-----------------------------------------------------------------
     106             : 
     107             :       integer (int_kind), parameter, public :: &
     108             :         field_type_unknown  =  0, &   ! LCOV_EXCL_LINE
     109             :         field_type_noupdate = -1, &   ! LCOV_EXCL_LINE
     110             :         field_type_scalar   =  1, &   ! LCOV_EXCL_LINE
     111             :         field_type_vector   =  2, &   ! LCOV_EXCL_LINE
     112             :         field_type_angle    =  3
     113             : 
     114             :       !-----------------------------------------------------------------
     115             :       ! conversion factors
     116             :       !-----------------------------------------------------------------
     117             : 
     118             :       real (kind=dbl_kind), parameter, public :: &
     119             :         cm_to_m       = 0.01_dbl_kind   ,&! cm to meters   ! LCOV_EXCL_LINE
     120             :         m_to_cm       = 100._dbl_kind   ,&! meters to cm   ! LCOV_EXCL_LINE
     121             :         m2_to_km2     = 1.e-6_dbl_kind  ,&! m^2 to km^2   ! LCOV_EXCL_LINE
     122             :         kg_to_g       = 1000._dbl_kind  ,&! kilograms to grams   ! LCOV_EXCL_LINE
     123             :         mps_to_cmpdy  = 8.64e6_dbl_kind   ! m per s to cm per day
     124             : 
     125             : !=======================================================================
     126             : 
     127             :       contains
     128             : 
     129             : !=======================================================================
     130             : 
     131             : ! subroutine to set the cice constants
     132             : 
     133           0 :       subroutine ice_init_constants(   &
     134             :          omega_in, radius_in, spval_dbl_in, spval_in, shlat_in, nhlat_in)
     135             : 
     136             :       real (kind=dbl_kind), intent(in), optional :: &
     137             :          omega_in     , &   ! angular velocity of earth (rad/sec)   ! LCOV_EXCL_LINE
     138             :          radius_in    , &   ! earth radius (m)   ! LCOV_EXCL_LINE
     139             :          spval_dbl_in , &   ! special value (double precision)   ! LCOV_EXCL_LINE
     140             :          shlat_in     , &   ! artificial masking edge (deg)   ! LCOV_EXCL_LINE
     141             :          nhlat_in           ! artificial masking edge (deg)
     142             :       real (kind=real_kind), intent(in), optional :: &
     143             :          spval_in           ! special value for netCDF output
     144             : 
     145             :       character(len=*),parameter :: subname='(ice_init_constants)'
     146             : 
     147           0 :       if (present(omega_in)) omega = omega_in
     148           0 :       if (present(radius_in)) radius = radius_in
     149           0 :       if (present(spval_dbl_in)) spval_dbl = spval_dbl_in
     150           0 :       if (present(spval_in)) spval = spval_in
     151           0 :       if (present(shlat_in)) shlat = shlat_in
     152           0 :       if (present(nhlat_in)) nhlat = nhlat_in
     153             : 
     154           0 :       end subroutine ice_init_constants
     155             : 
     156             : !=======================================================================
     157             : 
     158             : ! subroutine to set the cice constants
     159             : 
     160           0 :       subroutine ice_query_constants(   &
     161             :          omega_out, radius_out, spval_dbl_out, spval_out, shlat_out, nhlat_out)
     162             : 
     163             :       real (kind=dbl_kind), intent(out), optional :: &
     164             :          omega_out     , &   ! angular velocity of earth (rad/sec)   ! LCOV_EXCL_LINE
     165             :          radius_out    , &   ! earth radius (m)   ! LCOV_EXCL_LINE
     166             :          spval_dbl_out , &   ! special value (double precision)   ! LCOV_EXCL_LINE
     167             :          spval_out     , &   ! special value for netCDF output   ! LCOV_EXCL_LINE
     168             :          shlat_out     , &   ! artificial masking edge (deg)   ! LCOV_EXCL_LINE
     169             :          nhlat_out           ! artificial masking edge (deg)
     170             : 
     171             :       character(len=*),parameter :: subname='(ice_query_constants)'
     172             : 
     173           0 :       if (present(omega_out)) omega_out = omega
     174           0 :       if (present(radius_out)) radius_out = radius
     175           0 :       if (present(spval_dbl_out)) spval_dbl_out = spval_dbl
     176           0 :       if (present(spval_out)) spval_out = spval
     177           0 :       if (present(shlat_out)) shlat_out = shlat
     178           0 :       if (present(nhlat_out)) nhlat_out = nhlat
     179             : 
     180           0 :       end subroutine ice_query_constants
     181             : 
     182             : !=======================================================================
     183             : 
     184             :       end module ice_constants
     185             : 
     186             : !=======================================================================

Generated by: LCOV version 1.14-6-g40580cd