Skip to content
Snippets Groups Projects
Commit ae80c813 authored by RIETTE Sébastien's avatar RIETTE Sébastien Committed by RODIER Quentin
Browse files

Sébastien Riette 24/01/2022 ini_cst

parent 4d056908
No related branches found
No related tags found
No related merge requests found
...@@ -5,4 +5,5 @@ SAVE ...@@ -5,4 +5,5 @@ SAVE
INTEGER, PARAMETER :: MNHREAL = JPRB INTEGER, PARAMETER :: MNHREAL = JPRB
INTEGER, PARAMETER :: MNHREAL64 = JPRD INTEGER, PARAMETER :: MNHREAL64 = JPRD
INTEGER, PARAMETER :: MNHREAL32 = JPRM
ENDMODULE MODD_PRECISION ENDMODULE MODD_PRECISION
...@@ -129,3 +129,6 @@ phyex/turb/bl_depth_diag_3d.F90 ...@@ -129,3 +129,6 @@ phyex/turb/bl_depth_diag_3d.F90
phyex/turb/bl_depth_diag_1d.F90 phyex/turb/bl_depth_diag_1d.F90
phyex/turb/modi_compute_function_thermo_mf.F90 phyex/turb/modi_compute_function_thermo_mf.F90
phyex/turb/compute_function_thermo_mf.F90 phyex/turb/compute_function_thermo_mf.F90
phyex/micro/modd_cst.F90
phyex/micro/modi_ini_cst.F90
phyex/micro/ini_cst.F90
! ######spl !MNH_LIC Copyright 1994-2021 CNRS, Meteo-France and Universite Paul Sabatier
!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
!MNH_LIC for details. version 1.
! ##################
SUBROUTINE INI_CST SUBROUTINE INI_CST
USE PARKIND1, ONLY : JPRB
USE YOMHOOK , ONLY : LHOOK, DR_HOOK
! ################## ! ##################
! !
!!**** *INI_CST * - routine to initialize the module MODD_CST !!**** *INI_CST * - routine to initialize the module MODD_CST
...@@ -19,7 +21,6 @@ ...@@ -19,7 +21,6 @@
!! !!
!! EXTERNAL !! EXTERNAL
!! -------- !! --------
!! FMLOOK : to retrieve logical unit number associated to a file
!! !!
!! IMPLICIT ARGUMENTS !! IMPLICIT ARGUMENTS
!! ------------------ !! ------------------
...@@ -43,8 +44,12 @@ ...@@ -43,8 +44,12 @@
!! V. Masson 05/10/98 add XRHOLI !! V. Masson 05/10/98 add XRHOLI
!! C. Mari 31/10/00 add NDAYSEC !! C. Mari 31/10/00 add NDAYSEC
!! V. Masson 01/03/03 add XCONDI !! V. Masson 01/03/03 add XCONDI
!! J. Escobar 28/03/2014 for pb with emissivity/aerosol reset XMNH_TINY=1.0e-80 in real8 case
!! R. El Khatib 04/08/14 add pre-computed quantities !! R. El Khatib 04/08/14 add pre-computed quantities
!! P. Marguinaud 04/10/16 Port to single precision !! P. Marguinaud 04/10/16 Port to single precision
!! J.Escobar : 10/2017 : for real*4 , add XMNH_HUGE_12_LOG
!! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
!! J.Escobar : 5/10/2018 : for real*4 ,higher value for XEPS_DT = 1.5e-4
!! !!
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
! !
...@@ -52,6 +57,10 @@ ...@@ -52,6 +57,10 @@
! ------------ ! ------------
! !
USE MODD_CST USE MODD_CST
USE MODD_PRECISION, ONLY: MNHREAL, MNHREAL32, MNHREAL64
USE MODE_MSG, ONLY: PRINT_MSG, NVERB_FATAL
USE PARKIND1, ONLY : JPRB
USE YOMHOOK , ONLY : LHOOK, DR_HOOK
! !
IMPLICIT NONE IMPLICIT NONE
! !
...@@ -108,8 +117,11 @@ XTH00 = 300. ...@@ -108,8 +117,11 @@ XTH00 = 300.
!* 5. RADIATION CONSTANTS !* 5. RADIATION CONSTANTS
! ------------------- ! -------------------
! !
XSTEFAN = REAL (2._8* REAL (XPI, 8)**5 * REAL (XBOLTZ, 8)**4 / & ! Original: XSTEFAN = 2.* XPI**5 * XBOLTZ**4 / (15.* XLIGHTSPEED**2 * XPLANCK**3)
& (15._8* REAL (XLIGHTSPEED, 8)**2 * REAL (XPLANCK, 8)**3)) ! Juan: XSTEFAN = ( 2.* XPI**5 / 15. ) * ( (XBOLTZ / XPLANCK) * XBOLTZ ) * (XBOLTZ/(XLIGHTSPEED*XPLANCK))**2
! Philippe Marguinaud: XSTEFAN = REAL (2._8* REAL (XPI, 8)**5 * REAL (XBOLTZ, 8)**4 / (15._8* REAL (XLIGHTSPEED, 8)**2 * REAL (XPLANCK, 8)**3))
XSTEFAN = REAL (2._MNHREAL64* REAL (XPI, MNHREAL64)**5 * REAL (XBOLTZ, MNHREAL64)**4 / &
& (15._MNHREAL64* REAL (XLIGHTSPEED, MNHREAL64)**2 * REAL (XPLANCK, MNHREAL64)**3))
XI0 = 1370. XI0 = 1370.
! !
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
...@@ -152,6 +164,30 @@ XBETAOC= 7.7475E-4 ...@@ -152,6 +164,30 @@ XBETAOC= 7.7475E-4
RDSRV = XRD/XRV RDSRV = XRD/XRV
RDSCPD = XRD/XCPD RDSCPD = XRD/XCPD
RINVXP00 = 1./XP00 RINVXP00 = 1./XP00
!
! Some machine precision value depending of real4/8 use
!
XMNH_EPSILON = EPSILON (XMNH_EPSILON )
XMNH_HUGE = HUGE (XMNH_HUGE )
XMNH_HUGE_12_LOG = LOG ( SQRT(XMNH_HUGE) )
IF (MNHREAL == MNHREAL64) THEN
XMNH_TINY = 1.0e-80_MNHREAL
XEPS_DT = 1.0e-5_MNHREAL
XRES_FLAT_CART = 1.0e-12_MNHREAL
XRES_OTHER = 1.0e-9_MNHREAL
XRES_PREP = 1.0e-8_MNHREAL
ELSEIF (MNHREAL == MNHREAL32) THEN
XMNH_TINY = TINY (XMNH_TINY )
XEPS_DT = 1.5e-4_MNHREAL
XRES_FLAT_CART = 1.0e-12_MNHREAL
XRES_OTHER = 1.0e-7_MNHREAL
XRES_PREP = 1.0e-4_MNHREAL
ELSE
CALL PRINT_MSG(NVERB_FATAL, 'GEN', 'INI_CST', 'Invalid MNH_REAL')
ENDIF
XMNH_TINY_12 = SQRT (XMNH_TINY )
!
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
! !
IF (LHOOK) CALL DR_HOOK('INI_CST',1,ZHOOK_HANDLE) IF (LHOOK) CALL DR_HOOK('INI_CST',1,ZHOOK_HANDLE)
......
...@@ -36,6 +36,7 @@ ...@@ -36,6 +36,7 @@
!! V. Masson 05/10/98 add XRHOLI !! V. Masson 05/10/98 add XRHOLI
!! C. Mari 31/10/00 add NDAYSEC !! C. Mari 31/10/00 add NDAYSEC
!! V. Masson 01/03/03 add conductivity of ice !! V. Masson 01/03/03 add conductivity of ice
!! R. El Khatib 04/08/14 add pre-computed quantities
!! J.Escobar : 10/2017 : for real*4 , add XMNH_HUGE_12_LOG !! J.Escobar : 10/2017 : for real*4 , add XMNH_HUGE_12_LOG
!! J.L. Redelsperger 03/2021 add constants for ocean penetrating solar !! J.L. Redelsperger 03/2021 add constants for ocean penetrating solar
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
...@@ -85,7 +86,7 @@ REAL,SAVE :: XALPHAOC ! thermal expansion coefficient for ocean (K-1) ...@@ -85,7 +86,7 @@ REAL,SAVE :: XALPHAOC ! thermal expansion coefficient for ocean (K-1)
REAL,SAVE :: XBETAOC ! Haline contraction coeff for ocean (S-1) REAL,SAVE :: XBETAOC ! Haline contraction coeff for ocean (S-1)
REAL,SAVE :: XTH00 ! reference value for the potential temperature REAL,SAVE :: XTH00 ! reference value for the potential temperature
REAL,SAVE :: XTH00OCEAN ! Ref value for pot temp in ocean model REAL,SAVE :: XTH00OCEAN ! Ref value for pot temp in ocean model
REAL,SAVE :: XSA00OCEAN ! Ref value for SAlinity in ocean model REAL,SAVE :: XSA00OCEAN ! Ref value for SAlinity in ocean model
REAL,SAVE :: XROC=0.69! 3 coeffs for SW penetration in Ocean (Hoecker et al) REAL,SAVE :: XROC=0.69! 3 coeffs for SW penetration in Ocean (Hoecker et al)
REAL,SAVE :: XD1=1.1 REAL,SAVE :: XD1=1.1
REAL,SAVE :: XD2=23. REAL,SAVE :: XD2=23.
...@@ -98,6 +99,9 @@ REAL,SAVE :: XRHOLI ! Volumic mass of liquid water ...@@ -98,6 +99,9 @@ REAL,SAVE :: XRHOLI ! Volumic mass of liquid water
! !
INTEGER, SAVE :: NDAYSEC ! Number of seconds in a day INTEGER, SAVE :: NDAYSEC ! Number of seconds in a day
! !
REAL,SAVE :: RDSRV ! XRD/XRV
REAL,SAVE :: RDSCPD ! XRD/XCPD
REAL,SAVE :: RINVXP00 ! 1./XP00
! !
! Some machine precision value depending of real4/8 use ! Some machine precision value depending of real4/8 use
! !
......
File moved
!MNH_LIC Copyright 1994-2021 CNRS, Meteo-France and Universite Paul Sabatier
!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
!MNH_LIC for details. version 1.
!-----------------------------------------------------------------
! ###################
MODULE MODI_INI_CST
! ###################
!
INTERFACE
!
SUBROUTINE INI_CST
END SUBROUTINE INI_CST
!
END INTERFACE
!
END MODULE MODI_INI_CST
!
!
!
! ##################
SUBROUTINE INI_CST
! ##################
!
!!**** *INI_CST * - routine to initialize the module MODD_CST
!!
!! PURPOSE
!! -------
! The purpose of this routine is to initialize the physical constants
! stored in module MODD_CST.
!
!
!!** METHOD
!! ------
!! The physical constants are set to their numerical values
!!
!!
!! EXTERNAL
!! --------
!!
!! IMPLICIT ARGUMENTS
!! ------------------
!! Module MODD_CST : contains physical constants
!!
!! REFERENCE
!! ---------
!! Book2 of the documentation (module MODD_CST, routine INI_CST)
!!
!!
!! AUTHOR
!! ------
!! V. Ducrocq * Meteo France *
!!
!! MODIFICATIONS
!! -------------
!! Original 18/05/94
!! J. Stein 02/01/95 add the volumic mass of liquid water
!! J.-P. Pinty 13/12/95 add the water vapor pressure over solid ice
!! J. Stein 29/06/97 add XTH00
!! V. Masson 05/10/98 add XRHOLI
!! C. Mari 31/10/00 add NDAYSEC
!! V. Masson 01/03/03 add XCONDI
!! J. Escobar 28/03/2014 for pb with emissivity/aerosol reset XMNH_TINY=1.0e-80 in real8 case
!! J.Escobar : 10/2017 : for real*4 , add XMNH_HUGE_12_LOG
!! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
!! J.Escobar : 5/10/2018 : for real*4 ,higher value for XEPS_DT = 1.5e-4
!!
!-------------------------------------------------------------------------------
!
!* 0. DECLARATIONS
! ------------
!
USE MODD_CST
use modd_precision, only: MNHREAL
!
IMPLICIT NONE
!
!-------------------------------------------------------------------------------
!
!* 1. FUNDAMENTAL CONSTANTS
! ---------------------
!
XPI = 2.*ASIN(1.)
XKARMAN = 0.4
XLIGHTSPEED = 299792458.
XPLANCK = 6.6260755E-34
XBOLTZ = 1.380658E-23
XAVOGADRO = 6.0221367E+23
!
!-------------------------------------------------------------------------------
!
!* 2. ASTRONOMICAL CONSTANTS
! ----------------------
!
XDAY = 86400.
XSIYEA = 365.25*XDAY*2.*XPI/ 6.283076
XSIDAY = XDAY/(1.+XDAY/XSIYEA)
XOMEGA = 2.*XPI/XSIDAY
NDAYSEC = 24*3600 ! Number of seconds in a day
!
!-------------------------------------------------------------------------------!
!
!
!* 3. TERRESTRIAL GEOIDE CONSTANTS
! ----------------------------
!
XRADIUS = 6371229.
XG = 9.80665
!
!-------------------------------------------------------------------------------
!
!* 4. REFERENCE PRESSURE
! -------------------
!
! Ocean model cst same as in 1D/CMO SURFEX
! values used in ini_cst to overwrite XP00 and XTH00
XRH00OCEAN =1024.
XTH00OCEAN = 286.65
XSA00OCEAN= 32.6
XP00OCEAN = 201.E5
!Atmospheric model
XP00 = 1.E5
XTH00 = 300.
!-------------------------------------------------------------------------------
!
!* 5. RADIATION CONSTANTS
! -------------------
!
!JUAN OVERFLOW XSTEFAN = 2.* XPI**5 * XBOLTZ**4 / (15.* XLIGHTSPEED**2 * XPLANCK**3)
XSTEFAN = ( 2.* XPI**5 / 15. ) * ( (XBOLTZ / XPLANCK) * XBOLTZ ) * (XBOLTZ/(XLIGHTSPEED*XPLANCK))**2
XI0 = 1370.
!
!-------------------------------------------------------------------------------
!
!* 6. THERMODYNAMIC CONSTANTS
! -----------------------
!
XMD = 28.9644E-3
XMV = 18.0153E-3
XRD = XAVOGADRO * XBOLTZ / XMD
XRV = XAVOGADRO * XBOLTZ / XMV
XEPSILO= XMV/XMD
XCPD = 7.* XRD /2.
XCPV = 4.* XRV
XRHOLW = 1000.
XRHOLI = 900.
XCONDI = 2.22
XCL = 4.218E+3
XCI = 2.106E+3
XTT = 273.16
XLVTT = 2.5008E+6
XLSTT = 2.8345E+6
XLMTT = XLSTT - XLVTT
XESTT = 611.14
XGAMW = (XCL - XCPV) / XRV
XBETAW = (XLVTT/XRV) + (XGAMW * XTT)
XALPW = LOG(XESTT) + (XBETAW /XTT) + (XGAMW *LOG(XTT))
XGAMI = (XCI - XCPV) / XRV
XBETAI = (XLSTT/XRV) + (XGAMI * XTT)
XALPI = LOG(XESTT) + (XBETAI /XTT) + (XGAMI *LOG(XTT))
! Values identical to ones used in CMO1D in SURFEX /could be modified
! Coefficient of thermal expansion of water (K-1)
XALPHAOC = 1.9E-4
! Coeff of Haline contraction coeff (S-1)
XBETAOC= 7.7475E-4
!
! Some machine precision value depending of real4/8 use
!
XMNH_EPSILON = EPSILON (XMNH_EPSILON )
XMNH_HUGE = HUGE (XMNH_HUGE )
XMNH_HUGE_12_LOG = LOG ( SQRT(XMNH_HUGE) )
#if (MNH_REAL == 8)
XMNH_TINY = 1.0e-80_MNHREAL
XEPS_DT = 1.0e-5_MNHREAL
XRES_FLAT_CART = 1.0e-12_MNHREAL
XRES_OTHER = 1.0e-9_MNHREAL
XRES_PREP = 1.0e-8_MNHREAL
#elif (MNH_REAL == 4)
XMNH_TINY = TINY (XMNH_TINY )
XEPS_DT = 1.5e-4_MNHREAL
XRES_FLAT_CART = 1.0e-12_MNHREAL
XRES_OTHER = 1.0e-7_MNHREAL
XRES_PREP = 1.0e-4_MNHREAL
#else
#error "Invalid MNH_REAL"
#endif
XMNH_TINY_12 = SQRT (XMNH_TINY )
!
!-------------------------------------------------------------------------------
!
END SUBROUTINE INI_CST
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment