Changeset 834 for codes/icosagcm/devel
- Timestamp:
- 05/03/19 12:10:30 (5 years ago)
- Location:
- codes/icosagcm/devel/src
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
codes/icosagcm/devel/src/base/earth_const.f90
r732 r834 1 1 MODULE earth_const 2 USE prec 3 USE math_const 4 5 REAL(rstd),SAVE :: radius=6.37122E6 6 REAL(rstd),SAVE :: g=9.80616 2 USE prec, ONLY : rstd 3 IMPLICIT NONE 4 SAVE 5 6 ! init_earth_const is called from icosa_init outside of an OMP PARALLEL section 7 ! hence the variables set here are not THREADPRIVATE 8 9 REAL(rstd) :: g=9.80616 10 REAL(rstd) :: radius=6.37122E6 11 REAL(rstd) :: omega=7.292E-5 12 REAL(rstd) :: scale_factor=1. 7 13 REAL(rstd),PARAMETER :: daysec=86400 8 REAL(rstd),SAVE :: omega=7.292E-5 9 REAL(rstd),SAVE :: kappa=0.2857143 10 REAL(rstd),SAVE :: cpp=1004.70885 11 REAL(rstd),SAVE :: cppv=1860. 12 REAL(rstd),SAVE :: Rv=461.5 13 REAL(rstd),SAVE :: Treff=273. 14 REAL(rstd),SAVE :: preff=101325. 15 REAL(rstd),SAVE :: pa=50000. ! default value set to preff/2 by disvert_std 16 REAL(rstd),SAVE :: scale_height=8000. ! atmospheric scale height (m) 17 REAL(rstd),SAVE :: scale_factor=1. 18 REAL(rstd),SAVE :: gas_constant = 8.3144621 19 REAL(rstd),SAVE :: mu ! molar mass of the atmosphere 14 15 REAL(rstd) :: kappa=0.2857143 16 REAL(rstd) :: cpp=1004.70885 17 REAL(rstd) :: nu=0.35 ! exponent in variable-Cp law Cp=cpp*(T/Treff)^nu 18 REAL(rstd) :: cppv=1860. 19 REAL(rstd) :: Rv=461.5 20 REAL(rstd) :: Treff=273. 21 REAL(rstd) :: preff=101325. 22 REAL(rstd) :: pa=50000. ! default value set to preff/2 by disvert_std 23 REAL(rstd) :: scale_height=8000. ! atmospheric scale height (m) 24 REAL(rstd) :: gas_constant = 8.3144621 25 REAL(rstd) :: Rd, mu ! specific perfect gas constant and molar mass (?) 26 27 INTEGER, PUBLIC, PARAMETER :: thermo_none=-99, thermo_theta=1, thermo_entropy=2, thermo_variable_Cp=3, & 28 thermo_moist=4, thermo_boussinesq=5, thermo_dry=10, thermo_fake_moist=11, thermo_moist_debug=100 29 LOGICAL, PUBLIC :: boussinesq 30 INTEGER, PUBLIC :: caldyn_thermo, physics_thermo 20 31 21 32 CONTAINS 22 33 23 34 SUBROUTINE init_earth_const 24 USE getin_mod 25 IMPLICIT NONE 26 REAL(rstd) :: X=1 27 35 USE getin_mod, ONLY : getin 36 USE grid_param, ONLY : nqdyn 37 USE omp_para, ONLY : is_master 38 USE mpipara, ONLY : is_mpi_root 39 CHARACTER(len=255) :: def 40 41 CALL getin("g",g) 28 42 CALL getin("radius",radius) 29 CALL getin(" g",g)43 CALL getin("omega",omega) 30 44 CALL getin("scale_factor",scale_factor) 31 CALL getin("omega",omega) 32 CALL getin("kappa",kappa) 33 CALL getin("cpp",cpp) 45 radius=radius/scale_factor 46 omega=omega*scale_factor 47 48 CALL getin("kappa",kappa) 49 CALL getin("cpp",cpp) 34 50 CALL getin("cppv",cppv) 35 51 CALL getin("Rv",Rv) 36 CALL getin("preff",preff) 37 CALL getin("Treff",Treff) 52 CALL getin("preff",preff) 53 CALL getin("Treff",Treff) 38 54 CALL getin("scale_height",scale_height) 39 40 mu=kappa/cpp 41 radius=radius/scale_factor 42 omega=omega*scale_factor 43 55 Rd = kappa*cpp ! kappa = Rd/Cp 56 mu = kappa/cpp ! FIXME ?? 57 58 nqdyn=1 59 physics_thermo = thermo_none 60 61 def='theta' 62 CALL getin('thermo',def) 63 SELECT CASE(TRIM(def)) 64 CASE('boussinesq') 65 boussinesq=.TRUE. 66 caldyn_thermo=thermo_boussinesq 67 CASE('theta') 68 caldyn_thermo=thermo_theta 69 physics_thermo=thermo_dry 70 CASE('entropy') 71 caldyn_thermo=thermo_entropy 72 physics_thermo=thermo_dry 73 CASE('variable_Cp') 74 caldyn_thermo=thermo_variable_Cp 75 physics_thermo=thermo_variable_Cp 76 CALL getin("nu",nu) 77 CASE('theta_fake_moist') 78 caldyn_thermo=thermo_theta 79 physics_thermo=thermo_fake_moist 80 CASE('entropy_fake_moist') 81 caldyn_thermo=thermo_entropy 82 physics_thermo=thermo_fake_moist 83 CASE('moist') 84 caldyn_thermo=thermo_moist_debug 85 physics_thermo=thermo_moist 86 nqdyn = 2 87 CASE DEFAULT 88 IF (is_mpi_root) PRINT *,'Bad selector for variable caldyn_thermo : <', & 89 TRIM(def),'> options are <theta>, <entropy>' 90 STOP 91 END SELECT 92 93 IF(is_master) THEN 94 SELECT CASE(caldyn_thermo) 95 CASE(thermo_theta) 96 PRINT *, 'caldyn_thermo = thermo_theta' 97 CASE(thermo_entropy) 98 PRINT *, 'caldyn_thermo = thermo_entropy' 99 CASE(thermo_moist_debug) 100 PRINT *, 'caldyn_thermo = thermo_moist_debug' 101 CASE DEFAULT 102 STOP 103 END SELECT 104 105 SELECT CASE(physics_thermo) 106 CASE(thermo_dry) 107 PRINT *, 'physics_thermo = thermo_dry' 108 CASE(thermo_fake_moist) 109 PRINT *, 'physics_thermo = thermo_fake_moist' 110 CASE(thermo_moist) 111 PRINT *, 'physics_thermo = thermo_moist' 112 END SELECT 113 114 END IF 115 44 116 END SUBROUTINE init_earth_const 45 46 117 47 118 END MODULE earth_const -
codes/icosagcm/devel/src/dynamics/caldyn_vars.f90
r827 r834 1 1 MODULE caldyn_vars_mod 2 USE icosa2 USE field_mod 3 3 USE transfert_mod 4 4 IMPLICIT NONE … … 8 8 INTEGER, PUBLIC, PARAMETER :: conserv_energy=1, conserv_enstrophy=2, conserv_gassmann=3, & 9 9 kinetic_trisk=1, kinetic_consistent=2, & 10 caldyn_vert_noncons=1, caldyn_vert_cons=2, & 11 thermo_none=-99, thermo_theta=1, thermo_entropy=2, & 12 thermo_moist=3, thermo_boussinesq=4, thermo_dry=10, thermo_fake_moist=11, thermo_moist_debug=100 10 caldyn_vert_noncons=1, caldyn_vert_cons=2 13 11 14 INTEGER, PUBLIC :: caldyn_conserv, caldyn_kinetic, caldyn_ thermo, caldyn_vert_variant, physics_thermo15 !$OMP THREADPRIVATE(caldyn_conserv, caldyn_kinetic, caldyn_ thermo, caldyn_vert_variant, physics_thermo)12 INTEGER, PUBLIC :: caldyn_conserv, caldyn_kinetic, caldyn_vert_variant 13 !$OMP THREADPRIVATE(caldyn_conserv, caldyn_kinetic, caldyn_vert_variant) 16 14 17 LOGICAL, PUBLIC :: boussinesq,hydrostatic18 !$OMP THREADPRIVATE( boussinesq,hydrostatic)15 LOGICAL, PUBLIC :: hydrostatic 16 !$OMP THREADPRIVATE(hydrostatic) 19 17 20 18 LOGICAL, PUBLIC :: dysl, dysl_geopot, dysl_pvort_only, dysl_caldyn_fast, dysl_caldyn_coriolis, dysl_slow_hydro, dysl_caldyn_vert -
codes/icosagcm/devel/src/initial/etat0_dcmip4.f90
r531 r834 1 1 MODULE etat0_dcmip4_mod 2 USE icosa 2 USE icosa, ignore_Rd=>Rd ! avoid name conflict with Rd from earth_const 3 3 IMPLICIT NONE 4 4 PRIVATE -
codes/icosagcm/devel/src/initial/etat0_dcmip5.f90
r531 r834 1 1 MODULE etat0_dcmip5_mod 2 USE icosa 2 USE icosa, ignore_Rd=>Rd ! avoid name conflict with Rd from earth_const 3 3 IMPLICIT NONE 4 4 PRIVATE -
codes/icosagcm/devel/src/initial/etat0_jablonowsky06.f90
r531 r834 1 1 MODULE etat0_jablonowsky06_mod 2 USE icosa 3 PRIVATE 2 USE icosa, ignore_Rd=>Rd ! avoid name conflict with Rd from earth_const PRIVATE 4 3 REAL(rstd),PARAMETER :: eta0=0.252 5 4 REAL(rstd),PARAMETER :: etat=0.2
Note: See TracChangeset
for help on using the changeset viewer.