New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 15540 for NEMO/branches/2021/dev_r14116_HPC-10_mcastril_Mixed_Precision_implementation/src/OCE/OBS/obs_conv_functions.h90 – NEMO

Ignore:
Timestamp:
2021-11-26T12:27:56+01:00 (3 years ago)
Author:
sparonuz
Message:

Mixed precision version, tested up to 30 years on ORCA2.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2021/dev_r14116_HPC-10_mcastril_Mixed_Precision_implementation/src/OCE/OBS/obs_conv_functions.h90

    r10068 r15540  
    55   !!---------------------------------------------------------------------- 
    66 
    7   REAL(KIND=wp) FUNCTION potemp( ps, pt, pp, ppr ) 
     7  REAL(KIND=dp) FUNCTION potemp( ps, pt, pp, ppr ) 
    88      !!---------------------------------------------------------------------- 
    99      !!                    ***  FUNCTION potemp  *** 
     
    3232      REAL(KIND=wp), INTENT(IN) :: ps 
    3333      REAL(KIND=wp), INTENT(IN) :: pt 
    34       REAL(KIND=wp), INTENT(IN) :: pp 
     34      REAL(KIND=dp), INTENT(IN) :: pp 
    3535      REAL(KIND=wp), INTENT(IN) :: ppr 
    3636 
    3737      !! * Local declarations 
    38       REAL(KIND=wp) :: zpol 
    39       REAL(KIND=wp), PARAMETER :: a1 =  1.067610e-05 
    40       REAL(KIND=wp), PARAMETER :: a2 = -1.434297e-06 
    41       REAL(KIND=wp), PARAMETER :: a3 = -7.566349e-09 
    42       REAL(KIND=wp), PARAMETER :: a4 = -8.535585e-06 
    43       REAL(KIND=wp), PARAMETER :: a5 =  3.074672e-08 
    44       REAL(KIND=wp), PARAMETER :: a6 =  1.918639e-08 
    45       REAL(KIND=wp), PARAMETER :: a7 =  1.788718e-10 
     38      REAL(KIND=dp) :: zpol 
     39      REAL(KIND=dp), PARAMETER :: a1 =  1.067610e-05 
     40      REAL(KIND=dp), PARAMETER :: a2 = -1.434297e-06 
     41      REAL(KIND=dp), PARAMETER :: a3 = -7.566349e-09 
     42      REAL(KIND=dp), PARAMETER :: a4 = -8.535585e-06 
     43      REAL(KIND=dp), PARAMETER :: a5 =  3.074672e-08 
     44      REAL(KIND=dp), PARAMETER :: a6 =  1.918639e-08 
     45      REAL(KIND=dp), PARAMETER :: a7 =  1.788718e-10 
    4646 
    4747      zpol = a1 + a2 * ps + a3 * ( pp + ppr ) + a4 * pt & 
     
    5252   END FUNCTION potemp 
    5353 
    54    REAL(KIND=wp) FUNCTION fspott( pft, pfs, pfp ) 
     54   REAL(KIND=dp) FUNCTION fspott( pft, pfs, pfp ) 
    5555      !!---------------------------------------------------------------------- 
    5656      !!                    ***  FUNCTION fspott  *** 
     
    7171 
    7272      !! * Arguments 
    73       REAL(KIND=wp) :: pft   ! in situ temperature in degrees Celsius 
    74       REAL(KIND=wp) :: pfs   ! salinity in psu 
    75       REAL(KIND=wp) :: pfp   ! pressure in bars 
     73      REAL(KIND=dp) :: pft   ! in situ temperature in degrees Celsius 
     74      REAL(KIND=dp) :: pfs   ! salinity in psu 
     75      REAL(KIND=dp) :: pfp   ! pressure in bars 
    7676       
    7777      fspott = & 
     
    9191   END FUNCTION fspott 
    9292 
    93    REAL(KIND=wp) FUNCTION atg( p_s, p_t, p_p ) 
     93   REAL(KIND=dp) FUNCTION atg( p_s, p_t, p_p ) 
    9494      !!---------------------------------------------------------------------- 
    9595      !!                    ***  FUNCTION atg  *** 
     
    115115 
    116116      REAL(KIND=wp), INTENT(IN) :: p_s    ! Salinity in PSU 
    117       REAL(KIND=wp), INTENT(IN) :: p_t    ! Temperature in centigrades 
    118       REAL(KIND=wp), INTENT(IN) :: p_p    ! Pressure in decibars. 
    119  
    120       !! * Local declarations 
    121        
    122       REAL(KIND=wp) :: z_ds 
     117      REAL(KIND=dp), INTENT(IN) :: p_t    ! Temperature in centigrades 
     118      REAL(KIND=dp), INTENT(IN) :: p_p    ! Pressure in decibars. 
     119 
     120      !! * Local declarations 
     121       
     122      REAL(KIND=dp) :: z_ds 
    123123 
    124124      z_ds = p_s - 35.0 
     
    131131   END FUNCTION atg 
    132132       
    133    REAL(KIND=wp) FUNCTION theta( p_s, p_t0, p_p0, p_pr ) 
     133   REAL(KIND=dp) FUNCTION theta( p_s, p_t0, p_p0, p_pr ) 
    134134      !!---------------------------------------------------------------------- 
    135135      !!                    ***  FUNCTION theta  *** 
     
    159159 
    160160      !! * Local declarations 
    161       REAL(KIND=wp) :: z_p 
    162       REAL(KIND=wp) :: z_t 
    163       REAL(KIND=wp) :: z_h 
    164       REAL(KIND=wp) :: z_xk 
    165       REAL(KIND=wp) :: z_q 
     161      REAL(KIND=dp) :: z_p 
     162      REAL(KIND=dp) :: z_t 
     163      REAL(KIND=dp) :: z_h 
     164      REAL(KIND=dp) :: z_xk 
     165      REAL(KIND=dp) :: z_q 
    166166 
    167167      z_p = p_p0 
     
    184184   END FUNCTION theta 
    185185 
    186    REAL(KIND=wp) FUNCTION depth( p_p, p_lat ) 
     186   REAL(KIND=dp) FUNCTION depth( p_p, p_lat ) 
    187187      !!---------------------------------------------------------------------- 
    188188      !!                    ***  FUNCTION depth  *** 
     
    210210 
    211211      !! * Local declarations 
    212       REAL(KIND=wp) :: z_x 
    213       REAL(KIND=wp) :: z_gr 
     212      REAL(KIND=dp) :: z_x 
     213      REAL(KIND=dp) :: z_gr 
    214214       
    215215      z_x = SIN( p_lat / 57.29578 ) 
     
    221221   END FUNCTION depth 
    222222 
    223    REAL(KIND=wp) FUNCTION p_to_dep( p_p, p_lat ) 
     223   REAL(KIND=dp) FUNCTION p_to_dep( p_p, p_lat ) 
    224224      !!---------------------------------------------------------------------- 
    225225      !!                    ***  FUNCTION p_to_dep  *** 
     
    245245 
    246246      !! * Local declarations 
    247       REAL(KIND=wp) :: z_x 
    248       REAL(KIND=wp) :: z_c1 
    249       REAL(KIND=wp) :: z_c2 
     247      REAL(KIND=dp) :: z_x 
     248      REAL(KIND=dp) :: z_c1 
     249      REAL(KIND=dp) :: z_c2 
    250250 
    251251      z_x = SIN( p_lat / 57.29578 ) 
     
    257257   END FUNCTION p_to_dep 
    258258 
    259    REAL(KIND=wp) FUNCTION dep_to_p( p_dep, p_lat ) 
     259   REAL(KIND=dp) FUNCTION dep_to_p( p_dep, p_lat ) 
    260260      !!---------------------------------------------------------------------- 
    261261      !!                    ***  FUNCTION dep_to_p  *** 
     
    280280 
    281281      !! * Local declarations 
    282       REAL(KIND=wp) :: z_x 
    283       REAL(KIND=wp) :: z_c1 
    284       REAL(KIND=wp) :: z_c2 
    285       REAL(KIND=wp) :: z_d 
     282      REAL(KIND=dp) :: z_x 
     283      REAL(KIND=dp) :: z_c1 
     284      REAL(KIND=dp) :: z_c2 
     285      REAL(KIND=dp) :: z_d 
    286286 
    287287      z_x = SIN( p_lat / 57.29578 ) 
Note: See TracChangeset for help on using the changeset viewer.