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/DOM/phycst.F90 – 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/DOM/phycst.F90

    r14072 r15540  
    2323   PUBLIC   phy_cst     ! routine called by inipar.F90 
    2424 
    25    REAL(wp), PUBLIC ::   rpi      = 3.141592653589793_wp             !: pi 
    26    REAL(wp), PUBLIC ::   rad      = 3.141592653589793_wp / 180._wp   !: conversion from degre into radian 
    27    REAL(wp), PUBLIC ::   rsmall   = 0.5 * EPSILON( 1.e0 )            !: smallest real computer value 
     25   REAL(dp), PUBLIC ::   rpi      = 3.141592653589793_wp             !: pi 
     26   REAL(dp), PUBLIC ::   rad      = 3.141592653589793_wp / 180._wp   !: conversion from degre into radian 
     27   REAL(dp), PUBLIC ::   rsmall   = 0.5 * EPSILON( 1.e0 )            !: smallest real computer value 
    2828 
    29    REAL(wp), PUBLIC ::   rday     = 24.*60.*60.      !: day                                [s] 
    30    REAL(wp), PUBLIC ::   rsiyea                      !: sideral year                       [s] 
    31    REAL(wp), PUBLIC ::   rsiday                      !: sideral day                        [s] 
    32    REAL(wp), PUBLIC ::   raamo    =  12._wp          !: number of months in one year 
    33    REAL(wp), PUBLIC ::   rjjhh    =  24._wp          !: number of hours in one day 
    34    REAL(wp), PUBLIC ::   rhhmm    =  60._wp          !: number of minutes in one hour 
    35    REAL(wp), PUBLIC ::   rmmss    =  60._wp          !: number of seconds in one minute 
    36    REAL(wp), PUBLIC ::   omega                       !: earth rotation parameter           [s-1] 
    37    REAL(wp), PUBLIC ::   ra       = 6371229._wp      !: earth radius                       [m] 
    38    REAL(wp), PUBLIC ::   grav     = 9.80665_wp       !: gravity                            [m/s2] 
    39    REAL(wp), PUBLIC ::   rt0      = 273.15_wp        !: freezing point of fresh water [Kelvin] 
     29   REAL(dp), PUBLIC ::   rday     = 24.*60.*60.      !: day                                [s] 
     30   REAL(dp), PUBLIC ::   rsiyea                      !: sideral year                       [s] 
     31   REAL(dp), PUBLIC ::   rsiday                      !: sideral day                        [s] 
     32   REAL(dp), PUBLIC ::   raamo    =  12._wp          !: number of months in one year 
     33   REAL(dp), PUBLIC ::   rjjhh    =  24._wp          !: number of hours in one day 
     34   REAL(dp), PUBLIC ::   rhhmm    =  60._wp          !: number of minutes in one hour 
     35   REAL(dp), PUBLIC ::   rmmss    =  60._wp          !: number of seconds in one minute 
     36   REAL(dp), PUBLIC ::   omega                       !: earth rotation parameter           [s-1] 
     37   REAL(dp), PUBLIC ::   ra       = 6371229._wp      !: earth radius                       [m] 
     38   REAL(dp), PUBLIC ::   grav     = 9.80665_wp       !: gravity                            [m/s2] 
     39   REAL(dp), PUBLIC ::   rt0      = 273.15_wp        !: freezing point of fresh water [Kelvin] 
    4040 
    41    REAL(wp), PUBLIC ::   rho0                        !: volumic mass of reference     [kg/m3] 
    42    REAL(wp), PUBLIC ::   r1_rho0                     !: = 1. / rho0                   [m3/kg] 
    43    REAL(wp), PUBLIC ::   rcp                         !: ocean specific heat           [J/Kelvin] 
    44    REAL(wp), PUBLIC ::   r1_rcp                      !: = 1. / rcp                    [Kelvin/J] 
    45    REAL(wp), PUBLIC ::   rho0_rcp                    !: = rho0 * rcp 
    46    REAL(wp), PUBLIC ::   r1_rho0_rcp                 !: = 1. / ( rho0 * rcp ) 
     41   REAL(dp), PUBLIC ::   rho0                        !: volumic mass of reference     [kg/m3] 
     42   REAL(dp), PUBLIC ::   r1_rho0                     !: = 1. / rho0                   [m3/kg] 
     43   REAL(dp), PUBLIC ::   rcp                         !: ocean specific heat           [J/Kelvin] 
     44   REAL(dp), PUBLIC ::   r1_rcp                      !: = 1. / rcp                    [Kelvin/J] 
     45   REAL(dp), PUBLIC ::   rho0_rcp                    !: = rho0 * rcp 
     46   REAL(dp), PUBLIC ::   r1_rho0_rcp                 !: = 1. / ( rho0 * rcp ) 
    4747 
    48    REAL(wp), PUBLIC ::   emic     =    0.97_wp       !: emissivity of snow or ice (not used?) 
     48   REAL(dp), PUBLIC ::   emic     =    0.97_wp       !: emissivity of snow or ice (not used?) 
    4949 
    50    REAL(wp), PUBLIC ::   sice     =    6.0_wp        !: salinity of ice (for pisces)          [psu] 
    51    REAL(wp), PUBLIC ::   soce     =   34.7_wp        !: salinity of sea (for pisces and isf)  [psu] 
    52    REAL(wp), PUBLIC ::   rLevap   =    2.5e+6_wp     !: latent heat of evaporation (water) 
    53    REAL(wp), PUBLIC ::   vkarmn   =    0.4_wp        !: von Karman constant 
    54    REAL(wp), PUBLIC ::   vkarmn2  =    0.4_wp*0.4_wp !: square of von Karman constant 
    55    REAL(wp), PUBLIC ::   stefan   =    5.67e-8_wp    !: Stefan-Boltzmann constant 
     50   REAL(dp), PUBLIC ::   sice     =    6.0_wp        !: salinity of ice (for pisces)          [psu] 
     51   REAL(dp), PUBLIC ::   soce     =   34.7_wp        !: salinity of sea (for pisces and isf)  [psu] 
     52   REAL(dp), PUBLIC ::   rLevap   =    2.5e+6_wp     !: latent heat of evaporation (water) 
     53   REAL(dp), PUBLIC ::   vkarmn   =    0.4_wp        !: von Karman constant 
     54   REAL(dp), PUBLIC ::   vkarmn2  =    0.4_wp*0.4_wp !: square of von Karman constant 
     55   REAL(dp), PUBLIC ::   stefan   =    5.67e-8_wp    !: Stefan-Boltzmann constant 
    5656 
    57    REAL(wp), PUBLIC ::   rhos     =  330._wp         !: volumic mass of snow                                  [kg/m3] 
    58    REAL(wp), PUBLIC ::   rhoi     =  917._wp         !: volumic mass of sea ice                               [kg/m3] 
    59    REAL(wp), PUBLIC ::   rhow     = 1000._wp         !: volumic mass of freshwater in melt ponds              [kg/m3] 
    60    REAL(wp), PUBLIC ::   rcnd_i   =    2.034396_wp   !: thermal conductivity of fresh ice                     [W/m/K] 
    61    REAL(wp), PUBLIC ::   rcpi     = 2067.0_wp        !: specific heat of fresh ice                            [J/kg/K] 
    62    REAL(wp), PUBLIC ::   rLsub    =    2.834e+6_wp   !: pure ice latent heat of sublimation                   [J/kg] 
    63    REAL(wp), PUBLIC ::   rLfus    =    0.334e+6_wp   !: latent heat of fusion of fresh ice                    [J/kg] 
    64    REAL(wp), PUBLIC ::   rTmlt    =    0.054_wp      !: decrease of seawater meltpoint with salinity 
     57   REAL(dp), PUBLIC ::   rhos     =  330._wp         !: volumic mass of snow                                  [kg/m3] 
     58   REAL(dp), PUBLIC ::   rhoi     =  917._wp         !: volumic mass of sea ice                               [kg/m3] 
     59   REAL(dp), PUBLIC ::   rhow     = 1000._wp         !: volumic mass of freshwater in melt ponds              [kg/m3] 
     60   REAL(dp), PUBLIC ::   rcnd_i   =    2.034396_wp   !: thermal conductivity of fresh ice                     [W/m/K] 
     61   REAL(dp), PUBLIC ::   rcpi     = 2067.0_wp        !: specific heat of fresh ice                            [J/kg/K] 
     62   REAL(dp), PUBLIC ::   rLsub    =    2.834e+6_wp   !: pure ice latent heat of sublimation                   [J/kg] 
     63   REAL(dp), PUBLIC ::   rLfus    =    0.334e+6_wp   !: latent heat of fusion of fresh ice                    [J/kg] 
     64   REAL(dp), PUBLIC ::   rTmlt    =    0.054_wp      !: decrease of seawater meltpoint with salinity 
    6565 
    66    REAL(wp), PUBLIC ::   r1_rhoi                     !: 1 / rhoi 
    67    REAL(wp), PUBLIC ::   r1_rhos                     !: 1 / rhos 
    68    REAL(wp), PUBLIC ::   r1_rcpi                     !: 1 / rcpi 
     66   REAL(dp), PUBLIC ::   r1_rhoi                     !: 1 / rhoi 
     67   REAL(dp), PUBLIC ::   r1_rhos                     !: 1 / rhos 
     68   REAL(dp), PUBLIC ::   r1_rcpi                     !: 1 / rcpi 
    6969 
    7070   !!---------------------------------------------------------------------- 
Note: See TracChangeset for help on using the changeset viewer.