Changeset 3901 for branches/2013/dev_r3853_CNRS9_ConfSetting
- Timestamp:
- 2013-05-03T14:35:21+02:00 (11 years ago)
- Location:
- branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM
- Files:
-
- 2 added
- 104 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/CONFIG/ORCA2_OFF_PISCES/EXP00/namelist_cfg
r3875 r3901 194 194 sn_ubl = 'dyna_grid_U' , 120 , 'sobblcox' , .true. , .true. , 'yearly' , '' , '' 195 195 sn_vbl = 'dyna_grid_V' , 120 , 'sobblcoy' , .true. , .true. , 'yearly' , '' , '' 196 sn_ahu = 'dyna_grid_U' , 120 , 'vozoahtu' , .true. , .true. , 'yearly' , '' , '' 197 sn_ahv = 'dyna_grid_V' , 120 , 'vomeahtv' , .true. , .true. , 'yearly' , '' , '' 198 sn_ahw = 'dyna_grid_W' , 120 , 'voveahtz' , .true. , .true. , 'yearly' , '' , '' 199 sn_eiu = 'dyna_grid_U' , 120 , 'vozoaeiu' , .true. , .true. , 'yearly' , '' , '' 200 sn_eiv = 'dyna_grid_V' , 120 , 'vomeaeiv' , .true. , .true. , 'yearly' , '' , '' 196 201 sn_eiw = 'dyna_grid_W' , 120 , 'soleaeiw' , .true. , .true. , 'yearly' , '' , '' 197 202 ! -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/CONFIG/SHARED/namelist_ref
r3875 r3901 529 529 rn_bfri2 = 1.e-3 ! bottom drag coefficient (non linear case) 530 530 rn_bfeb2 = 2.5e-3 ! bottom turbulent kinetic energy background (m2/s2) 531 rn_bfrz0 = 3.e-3 ! bottom roughness for loglayer bfr coeff 531 532 ln_bfr2d = .false. ! horizontal variation of the bottom friction coef (read a 2D mask file ) 532 533 rn_bfrien = 50. ! local multiplying factor of bfr (ln_bfr2d=T) … … 604 605 rn_ahtb_0 = 0. ! background eddy diffusivity for ldf_iso [m2/s] 605 606 ! (normally=0; not used with Griffies) 607 rn_slpmax = 0.01 ! slope limit 608 rn_chsmag = 1. ! multiplicative factor in Smagorinsky diffusivity 609 rn_smsh = 1. ! Smagorinsky diffusivity: = 0 - use only sheer 610 rn_aht_m = 2000. ! upper limit or stability criteria for lateral eddy diffusivity (m2/s) 606 611 / 607 612 !----------------------------------------------------------------------- … … 678 683 rn_ahmb_0 = 0. ! background eddy viscosity for ldf_iso [m2/s] 679 684 rn_ahm_0_blp = 0. ! horizontal bilaplacian eddy viscosity [m4/s] 685 rn_cmsmag_1 = 3. ! constant in laplacian Smagorinsky viscosity 686 rn_cmsmag_2 = 3 ! constant in bilaplacian Smagorinsky viscosity 687 rn_cmsh = 1. ! 1 or 0 , if 0 -use only shear for Smagorinsky viscosity 688 rn_ahm_m_blp = -1.e12 ! upper limit for bilap abs(ahm) < min( dx^4/128rdt, rn_ahm_m_blp) 689 rn_ahm_m_lap = 40000. ! upper limit for lap ahm < min(dx^2/16rdt, rn_ahm_m_lap) 680 690 / 681 691 … … 728 738 rn_emin = 1.e-6 ! minimum value of tke [m2/s2] 729 739 rn_emin0 = 1.e-4 ! surface minimum value of tke [m2/s2] 740 rn_bshear = 1.e-20 ! background shear (>0) currently a numerical threshold (do not change it) 730 741 nn_mxl = 2 ! mixing length: = 0 bounded by the distance to surface and bottom 731 742 ! = 1 bounded by the local vertical scale factor -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/CONFIG/SHARED/namelist_top_ref
r3875 r3901 98 98 ln_diatrc = .true. ! save additional diag. (T) or not (F) 99 99 nn_writedia = 5475 ! time step frequency for diagnostics 100 nn_writebio = 10 !: frequency of biological outputs 100 101 / -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/CONFIG/cfg.txt
r3875 r3901 1 1 ORCA2_LIM3 OPA_SRC LIM_SRC_3 2 AMM12 OPA_SRC 3 GYRE OPA_SRC 4 ORCA2_SAS_LIM OPA_SRC SAS_SRC LIM_SRC_2 NST_SRC 5 ORCA2_LIM_CFC_C14b OPA_SRC LIM_SRC_2 NST_SRC TOP_SRC 6 O2L3 OPA_SRC LIM_SRC_3 TOP_SRC 2 7 ORCA2_LIM OPA_SRC LIM_SRC_2 NST_SRC 3 8 ORCA2_LIM_PISCES OPA_SRC LIM_SRC_2 NST_SRC TOP_SRC 4 AMM12 OPA_SRC5 9 GYRE_PISCES OPA_SRC TOP_SRC 6 GYRE OPA_SRC7 10 GYRE_BFM OPA_SRC TOP_SRC 8 O2L3 OPA_SRC LIM_SRC_3 TOP_SRC9 11 ORCA2_OFF_PISCES OPA_SRC OFF_SRC TOP_SRC 10 ORCA2_SAS_LIM OPA_SRC SAS_SRC LIM_SRC_2 NST_SRC11 ORCA2_LIM_CFC_C14b OPA_SRC LIM_SRC_2 NST_SRC TOP_SRC -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/LIM_SRC_2/ice_2.F90
r3625 r3901 22 22 REAL(wp), PUBLIC :: rdt_ice !: ice time step 23 23 24 ! 25 CHARACTER(len=32) , PUBLIC :: cn_icerst_in = "restart_ice_in"!: suffix of ice restart name (input)26 CHARACTER(len=32) , PUBLIC :: cn_icerst_out = "restart_ice"!: suffix of ice restart name (output)27 LOGICAL , PUBLIC :: ln_limdyn = .TRUE.!: flag for ice dynamics (T) or not (F)28 LOGICAL , PUBLIC :: ln_limdmp = .FALSE.!: Ice damping29 LOGICAL , PUBLIC :: ln_nicep = .TRUE. !: flag grid points output (T) or not (F)30 REAL(wp) , PUBLIC :: h sndif = 0._wp !: snowtemp. computation (0) or not (9999)31 REAL(wp) , PUBLIC :: hicdif = 0._wp !: ice temp. computation (0) or not (9999)32 REAL(wp), DIMENSION(2), PUBLIC :: acrit = (/ 1.e-6_wp , 1.e-6_wp /) !: minimum lead fraction in the 2 hemisphere33 34 ! 35 INTEGER , PUBLIC :: nbiter = 1!: number of sub-time steps for relaxation36 INTEGER , PUBLIC :: nbitdr = 250!: maximum number of iterations for relaxation37 INTEGER , PUBLIC :: nevp = 360!: number of EVP subcycling iterations38 INTEGER , PUBLIC :: telast = 3600!: timescale for EVP elastic waves39 REAL(wp), PUBLIC :: epsd = 1.0e-20_wp!: tolerance parameter for dynamic40 REAL(wp), PUBLIC :: alpha = 0.5_wp!: coefficient for semi-implicit coriolis41 REAL(wp), PUBLIC :: dm = 0.6e+03_wp!: diffusion constant for dynamics42 REAL(wp), PUBLIC :: om = 0.5_wp!: relaxation constant43 REAL(wp), PUBLIC :: resl = 5.0e-05_wp!: maximum value for the residual of relaxation44 REAL(wp), PUBLIC :: cw = 5.0e-03_wp!: drag coefficient for oceanic stress45 REAL(wp), PUBLIC :: angvg = 0._wp!: turning angle for oceanic stress46 REAL(wp), PUBLIC :: pstar = 1.0e+04_wp!: first bulk-rheology parameter47 REAL(wp), PUBLIC :: c_rhg = 20._wp!: second bulk-rhelogy parameter48 REAL(wp), PUBLIC :: etamn = 0._wp!: minimun value for viscosity49 REAL(wp), PUBLIC :: creepl = 2.e-08_wp!: creep limit50 REAL(wp), PUBLIC :: ecc = 2._wp!: eccentricity of the elliptical yield curve51 REAL(wp), PUBLIC :: ahi0 = 350._wp!: sea-ice hor. eddy diffusivity coeff. (m2/s)52 REAL(wp), PUBLIC :: alphaevp = 1._wp!: coefficient for the solution of EVP int. stresses24 ! !!* namicerun read in iceini * 25 CHARACTER(len=32) , PUBLIC :: cn_icerst_in !: suffix of ice restart name (input) 26 CHARACTER(len=32) , PUBLIC :: cn_icerst_out !: suffix of ice restart name (output) 27 LOGICAL , PUBLIC :: ln_limdyn !: flag for ice dynamics (T) or not (F) 28 LOGICAL , PUBLIC :: ln_limdmp !: Ice damping 29 REAL(wp) , PUBLIC :: hsndif !: snow temp. computation (0) or not (9999) 30 REAL(wp) , PUBLIC :: hicdif !: ice temp. computation (0) or not (9999) 31 REAL(wp), DIMENSION(2), PUBLIC :: acrit !: minimum lead fraction in the 2 hemisphere 32 ! 33 LOGICAL , PUBLIC :: ln_nicep = .TRUE. !: flag grid points output (T) or not (F) 34 ! !!* ice-dynamic namelist (namicedyn) * 35 INTEGER , PUBLIC :: nbiter !: number of sub-time steps for relaxation 36 INTEGER , PUBLIC :: nbitdr !: maximum number of iterations for relaxation 37 INTEGER , PUBLIC :: nevp !: number of EVP subcycling iterations 38 INTEGER , PUBLIC :: telast !: timescale for EVP elastic waves 39 REAL(wp), PUBLIC :: epsd !: tolerance parameter for dynamic 40 REAL(wp), PUBLIC :: alpha !: coefficient for semi-implicit coriolis 41 REAL(wp), PUBLIC :: dm !: diffusion constant for dynamics 42 REAL(wp), PUBLIC :: om !: relaxation constant 43 REAL(wp), PUBLIC :: resl !: maximum value for the residual of relaxation 44 REAL(wp), PUBLIC :: cw !: drag coefficient for oceanic stress 45 REAL(wp), PUBLIC :: angvg !: turning angle for oceanic stress 46 REAL(wp), PUBLIC :: pstar !: first bulk-rheology parameter 47 REAL(wp), PUBLIC :: c_rhg !: second bulk-rhelogy parameter 48 REAL(wp), PUBLIC :: etamn !: minimun value for viscosity 49 REAL(wp), PUBLIC :: creepl !: creep limit 50 REAL(wp), PUBLIC :: ecc !: eccentricity of the elliptical yield curve 51 REAL(wp), PUBLIC :: ahi0 !: sea-ice hor. eddy diffusivity coeff. (m2/s) 52 REAL(wp), PUBLIC :: alphaevp !: coefficient for the solution of EVP int. stresses 53 53 54 54 REAL(wp), PUBLIC :: usecc2 !: = 1.0 / ( ecc * ecc ) -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/LIM_SRC_2/limdia_2.F90
r3875 r3901 29 29 PRIVATE 30 30 31 PUBLIC lim_dia_2 32 33 INTEGER, PUBLIC :: ntmoy = 1, & !: instantaneous values of ice evolution or averaging ntmoy34 & ninfo = 1!: frequency of ouputs on file ice_evolu in case of averaging31 PUBLIC lim_dia_2 ! called by sbc_ice_lim_2 32 33 INTEGER, PUBLIC :: ntmoy , & !: instantaneous values of ice evolution or averaging ntmoy 34 & ninfo !: frequency of ouputs on file ice_evolu in case of averaging 35 35 36 36 INTEGER, PARAMETER :: & ! Parameters for outputs to files "evolu" … … 40 40 41 41 INTEGER :: & 42 nfrinf = 4 ,& ! number of variables written in one line42 nfrinf , & ! number of variables written in one line 43 43 nferme , & ! last time step at which the var. are written on file 44 44 nvinfo , & ! number of total variables … … 46 46 naveg ! number of step for accumulation before averaging 47 47 48 CHARACTER(len= 8) :: fmtinf = '1PE13.5 '! format of the output values48 CHARACTER(len= 8) :: fmtinf ! format of the output values 49 49 CHARACTER(len=30) :: fmtw , & ! formats 50 50 & fmtr , & ! ??? -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/LIM_SRC_2/limdmp_2.F90
r3875 r3901 110 110 ! 1) initialize fld read structure for input data 111 111 ! -------------------------------------------- 112 ln_limdmp = .false. !* set file information (default values) 113 cn_dir = './' 114 ! (NB: frequency positive => hours, negative => months) 115 ! ! file ! frequency ! variable ! time intep ! clim ! 'yearly' or ! weights ! rotation ! 116 ! ! name ! (hours) ! name ! (T/F) ! (T/F) ! 'monthly' ! filename ! pairs ! 117 sn_hicif = FLD_N( 'ice_damping ', -1 , 'hicif' , .true. , .true. , 'yearly' , '' , '' ) 118 sn_frld = FLD_N( 'ice_damping ', -1 , 'frld' , .true. , .true. , 'yearly' , '' , '' ) 119 112 120 113 REWIND( numnam_ice_ref ) ! Namelist namice_dmp in reference namelist : Ice restoring 121 114 READ ( numnam_ice_ref, namice_dmp, IOSTAT = ios, ERR = 901) -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/LIM_SRC_2/limistate_2.F90
r3875 r3901 34 34 PUBLIC lim_istate_2 ! routine called by lim_init_2.F90 35 35 36 !!! ** initnamelist (namiceini) **37 LOGICAL :: ln_limini = .FALSE.!: Ice initialization state38 REAL(wp) :: ttest = 2.0! threshold water temperature for initial sea ice39 REAL(wp) :: hninn = 0.5! initial snow thickness in the north40 REAL(wp) :: hginn = 3.0! initial ice thickness in the north41 REAL(wp) :: alinn = 0.05! initial leads area in the north42 REAL(wp) :: hnins = 0.1! initial snow thickness in the south43 REAL(wp) :: hgins = 1.0! initial ice thickness in the south44 REAL(wp) :: alins = 0.1! initial leads area in the south36 !!! ** namelist (namiceini) ** 37 LOGICAL :: ln_limini !: Ice initialization state 38 REAL(wp) :: ttest ! threshold water temperature for initial sea ice 39 REAL(wp) :: hninn ! initial snow thickness in the north 40 REAL(wp) :: hginn ! initial ice thickness in the north 41 REAL(wp) :: alinn ! initial leads area in the north 42 REAL(wp) :: hnins ! initial snow thickness in the south 43 REAL(wp) :: hgins ! initial ice thickness in the south 44 REAL(wp) :: alins ! initial leads area in the south 45 45 46 46 REAL(wp) :: zero = 0.e0 ! constant value = 0 -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/LIM_SRC_2/limtrp_2.F90
r3875 r3901 38 38 PUBLIC lim_trp_2 ! called by sbc_ice_lim_2 39 39 40 REAL(wp), PUBLIC :: bound = 0.e0!: boundary condit. (0.0 no-slip, 1.0 free-slip)40 REAL(wp), PUBLIC :: bound !: boundary condit. (0.0 no-slip, 1.0 free-slip) 41 41 42 42 REAL(wp) :: epsi06 = 1.e-06 ! constant values -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/LIM_SRC_2/thd_ice_2.F90
r3625 r3901 21 21 !! * Share Module variables 22 22 REAL(wp) , PUBLIC :: & !!! ** ice-thermo namelist (namicethd) ** 23 hmelt = -0.15, & !: maximum melting at the bottom24 hicmin = 0.2, & !: ice th. corr. to max. ener. in brine pocket25 hiclim = 0.05, & !: minimum ice thickness26 amax = 0.999, & !: maximum lead fraction27 swiqst = 1.0, & !: energy stored in brine pocket (1) or not (0)28 sbeta = 1.0, & !: numerical scheme for diffusion in ice29 parlat = 0.0, & !: percent. of energy used for lateral ablation30 hakspl = 0.5, & !: slope of distr. for Hakkinen-Mellro's lat. melt31 hibspl = 0.5, & !: slope of distribution for Hibler's lat. melt32 exld = 2.0, & !: exponent for leads-closure rate33 hakdif = 1.0, & !: coefficient for diffusions of ice and snow34 thth = 0.2, & !: thick. for comp. of eq. thermal conduct35 hnzst = 0.1, & !: thick. of the surf. layer in temp. comp.36 parsub = 1.0, & !: switch for snow sublimation or not37 alphs = 1.0!: coef. for snow density when snow-ice formation23 hmelt , & !: maximum melting at the bottom 24 hicmin , & !: ice th. corr. to max. ener. in brine pocket 25 hiclim , & !: minimum ice thickness 26 amax , & !: maximum lead fraction 27 swiqst , & !: energy stored in brine pocket (1) or not (0) 28 sbeta , & !: numerical scheme for diffusion in ice 29 parlat , & !: percent. of energy used for lateral ablation 30 hakspl , & !: slope of distr. for Hakkinen-Mellro's lat. melt 31 hibspl , & !: slope of distribution for Hibler's lat. melt 32 exld , & !: exponent for leads-closure rate 33 hakdif , & !: coefficient for diffusions of ice and snow 34 thth , & !: thick. for comp. of eq. thermal conduct 35 hnzst , & !: thick. of the surf. layer in temp. comp. 36 parsub , & !: switch for snow sublimation or not 37 alphs !: coef. for snow density when snow-ice formation 38 38 39 39 REAL(wp), PUBLIC, DIMENSION(2) :: & !: 40 hiccrit = (/0.3,0.3/)!: ice th. for lateral accretion in the NH (SH) (m)40 hiccrit !: ice th. for lateral accretion in the NH (SH) (m) 41 41 42 42 REAL(wp) , PUBLIC :: & !: -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/LIM_SRC_3/ice.F90
r3625 r3901 158 158 !! * Share Module variables 159 159 !!-------------------------------------------------------------------------- 160 INTEGER , PUBLIC :: nstart !: iteration number of the begining of the run161 INTEGER , PUBLIC :: nlast !: iteration number of the end of the run162 INTEGER , PUBLIC :: nitrun !: number of iteration163 INTEGER , PUBLIC :: numit !: iteration number164 REAL(wp), PUBLIC :: rdt_ice !: ice time step165 REAL(wp), PUBLIC :: r1_rdtice !: = 1. / rdt_ice166 167 ! 168 INTEGER , PUBLIC :: nbiter = 1!: number of sub-time steps for relaxation169 INTEGER , PUBLIC :: nbitdr = 250!: maximum number of iterations for relaxation170 INTEGER , PUBLIC :: nevp = 400!: number of iterations for subcycling160 INTEGER , PUBLIC :: nstart !: iteration number of the begining of the run 161 INTEGER , PUBLIC :: nlast !: iteration number of the end of the run 162 INTEGER , PUBLIC :: nitrun !: number of iteration 163 INTEGER , PUBLIC :: numit !: iteration number 164 REAL(wp), PUBLIC :: rdt_ice !: ice time step 165 REAL(wp), PUBLIC :: r1_rdtice !: = 1. / rdt_ice 166 167 ! !!** ice-dynamic namelist (namicedyn) ** 168 INTEGER , PUBLIC :: nbiter !: number of sub-time steps for relaxation 169 INTEGER , PUBLIC :: nbitdr !: maximum number of iterations for relaxation 170 INTEGER , PUBLIC :: nevp !: number of iterations for subcycling 171 171 INTEGER , PUBLIC :: nlay_i = 5 !: number of layers in the ice 172 172 173 ! 174 REAL(wp), PUBLIC :: epsd = 1.0e-20_wp!: tolerance parameter for dynamic175 REAL(wp), PUBLIC :: alpha = 0.5_wp!: coefficient for semi-implicit coriolis176 REAL(wp), PUBLIC :: dm = 0.6e+03_wp!: diffusion constant for dynamics177 REAL(wp), PUBLIC :: om = 0.5_wp!: relaxation constant178 REAL(wp), PUBLIC :: resl = 5.0e-05_wp!: maximum value for the residual of relaxation179 REAL(wp), PUBLIC :: cw = 5.0e-03_wp!: drag coefficient for oceanic stress180 REAL(wp), PUBLIC :: angvg = 0._wp!: turning angle for oceanic stress181 REAL(wp), PUBLIC :: pstar = 1.0e+04_wp!: determines ice strength (N/M), Hibler JPO79182 REAL(wp), PUBLIC :: c_rhg = 20._wp!: determines changes in ice strength183 REAL(wp), PUBLIC :: etamn = 0.0e+07_wp!: minimun value for viscosity : has to be 0184 REAL(wp), PUBLIC :: creepl = 2.0e-08_wp!: creep limit : has to be under 1.0e-9185 REAL(wp), PUBLIC :: ecc = 2._wp!: eccentricity of the elliptical yield curve186 REAL(wp), PUBLIC :: ahi0 = 350._wp!: sea-ice hor. eddy diffusivity coeff. (m2/s)187 REAL(wp), PUBLIC :: telast = 2880._wp!: timescale for elastic waves (s) !SB188 REAL(wp), PUBLIC :: alphaevp = 1._wp!: coeficient of the internal stresses !SB173 ! !!** ice-dynamic namelist (namicedyn) ** 174 REAL(wp), PUBLIC :: epsd !: tolerance parameter for dynamic 175 REAL(wp), PUBLIC :: alpha !: coefficient for semi-implicit coriolis 176 REAL(wp), PUBLIC :: dm !: diffusion constant for dynamics 177 REAL(wp), PUBLIC :: om !: relaxation constant 178 REAL(wp), PUBLIC :: resl !: maximum value for the residual of relaxation 179 REAL(wp), PUBLIC :: cw !: drag coefficient for oceanic stress 180 REAL(wp), PUBLIC :: angvg !: turning angle for oceanic stress 181 REAL(wp), PUBLIC :: pstar !: determines ice strength (N/M), Hibler JPO79 182 REAL(wp), PUBLIC :: c_rhg !: determines changes in ice strength 183 REAL(wp), PUBLIC :: etamn !: minimun value for viscosity : has to be 0 184 REAL(wp), PUBLIC :: creepl !: creep limit : has to be under 1.0e-9 185 REAL(wp), PUBLIC :: ecc !: eccentricity of the elliptical yield curve 186 REAL(wp), PUBLIC :: ahi0 !: sea-ice hor. eddy diffusivity coeff. (m2/s) 187 REAL(wp), PUBLIC :: telast !: timescale for elastic waves (s) !SB 188 REAL(wp), PUBLIC :: alphaevp !: coeficient of the internal stresses !SB 189 189 REAL(wp), PUBLIC :: unit_fac = 1.e+09_wp !: conversion factor for ice / snow enthalpy 190 190 191 ! 192 REAL(wp), PUBLIC :: s_i_max = 20.0_wp!: maximum ice salinity [PSU]193 REAL(wp), PUBLIC :: s_i_min = 0.1_wp!: minimum ice salinity [PSU]194 REAL(wp), PUBLIC :: s_i_0 = 3.5_wp!: 1st sal. value for the computation of sal .prof. [PSU]195 REAL(wp), PUBLIC :: s_i_1 = 4.5_wp!: 2nd sal. value for the computation of sal .prof. [PSU]196 REAL(wp), PUBLIC :: sal_G = 5.0_wp!: restoring salinity for gravity drainage [PSU]197 REAL(wp), PUBLIC :: sal_F = 2.5_wp!: restoring salinity for flushing [PSU]198 REAL(wp), PUBLIC :: time_G = 1.728e+06_wp!: restoring time constant for gravity drainage (= 20 days) [s]199 REAL(wp), PUBLIC :: time_F = 8.640e+05_wp!: restoring time constant for gravity drainage (= 10 days) [s]200 REAL(wp), PUBLIC :: bulk_sal = 4.0_wp!: bulk salinity (ppt) in case of constant salinity201 202 ! 203 INTEGER , PUBLIC :: num_sal = 1!: salinity configuration used in the model204 ! 205 ! 206 ! 191 ! !!** ice-salinity namelist (namicesal) ** 192 REAL(wp), PUBLIC :: s_i_max !: maximum ice salinity [PSU] 193 REAL(wp), PUBLIC :: s_i_min !: minimum ice salinity [PSU] 194 REAL(wp), PUBLIC :: s_i_0 !: 1st sal. value for the computation of sal .prof. [PSU] 195 REAL(wp), PUBLIC :: s_i_1 !: 2nd sal. value for the computation of sal .prof. [PSU] 196 REAL(wp), PUBLIC :: sal_G !: restoring salinity for gravity drainage [PSU] 197 REAL(wp), PUBLIC :: sal_F !: restoring salinity for flushing [PSU] 198 REAL(wp), PUBLIC :: time_G !: restoring time constant for gravity drainage (= 20 days) [s] 199 REAL(wp), PUBLIC :: time_F !: restoring time constant for gravity drainage (= 10 days) [s] 200 REAL(wp), PUBLIC :: bulk_sal = !: bulk salinity (ppt) in case of constant salinity 201 202 ! !!** ice-salinity namelist (namicesal) ** 203 INTEGER , PUBLIC :: num_sal !: salinity configuration used in the model 204 ! ! 1 - constant salinity in both space and time 205 ! ! 2 - prognostic salinity (s(z,t)) 206 ! ! 3 - salinity profile, constant in time 207 207 INTEGER , PUBLIC :: sal_prof = 1 !: salinity profile or not 208 INTEGER , PUBLIC :: thcon_i_swi = 1!: thermal conductivity: =1 Untersteiner (1964) ; =2 Pringle et al (2007)209 210 ! 211 REAL(wp), PUBLIC :: Cs = 0.25_wp!: fraction of shearing energy contributing to ridging212 REAL(wp), PUBLIC :: Cf = 17.0_wp!: ratio of ridging work to PE loss213 REAL(wp), PUBLIC :: fsnowrdg = 0.5_wp!: fractional snow loss to the ocean during ridging214 REAL(wp), PUBLIC :: fsnowrft = 0.5_wp!: fractional snow loss to the ocean during ridging215 REAL(wp), PUBLIC :: Gstar = 0.15_wp!: fractional area of young ice contributing to ridging216 REAL(wp), PUBLIC :: astar = 0.05_wp!: equivalent of G* for an exponential participation function217 REAL(wp), PUBLIC :: Hstar = 100.0_wp!: thickness that determines the maximal thickness of ridged ice218 REAL(wp), PUBLIC :: hparmeter = 0.75_wp!: threshold thickness (m) for rafting / ridging219 REAL(wp), PUBLIC :: Craft = 5.0_wp!: coefficient for smoothness of the hyperbolic tangent in rafting220 REAL(wp), PUBLIC :: ridge_por = 0.0_wp!: initial porosity of ridges (0.3 regular value)221 REAL(wp), PUBLIC :: sal_max_ridge = 15.0_wp!: maximum ridged ice salinity (ppt)222 REAL(wp), PUBLIC :: betas = 1.0_wp!: coef. for partitioning of snowfall between leads and sea ice223 REAL(wp), PUBLIC :: kappa_i = 1.0_wp!: coef. for the extinction of radiation Grenfell et al. (2006) [1/m]224 REAL(wp), PUBLIC :: nconv_i_thd = 50_wp!: maximal number of iterations for heat diffusion225 REAL(wp), PUBLIC :: maxer_i_thd = 1.0e-4_wp!: maximal tolerated error (C) for heat diffusion226 227 ! 228 INTEGER , PUBLIC :: ridge_scheme_swi = 0!: scheme used for ice ridging229 INTEGER , PUBLIC :: raftswi = 1!: rafting of ice or not230 INTEGER , PUBLIC :: partfun_swi = 1!: participation function: =0 Thorndike et al. (1975), =1 Lipscomb et al. (2007)231 INTEGER , PUBLIC :: transfun_swi = 0!: transfer function: =0 Hibler 1980, =1 Lipscomb et al. 2007232 INTEGER , PUBLIC :: brinstren_swi = 0!: use brine volume to diminish ice strength208 INTEGER , PUBLIC :: thcon_i_swi !: thermal conductivity: =1 Untersteiner (1964) ; =2 Pringle et al (2007) 209 210 ! !!** ice-mechanical redistribution namelist (namiceitdme) 211 REAL(wp), PUBLIC :: Cs !: fraction of shearing energy contributing to ridging 212 REAL(wp), PUBLIC :: Cf !: ratio of ridging work to PE loss 213 REAL(wp), PUBLIC :: fsnowrdg !: fractional snow loss to the ocean during ridging 214 REAL(wp), PUBLIC :: fsnowrft !: fractional snow loss to the ocean during ridging 215 REAL(wp), PUBLIC :: Gstar !: fractional area of young ice contributing to ridging 216 REAL(wp), PUBLIC :: astar !: equivalent of G* for an exponential participation function 217 REAL(wp), PUBLIC :: Hstar !: thickness that determines the maximal thickness of ridged ice 218 REAL(wp), PUBLIC :: hparmeter !: threshold thickness (m) for rafting / ridging 219 REAL(wp), PUBLIC :: Craft !: coefficient for smoothness of the hyperbolic tangent in rafting 220 REAL(wp), PUBLIC :: ridge_por !: initial porosity of ridges (0.3 regular value) 221 REAL(wp), PUBLIC :: sal_max_ridge !: maximum ridged ice salinity (ppt) 222 REAL(wp), PUBLIC :: betas !: coef. for partitioning of snowfall between leads and sea ice 223 REAL(wp), PUBLIC :: kappa_i !: coef. for the extinction of radiation Grenfell et al. (2006) [1/m] 224 REAL(wp), PUBLIC :: nconv_i_thd !: maximal number of iterations for heat diffusion 225 REAL(wp), PUBLIC :: maxer_i_thd !: maximal tolerated error (C) for heat diffusion 226 227 ! !!** ice-mechanical redistribution namelist (namiceitdme) 228 INTEGER , PUBLIC :: ridge_scheme_swi !: scheme used for ice ridging 229 INTEGER , PUBLIC :: raftswi !: rafting of ice or not 230 INTEGER , PUBLIC :: partfun_swi !: participation function: =0 Thorndike et al. (1975), =1 Lipscomb et al. (2007) 231 INTEGER , PUBLIC :: transfun_swi !: transfer function: =0 Hibler 1980, =1 Lipscomb et al. 2007 232 INTEGER , PUBLIC :: brinstren_swi !: use brine volume to diminish ice strength 233 233 234 234 REAL(wp), PUBLIC :: usecc2 !: = 1.0 / ( ecc * ecc ) … … 390 390 !! * Ice Run 391 391 !!-------------------------------------------------------------------------- 392 ! 393 CHARACTER(len=32) , PUBLIC :: cn_icerst_in = "restart_ice_in"!: suffix of ice restart name (input)394 CHARACTER(len=32) , PUBLIC :: cn_icerst_out = "restart_ice"!: suffix of ice restart name (output)395 LOGICAL , PUBLIC :: ln_limdyn = .TRUE.!: flag for ice dynamics (T) or not (F)396 LOGICAL , PUBLIC :: ln_nicep = .TRUE.!: flag for sea-ice points output (T) or not (F)397 REAL(wp) , PUBLIC :: hsndif = 0.e0!: computation of temp. in snow (0) or not (9999)398 REAL(wp) , PUBLIC :: hicdif = 0.e0!: computation of temp. in ice (0) or not (9999)399 REAL(wp) , PUBLIC :: cai = 1.40e-3!: atmospheric drag over sea ice400 REAL(wp) , PUBLIC :: cao = 1.00e-3!: atmospheric drag over ocean401 REAL(wp), DIMENSION(2), PUBLIC :: acrit = (/ 1.e-06 , 1.e-06 /) !: minimum fraction for leads in402 ! !: north and south hemisphere392 ! !!: ** Namelist namicerun read in iceini ** 393 CHARACTER(len=32) , PUBLIC :: cn_icerst_in !: suffix of ice restart name (input) 394 CHARACTER(len=32) , PUBLIC :: cn_icerst_out !: suffix of ice restart name (output) 395 LOGICAL , PUBLIC :: ln_limdyn !: flag for ice dynamics (T) or not (F) 396 LOGICAL , PUBLIC :: ln_nicep !: flag for sea-ice points output (T) or not (F) 397 REAL(wp) , PUBLIC :: hsndif !: computation of temp. in snow (0) or not (9999) 398 REAL(wp) , PUBLIC :: hicdif !: computation of temp. in ice (0) or not (9999) 399 REAL(wp) , PUBLIC :: cai !: atmospheric drag over sea ice 400 REAL(wp) , PUBLIC :: cao !: atmospheric drag over ocean 401 REAL(wp), DIMENSION(2), PUBLIC :: acrit !: minimum fraction for leads in north and south hemisphere 402 ! 403 403 !!-------------------------------------------------------------------------- 404 404 !! * Ice diagnostics -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/LIM_SRC_3/limdia.F90
r3875 r3901 30 30 PUBLIC lim_dia ! called by ice_step 31 31 32 INTEGER, PUBLIC :: ntmoy = 1!: instantaneous values of ice evolution or averaging ntmoy33 INTEGER, PUBLIC :: ninfo = 1!: frequency of ouputs on file ice_evolu in case of averaging32 INTEGER, PUBLIC :: ntmoy !: instantaneous values of ice evolution or averaging ntmoy 33 INTEGER, PUBLIC :: ninfo !: frequency of ouputs on file ice_evolu in case of averaging 34 34 35 35 ! !!! Parameters for outputs to files "evolu" … … 38 38 INTEGER, PARAMETER :: jpchsep = jpchinf + 2 ! ??? 39 39 40 INTEGER :: nfrinf = 4! number of variables written in one line40 INTEGER :: nfrinf ! number of variables written in one line 41 41 INTEGER :: nferme ! last time step at which the var. are written on file 42 42 INTEGER :: nvinfo ! number of total variables … … 45 45 REAL(wp) :: epsi06 = 1.e-6_wp ! small number 46 46 47 CHARACTER(len= 8) :: fmtinf = '1PE13.5 '! format of the output values47 CHARACTER(len= 8) :: fmtinf ! format of the output values 48 48 CHARACTER(len=30) :: fmtw ! formats 49 49 CHARACTER(len=30) :: fmtr ! ??? -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/LIM_SRC_3/limistate.F90
r3875 r3901 33 33 PUBLIC lim_istate ! routine called by lim_init.F90 34 34 35 ! 36 REAL(wp) :: ttest = 2.0_wp! threshold water temperature for initial sea ice37 REAL(wp) :: hninn = 0.5_wp! initial snow thickness in the north38 REAL(wp) :: hginn_u = 2.5_wp! initial ice thickness in the north39 REAL(wp) :: aginn_u = 0.7_wp! initial leads area in the north40 REAL(wp) :: hginn_d = 5.0_wp! initial ice thickness in the north41 REAL(wp) :: aginn_d = 0.25_wp! initial leads area in the north42 REAL(wp) :: hnins = 0.1_wp! initial snow thickness in the south43 REAL(wp) :: hgins_u = 1.0_wp! initial ice thickness in the south44 REAL(wp) :: agins_u = 0.7_wp! initial leads area in the south45 REAL(wp) :: hgins_d = 2.0_wp! initial ice thickness in the south46 REAL(wp) :: agins_d = 0.2_wp! initial leads area in the south47 REAL(wp) :: sinn = 6.301_wp! initial salinity48 REAL(wp) :: sins = 6.301_wp!35 ! !!** init namelist (namiceini) ** 36 REAL(wp) :: ttest ! threshold water temperature for initial sea ice 37 REAL(wp) :: hninn ! initial snow thickness in the north 38 REAL(wp) :: hginn_u ! initial ice thickness in the north 39 REAL(wp) :: aginn_u ! initial leads area in the north 40 REAL(wp) :: hginn_d ! initial ice thickness in the north 41 REAL(wp) :: aginn_d ! initial leads area in the north 42 REAL(wp) :: hnins ! initial snow thickness in the south 43 REAL(wp) :: hgins_u ! initial ice thickness in the south 44 REAL(wp) :: agins_u ! initial leads area in the south 45 REAL(wp) :: hgins_d ! initial ice thickness in the south 46 REAL(wp) :: agins_d ! initial leads area in the south 47 REAL(wp) :: sinn ! initial salinity 48 REAL(wp) :: sins ! 49 49 50 50 !!---------------------------------------------------------------------- -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/LIM_SRC_3/thd_ice.F90
r3625 r3901 18 18 !! * Share Module variables 19 19 !!--------------------------- 20 ! 21 REAL(wp), PUBLIC :: hmelt = -0.15!: maximum melting at the bottom; active only for one category22 REAL(wp), PUBLIC :: hicmin = 0.2!: (REMOVE)23 REAL(wp), PUBLIC :: hiclim = 0.05!: minimum ice thickness24 REAL(wp), PUBLIC :: amax = 0.999!: maximum lead fraction25 REAL(wp), PUBLIC :: sbeta = 1.0!: numerical scheme for diffusion in ice (REMOVE)26 REAL(wp), PUBLIC :: parlat = 0.0!: (REMOVE)27 REAL(wp), PUBLIC :: hakspl = 0.5!: (REMOVE)28 REAL(wp), PUBLIC :: hibspl = 0.5!: (REMOVE)29 REAL(wp), PUBLIC :: exld = 2.0!: (REMOVE)30 REAL(wp), PUBLIC :: hakdif = 1.0!: (REMOVE)31 REAL(wp), PUBLIC :: thth = 0.2!: (REMOVE)32 REAL(wp), PUBLIC :: hnzst = 0.1!: thick. of the surf. layer in temp. comp.33 REAL(wp), PUBLIC :: parsub = 1.0!: switch for snow sublimation or not34 REAL(wp), PUBLIC :: alphs = 1.0!: coef. for snow density when snow-ice formation35 REAL(wp), PUBLIC :: fraz_swi = 1.0!: use of frazil ice collection in function of wind (1.0) or not (0.0)36 REAL(wp), PUBLIC :: maxfrazb = 0.7!: maximum portion of frazil ice collecting at the ice bottom37 REAL(wp), PUBLIC :: vfrazb = 0.41667!: threshold drift speed for collection of bottom frazil ice38 REAL(wp), PUBLIC :: Cfrazb = 5.0!: squeezing coefficient for collection of bottom frazil ice39 40 REAL(wp), PUBLIC, DIMENSION(2) :: hiccrit = (/0.3,0.3/)!: ice th. for lateral accretion in the NH (SH) (m)20 ! !!! ** ice-thermo namelist (namicethd) ** 21 REAL(wp), PUBLIC :: hmelt !: maximum melting at the bottom; active only for one category 22 REAL(wp), PUBLIC :: hicmin !: (REMOVE) 23 REAL(wp), PUBLIC :: hiclim !: minimum ice thickness 24 REAL(wp), PUBLIC :: amax !: maximum lead fraction 25 REAL(wp), PUBLIC :: sbeta !: numerical scheme for diffusion in ice (REMOVE) 26 REAL(wp), PUBLIC :: parlat !: (REMOVE) 27 REAL(wp), PUBLIC :: hakspl !: (REMOVE) 28 REAL(wp), PUBLIC :: hibspl !: (REMOVE) 29 REAL(wp), PUBLIC :: exld !: (REMOVE) 30 REAL(wp), PUBLIC :: hakdif !: (REMOVE) 31 REAL(wp), PUBLIC :: thth !: (REMOVE) 32 REAL(wp), PUBLIC :: hnzst !: thick. of the surf. layer in temp. comp. 33 REAL(wp), PUBLIC :: parsub !: switch for snow sublimation or not 34 REAL(wp), PUBLIC :: alphs !: coef. for snow density when snow-ice formation 35 REAL(wp), PUBLIC :: fraz_swi !: use of frazil ice collection in function of wind (1.0) or not (0.0) 36 REAL(wp), PUBLIC :: maxfrazb !: maximum portion of frazil ice collecting at the ice bottom 37 REAL(wp), PUBLIC :: vfrazb !: threshold drift speed for collection of bottom frazil ice 38 REAL(wp), PUBLIC :: Cfrazb !: squeezing coefficient for collection of bottom frazil ice 39 40 REAL(wp), PUBLIC, DIMENSION(2) :: hiccrit !: ice th. for lateral accretion in the NH (SH) (m) 41 41 42 42 !!----------------------------- -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/NST_SRC/agrif_oce.F90
r3680 r3901 19 19 20 20 ! !!* Namelist namagrif: AGRIF parameters 21 LOGICAL , PUBLIC :: ln_spc_dyn = .FALSE.!:22 INTEGER , PUBLIC :: nn_cln_update = 3!: update frequency23 REAL(wp), PUBLIC :: rn_sponge_tra = 2800.!: sponge coeff. for tracers24 REAL(wp), PUBLIC :: rn_sponge_dyn = 2800.!: sponge coeff. for dynamics21 LOGICAL , PUBLIC :: ln_spc_dyn !: 22 INTEGER , PUBLIC :: nn_cln_update !: update frequency 23 REAL(wp), PUBLIC :: rn_sponge_tra !: sponge coeff. for tracers 24 REAL(wp), PUBLIC :: rn_sponge_dyn !: sponge coeff. for dynamics 25 25 26 26 ! !!! OLD namelist names -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OFF_SRC/dtadyn.F90
r3875 r3901 47 47 PUBLIC dta_dyn ! called by step.F90 48 48 49 CHARACTER(len=100) :: cn_dir = './'!: Root directory for location of ssr files50 LOGICAL :: ln_dynwzv = .true.!: vertical velocity read in a file (T) or computed from u/v (F)51 LOGICAL :: ln_dynbbl = .true.!: bbl coef read in a file (T) or computed (F)52 LOGICAL :: ln_degrad = .false.!: degradation option enabled or not49 CHARACTER(len=100) :: cn_dir !: Root directory for location of ssr files 50 LOGICAL :: ln_dynwzv !: vertical velocity read in a file (T) or computed from u/v (F) 51 LOGICAL :: ln_dynbbl !: bbl coef read in a file (T) or computed (F) 52 LOGICAL :: ln_degrad !: degradation option enabled or not 53 53 54 54 INTEGER , PARAMETER :: jpfld = 20 ! maximum number of fields to read … … 338 338 & sn_uwd, sn_vwd, sn_wwd, sn_avt, sn_ubl, sn_vbl, & 339 339 & sn_ahu, sn_ahv, sn_ahw, sn_eiu, sn_eiv, sn_eiw, sn_sfx 340 341 !!----------------------------------------------------------------------342 ! ! ============343 ! ! Namelist344 ! ! ============345 ! (NB: frequency positive => hours, negative => months)346 ! ! file ! frequency ! variable ! time intep ! clim ! 'yearly' or ! weights ! rotation !347 ! ! name ! (hours) ! name ! (T/F) ! (T/F) ! 'monthly' ! filename ! pairs !348 sn_tem = FLD_N( 'dyna_grid_T' , 120 , 'votemper' , .true. , .true. , 'yearly' , '' , '' )349 sn_sal = FLD_N( 'dyna_grid_T' , 120 , 'vosaline' , .true. , .true. , 'yearly' , '' , '' )350 sn_mld = FLD_N( 'dyna_grid_T' , 120 , 'somixght' , .true. , .true. , 'yearly' , '' , '' )351 sn_emp = FLD_N( 'dyna_grid_T' , 120 , 'sowaflup' , .true. , .true. , 'yearly' , '' , '' )352 sn_sfx = FLD_N( 'dyna_grid_T' , 120 , 'sowaflcd' , .true. , .true. , 'yearly' , '' , '' )353 !! sn_sfx = FLD_N( 'dyna_grid_T' , 120 , 'sosfldow' , .true. , .true. , 'yearly' , '' , '' ) ! v3.5+354 sn_ice = FLD_N( 'dyna_grid_T' , 120 , 'soicecov' , .true. , .true. , 'yearly' , '' , '' )355 sn_qsr = FLD_N( 'dyna_grid_T' , 120 , 'soshfldo' , .true. , .true. , 'yearly' , '' , '' )356 sn_wnd = FLD_N( 'dyna_grid_T' , 120 , 'sowindsp' , .true. , .true. , 'yearly' , '' , '' )357 sn_uwd = FLD_N( 'dyna_grid_U' , 120 , 'vozocrtx' , .true. , .true. , 'yearly' , '' , '' )358 sn_vwd = FLD_N( 'dyna_grid_V' , 120 , 'vomecrty' , .true. , .true. , 'yearly' , '' , '' )359 sn_wwd = FLD_N( 'dyna_grid_W' , 120 , 'vovecrtz' , .true. , .true. , 'yearly' , '' , '' )360 sn_avt = FLD_N( 'dyna_grid_W' , 120 , 'votkeavt' , .true. , .true. , 'yearly' , '' , '' )361 sn_ubl = FLD_N( 'dyna_grid_U' , 120 , 'sobblcox' , .true. , .true. , 'yearly' , '' , '' )362 sn_vbl = FLD_N( 'dyna_grid_V' , 120 , 'sobblcoy' , .true. , .true. , 'yearly' , '' , '' )363 sn_ahu = FLD_N( 'dyna_grid_U' , 120 , 'vozoahtu' , .true. , .true. , 'yearly' , '' , '' )364 sn_ahv = FLD_N( 'dyna_grid_V' , 120 , 'vomeahtv' , .true. , .true. , 'yearly' , '' , '' )365 sn_ahw = FLD_N( 'dyna_grid_W' , 120 , 'voveahtz' , .true. , .true. , 'yearly' , '' , '' )366 sn_eiu = FLD_N( 'dyna_grid_U' , 120 , 'vozoaeiu' , .true. , .true. , 'yearly' , '' , '' )367 sn_eiv = FLD_N( 'dyna_grid_V' , 120 , 'vomeaeiv' , .true. , .true. , 'yearly' , '' , '' )368 sn_eiw = FLD_N( 'dyna_grid_W' , 120 , 'voveaeiw' , .true. , .true. , 'yearly' , '' , '' )369 340 ! 370 341 REWIND( numnam_ref ) ! Namelist namdta_dyn in reference namelist : Offline: init. of dynamical data -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/ASM/asminc.F90
r3875 r3901 56 56 LOGICAL, PUBLIC, PARAMETER :: lk_asminc = .FALSE. !: No assimilation increments 57 57 #endif 58 LOGICAL, PUBLIC :: ln_bkgwri = .FALSE.!: No output of the background state fields59 LOGICAL, PUBLIC :: ln_asmiau = .FALSE.!: No applying forcing with an assimilation increment60 LOGICAL, PUBLIC :: ln_asmdin = .FALSE.!: No direct initialization61 LOGICAL, PUBLIC :: ln_trainc = .FALSE.!: No tracer (T and S) assimilation increments62 LOGICAL, PUBLIC :: ln_dyninc = .FALSE.!: No dynamics (u and v) assimilation increments63 LOGICAL, PUBLIC :: ln_sshinc = .FALSE.!: No sea surface height assimilation increment64 LOGICAL, PUBLIC :: ln_seaiceinc = .FALSE.!: No sea ice concentration increment65 LOGICAL, PUBLIC :: ln_salfix = .FALSE.!: Apply minimum salinity check58 LOGICAL, PUBLIC :: ln_bkgwri !: No output of the background state fields 59 LOGICAL, PUBLIC :: ln_asmiau !: No applying forcing with an assimilation increment 60 LOGICAL, PUBLIC :: ln_asmdin !: No direct initialization 61 LOGICAL, PUBLIC :: ln_trainc !: No tracer (T and S) assimilation increments 62 LOGICAL, PUBLIC :: ln_dyninc !: No dynamics (u and v) assimilation increments 63 LOGICAL, PUBLIC :: ln_sshinc !: No sea surface height assimilation increment 64 LOGICAL, PUBLIC :: ln_seaiceinc !: No sea ice concentration increment 65 LOGICAL, PUBLIC :: ln_salfix !: Apply minimum salinity check 66 66 LOGICAL, PUBLIC :: ln_temnofreeze = .FALSE. !: Don't allow the temperature to drop below freezing 67 INTEGER, PUBLIC :: nn_divdmp = 0!: Apply divergence damping filter nn_divdmp times67 INTEGER, PUBLIC :: nn_divdmp !: Apply divergence damping filter nn_divdmp times 68 68 69 69 REAL(wp), PUBLIC, DIMENSION(:,:,:), ALLOCATABLE :: t_bkg , s_bkg !: Background temperature and salinity … … 144 144 !----------------------------------------------------------------------- 145 145 146 ! Set default values147 ln_bkgwri = .FALSE.148 ln_trainc = .FALSE.149 ln_dyninc = .FALSE.150 ln_sshinc = .FALSE.151 146 ln_seaiceinc = .FALSE. 152 ln_asmdin = .FALSE.153 ln_asmiau = .TRUE.154 ln_salfix = .FALSE.155 147 ln_temnofreeze = .FALSE. 156 salfixmin = -9999157 nitbkg = 0158 nitdin = 0159 nitiaustr = 1160 nitiaufin = 150 ! = 10 days with ORCA2161 niaufn = 0162 148 163 149 REWIND( numnam_ref ) ! Namelist nam_asminc in reference namelist : Assimilation increment -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/BDY/bdydta.F90
r3875 r3901 445 445 DO ib_bdy = 1, nb_bdy 446 446 IF( nn_dta(ib_bdy) .eq. 1 ) THEN 447 ! set file information 448 cn_dir = './' ! directory in which the model is executed 449 ln_full_vel = .false. 450 ! ... default values (NB: frequency positive => hours, negative => months) 451 ! ! file ! frequency ! variable ! time intep ! clim ! 'yearly' or ! weights ! rotation ! 452 ! ! name ! hours ! name ! (T/F) ! (T/F) ! 'monthly' ! filename ! pairs ! 453 bn_ssh = FLD_N( 'bdy_ssh' , 24 , 'sossheig' , .false. , .false. , 'yearly' , '' , '' ) 454 bn_u2d = FLD_N( 'bdy_vel2d_u' , 24 , 'vobtcrtx' , .false. , .false. , 'yearly' , '' , '' ) 455 bn_v2d = FLD_N( 'bdy_vel2d_v' , 24 , 'vobtcrty' , .false. , .false. , 'yearly' , '' , '' ) 456 bn_u3d = FLD_N( 'bdy_vel3d_u' , 24 , 'vozocrtx' , .false. , .false. , 'yearly' , '' , '' ) 457 bn_v3d = FLD_N( 'bdy_vel3d_v' , 24 , 'vomecrty' , .false. , .false. , 'yearly' , '' , '' ) 458 bn_tem = FLD_N( 'bdy_tem' , 24 , 'votemper' , .false. , .false. , 'yearly' , '' , '' ) 459 bn_sal = FLD_N( 'bdy_sal' , 24 , 'vosaline' , .false. , .false. , 'yearly' , '' , '' ) 460 #if defined key_lim2 461 bn_frld = FLD_N( 'bdy_frld' , 24 , 'ildsconc' , .false. , .false. , 'yearly' , '' , '' ) 462 bn_hicif = FLD_N( 'bdy_hicif' , 24 , 'iicethic' , .false. , .false. , 'yearly' , '' , '' ) 463 bn_hsnif = FLD_N( 'bdy_hsnif' , 24 , 'isnothic' , .false. , .false. , 'yearly' , '' , '' ) 464 #endif 465 466 ! Read configuration namelist only to avoid unsuccessful overwrite 467 ! Important NOT to rewind here. 468 !! REWIND( numnam_ref ) ! Namelist nambdy_dta in reference namelist : 469 !! READ ( numnam_ref, nambdy_dta, IOSTAT = ios, ERR = 901) 470 !!901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambdy_dta in reference namelist', lwp ) 471 472 !! REWIND( numnam_cfg ) ! Namelist nambdy_dta in configuration namelist : 447 473 448 READ ( numnam_cfg, nambdy_dta, IOSTAT = ios, ERR = 902 ) 474 449 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambdy_dta in configuration namelist', lwp ) -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/BDY/bdyini.F90
r3875 r3901 119 119 cgrid= (/'t','u','v'/) 120 120 121 ! ----------------------------------------- 122 ! Initialise and read namelist parameters 123 ! ----------------------------------------- 124 125 nb_bdy = 0 126 ln_coords_file(:) = .false. 127 cn_coords_file(:) = '' 128 ln_mask_file = .false. 129 cn_mask_file(:) = '' 130 nn_dyn2d(:) = 0 131 nn_dyn2d_dta(:) = -1 ! uninitialised flag 132 nn_dyn3d(:) = 0 133 nn_dyn3d_dta(:) = -1 ! uninitialised flag 134 nn_tra(:) = 0 135 nn_tra_dta(:) = -1 ! uninitialised flag 136 ln_tra_dmp(:) = .false. 137 ln_dyn3d_dmp(:) = .false. 138 rn_time_dmp(:) = 1. 139 #if defined key_lim2 140 nn_ice_lim2(:) = 0 141 nn_ice_lim2_dta(:)= -1 ! uninitialised flag 142 #endif 143 ln_vol = .false. 144 nn_volctl = -1 ! uninitialised flag 145 nn_rimwidth(:) = -1 ! uninitialised flag 121 ! ------------------------ 122 ! Read namelist parameters 123 ! ------------------------ 146 124 147 125 REWIND( numnam_ref ) ! Namelist nambdy in reference namelist :Unstructured open boundaries -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/BDY/bdytides.F90
r3875 r3901 94 94 ENDIF 95 95 96 ln_bdytide_2ddta = .FALSE.97 ln_bdytide_conj = .FALSE.98 99 96 REWIND(numnam_cfg) 100 97 … … 109 106 filtide(:) = '' 110 107 111 ! Don't REWIND here - may need to read more than one of these namelists. 112 ! Read only configuration namelist to avoid unsecessful overwrite 113 !! REWIND( numnam_ref ) ! Namelist nambdy_tide in reference namelist : 114 !! READ ( numnam_ref, nambdy_tide, IOSTAT = ios, ERR = 901) 115 !! 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambdy_tide in reference namelist', lwp ) 116 117 !! REWIND( numnam_cfg ) ! Namelist nambdy_tide in configuration namelist : 108 ! Don't REWIND here - may need to read more than one of these namelists. 118 109 READ ( numnam_cfg, nambdy_tide, IOSTAT = ios, ERR = 902 ) 119 110 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambdy_tide in configuration namelist', lwp ) -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/DIA/diadct.F90
r3875 r3901 66 66 67 67 !! * Module variables 68 INTEGER :: nn_dct = 1! Frequency of computation69 INTEGER :: nn_dctwri = 1! Frequency of output70 INTEGER :: nn_secdebug = 0! Number of the section to debug68 INTEGER :: nn_dct ! Frequency of computation 69 INTEGER :: nn_dctwri ! Frequency of output 70 INTEGER :: nn_secdebug ! Number of the section to debug 71 71 72 72 INTEGER, PARAMETER :: nb_class_max = 10 -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/DIA/diaharm.F90
r3875 r3901 31 31 32 32 INTEGER :: & !! namelist variables 33 nit000_han = 1, & ! First time step used for harmonic analysis34 nitend_han = 1, & ! Last time step used for harmonic analysis35 nstep_han = 1, & ! Time step frequency for harmonic analysis33 nit000_han , & ! First time step used for harmonic analysis 34 nitend_han , & ! Last time step used for harmonic analysis 35 nstep_han , & ! Time step frequency for harmonic analysis 36 36 nb_ana ! Number of harmonics to analyse 37 37 … … 90 90 ! 91 91 CALL tide_init_Wave 92 !93 tname(:)=''94 92 ! 95 93 REWIND( numnam_ref ) ! Namelist nam_diaharm in reference namelist : Tidal harmonic analysis -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/DIA/diahsb.F90
r3875 r3901 28 28 PUBLIC dia_hsb_init ! routine called by opa.F90 29 29 30 LOGICAL, PUBLIC :: ln_diahsb = .FALSE.!: check the heat and salt budgets30 LOGICAL, PUBLIC :: ln_diahsb !: check the heat and salt budgets 31 31 32 32 INTEGER :: numhsb ! -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/DIA/diaptr.F90
r3875 r3901 44 44 PUBLIC ptr_vjk ! call by tra_ldf & tra_adv routines 45 45 46 ! 47 LOGICAL , PUBLIC :: ln_diaptr = .FALSE.!: Poleward transport flag (T) or not (F)48 LOGICAL , PUBLIC :: ln_subbas = .FALSE.!: Atlantic/Pacific/Indian basins calculation49 LOGICAL , PUBLIC :: ln_diaznl = .FALSE.!: Add zonal means and meridional stream functions50 LOGICAL , PUBLIC :: ln_ptrcomp = .FALSE.!: Add decomposition : overturning (and gyre, soon ...)51 INTEGER , PUBLIC :: nn_fptr = 15!: frequency of ptr computation [time step]52 INTEGER , PUBLIC :: nn_fwri = 15!: frequency of ptr outputs [time step]46 ! !!** namelist namptr ** 47 LOGICAL , PUBLIC :: ln_diaptr !: Poleward transport flag (T) or not (F) 48 LOGICAL , PUBLIC :: ln_subbas !: Atlantic/Pacific/Indian basins calculation 49 LOGICAL , PUBLIC :: ln_diaznl !: Add zonal means and meridional stream functions 50 LOGICAL , PUBLIC :: ln_ptrcomp !: Add decomposition : overturning (and gyre, soon ...) 51 INTEGER , PUBLIC :: nn_fptr !: frequency of ptr computation [time step] 52 INTEGER , PUBLIC :: nn_fwri !: frequency of ptr outputs [time step] 53 53 54 54 REAL(wp), ALLOCATABLE, SAVE, PUBLIC, DIMENSION(:) :: htr_adv, htr_ldf, htr_ove !: Heat TRansports (adv, diff, overturn.) -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/DOM/dom_oce.F90
r3851 r3901 28 28 !! time & space domain namelist 29 29 !! ---------------------------- 30 ! 31 INTEGER , PUBLIC :: nn_bathy = 0!: = 0/1 ,compute/read the bathymetry file32 REAL(wp), PUBLIC :: rn_hmin = -3.0_wp!: minimum ocean depth (>0) or minimum number of ocean levels (<0)33 REAL(wp), PUBLIC :: rn_e3zps_min = 5.0_wp!: miminum thickness for partial steps (meters)34 REAL(wp), PUBLIC :: rn_e3zps_rat = 0.1_wp!: minimum thickness ration for partial steps35 INTEGER , PUBLIC :: nn_msh = 0!: = 1 create a mesh-mask file36 INTEGER , PUBLIC :: nn_acc = 0!: = 0/1 use of the acceleration of convergence technique37 REAL(wp), PUBLIC :: rn_atfp = 0.1_wp!: asselin time filter parameter38 REAL(wp), PUBLIC :: rn_rdt = 3600._wp!: time step for the dynamics (and tracer if nacc=0)39 REAL(wp), PUBLIC :: rn_rdtmin = 3600._wp!: minimum time step on tracers40 REAL(wp), PUBLIC :: rn_rdtmax = 3600._wp!: maximum time step on tracers41 REAL(wp), PUBLIC :: rn_rdth = 800._wp!: depth variation of tracer step42 INTEGER , PUBLIC :: nn_baro = 64!: number of barotropic time steps (key_dynspg_ts)43 INTEGER , PUBLIC :: nn_closea = 0!: =0 suppress closed sea/lake from the ORCA domain or not (=1)30 ! !!* Namelist namdom : time & space domain * 31 INTEGER , PUBLIC :: nn_bathy !: = 0/1 ,compute/read the bathymetry file 32 REAL(wp), PUBLIC :: rn_hmin !: minimum ocean depth (>0) or minimum number of ocean levels (<0) 33 REAL(wp), PUBLIC :: rn_e3zps_min !: miminum thickness for partial steps (meters) 34 REAL(wp), PUBLIC :: rn_e3zps_rat !: minimum thickness ration for partial steps 35 INTEGER , PUBLIC :: nn_msh !: = 1 create a mesh-mask file 36 INTEGER , PUBLIC :: nn_acc !: = 0/1 use of the acceleration of convergence technique 37 REAL(wp), PUBLIC :: rn_atfp !: asselin time filter parameter 38 REAL(wp), PUBLIC :: rn_rdt !: time step for the dynamics (and tracer if nacc=0) 39 REAL(wp), PUBLIC :: rn_rdtmin !: minimum time step on tracers 40 REAL(wp), PUBLIC :: rn_rdtmax !: maximum time step on tracers 41 REAL(wp), PUBLIC :: rn_rdth !: depth variation of tracer step 42 INTEGER , PUBLIC :: nn_baro !: number of barotropic time steps (key_dynspg_ts) 43 INTEGER , PUBLIC :: nn_closea !: =0 suppress closed sea/lake from the ORCA domain or not (=1) 44 44 45 45 ! !! old non-DOCTOR names still used in the model … … 62 62 63 63 ! !!* Namelist namcla : cross land advection 64 INTEGER, PUBLIC :: nn_cla = 0!: =1 cross land advection for exchanges through some straits (ORCA2)64 INTEGER, PUBLIC :: nn_cla !: =1 cross land advection for exchanges through some straits (ORCA2) 65 65 66 66 !!---------------------------------------------------------------------- … … 127 127 !! vertical coordinate and scale factors 128 128 !! --------------------------------------------------------------------- 129 ! 130 LOGICAL, PUBLIC :: ln_zco = .TRUE.!: z-coordinate - full step131 LOGICAL, PUBLIC :: ln_zps = .FALSE.!: z-coordinate - partial step132 LOGICAL, PUBLIC :: ln_sco = .FALSE.!: s-coordinate or hybrid z-s coordinate129 ! !!* Namelist namzgr : vertical coordinate * 130 LOGICAL, PUBLIC :: ln_zco !: z-coordinate - full step 131 LOGICAL, PUBLIC :: ln_zps !: z-coordinate - partial step 132 LOGICAL, PUBLIC :: ln_sco !: s-coordinate or hybrid z-s coordinate 133 133 134 134 !! All coordinates -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/DOM/dommsk.F90
r3875 r3901 39 39 40 40 ! !!* Namelist namlbc : lateral boundary condition * 41 REAL(wp) :: rn_shlat = 2.! type of lateral boundary condition on velocity42 LOGICAL, PUBLIC :: ln_vorlat = .false.! consistency of vorticity boundary condition41 REAL(wp) :: rn_shlat ! type of lateral boundary condition on velocity 42 LOGICAL, PUBLIC :: ln_vorlat ! consistency of vorticity boundary condition 43 43 ! with analytical eqs. 44 44 -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/DOM/domzgr.F90
r3875 r3901 49 49 PUBLIC dom_zgr ! called by dom_init.F90 50 50 51 ! 52 LOGICAL :: ln_s_sh94 = .false.! use hybrid s-sig Song and Haidvogel 1994 stretching function fssig1 (ln_sco=T)53 LOGICAL :: ln_s_sf12 = .true.! use hybrid s-z-sig Siddorn and Furner 2012 stretching function fgamma (ln_sco=T)51 ! !!* Namelist namzgr_sco * 52 LOGICAL :: ln_s_sh94 ! use hybrid s-sig Song and Haidvogel 1994 stretching function fssig1 (ln_sco=T) 53 LOGICAL :: ln_s_sf12 ! use hybrid s-z-sig Siddorn and Furner 2012 stretching function fgamma (ln_sco=T) 54 54 ! 55 REAL(wp) :: rn_sbot_min = 300._wp! minimum depth of s-bottom surface (>0) (m)56 REAL(wp) :: rn_sbot_max = 5250._wp! maximum depth of s-bottom surface (= ocean depth) (>0) (m)57 REAL(wp) :: rn_rmax = 0.15_wp! maximum cut-off r-value allowed (0<rn_rmax<1)58 REAL(wp) :: rn_hc = 150._wp! Critical depth for transition from sigma to stretched coordinates55 REAL(wp) :: rn_sbot_min ! minimum depth of s-bottom surface (>0) (m) 56 REAL(wp) :: rn_sbot_max ! maximum depth of s-bottom surface (= ocean depth) (>0) (m) 57 REAL(wp) :: rn_rmax ! maximum cut-off r-value allowed (0<rn_rmax<1) 58 REAL(wp) :: rn_hc ! Critical depth for transition from sigma to stretched coordinates 59 59 ! Song and Haidvogel 1994 stretching parameters 60 REAL(wp) :: rn_theta = 6.00_wp! surface control parameter (0<=rn_theta<=20)61 REAL(wp) :: rn_thetb = 0.75_wp! bottom control parameter (0<=rn_thetb<= 1)62 REAL(wp) :: rn_bb = 0.80_wp! stretching parameter60 REAL(wp) :: rn_theta ! surface control parameter (0<=rn_theta<=20) 61 REAL(wp) :: rn_thetb ! bottom control parameter (0<=rn_thetb<= 1) 62 REAL(wp) :: rn_bb ! stretching parameter 63 63 ! ! ( rn_bb=0; top only, rn_bb =1; top and bottom) 64 64 ! Siddorn and Furner stretching parameters 65 LOGICAL :: ln_sigcrit = .false.! use sigma coordinates below critical depth (T) or Z coordinates (F) for Siddorn & Furner stretch66 REAL(wp) :: rn_alpha = 4.4_wp! control parameter ( > 1 stretch towards surface, < 1 towards seabed)67 REAL(wp) :: rn_efold = 0.0_wp! efold length scale for transition to stretched coord68 REAL(wp) :: rn_zs = 1.0_wp! depth of surface grid box65 LOGICAL :: ln_sigcrit ! use sigma coordinates below critical depth (T) or Z coordinates (F) for Siddorn & Furner stretch 66 REAL(wp) :: rn_alpha ! control parameter ( > 1 stretch towards surface, < 1 towards seabed) 67 REAL(wp) :: rn_efold ! efold length scale for transition to stretched coord 68 REAL(wp) :: rn_zs ! depth of surface grid box 69 69 ! bottom cell depth (Zb) is a linear function of water depth Zb = H*a + b 70 REAL(wp) :: rn_zb_a = 0.024_wp! bathymetry scaling factor for calculating Zb71 REAL(wp) :: rn_zb_b = -0.2_wp! offset for calculating Zb70 REAL(wp) :: rn_zb_a ! bathymetry scaling factor for calculating Zb 71 REAL(wp) :: rn_zb_b ! offset for calculating Zb 72 72 73 73 !! * Substitutions -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/DOM/dtatsd.F90
r3875 r3901 30 30 PUBLIC dta_tsd ! called by istate.F90 and tradmp.90 31 31 32 LOGICAL , PUBLIC :: ln_tsd_init = .FALSE.!: T & S data flag33 LOGICAL , PUBLIC :: ln_tsd_tradmp = .FALSE.!: internal damping toward input data flag32 LOGICAL , PUBLIC :: ln_tsd_init !: T & S data flag 33 LOGICAL , PUBLIC :: ln_tsd_tradmp !: internal damping toward input data flag 34 34 35 35 TYPE(FLD), ALLOCATABLE, DIMENSION(:) :: sf_tsd ! structure of input SST (file informations, fields read) -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/DYN/dynadv.F90
r3875 r3901 27 27 PUBLIC dyn_adv_init ! routine called by opa module 28 28 29 LOGICAL, PUBLIC :: ln_dynadv_vec = .TRUE.!: vector form flag30 LOGICAL, PUBLIC :: ln_dynadv_cen2 = .FALSE.!: flux form - 2nd order centered scheme flag31 LOGICAL, PUBLIC :: ln_dynadv_ubs = .FALSE.!: flux form - 3rd order UBS scheme flag29 LOGICAL, PUBLIC :: ln_dynadv_vec !: vector form flag 30 LOGICAL, PUBLIC :: ln_dynadv_cen2 !: flux form - 2nd order centered scheme flag 31 LOGICAL, PUBLIC :: ln_dynadv_ubs !: flux form - 3rd order UBS scheme flag 32 32 33 33 INTEGER :: nadv ! choice of the formulation and scheme for the advection -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/DYN/dynhpg.F90
r3875 r3901 46 46 PUBLIC dyn_hpg_init ! routine called by opa module 47 47 48 ! 49 LOGICAL , PUBLIC :: ln_hpg_zco = .TRUE.!: z-coordinate - full steps50 LOGICAL , PUBLIC :: ln_hpg_zps = .FALSE.!: z-coordinate - partial steps (interpolation)51 LOGICAL , PUBLIC :: ln_hpg_sco = .FALSE.!: s-coordinate (standard jacobian formulation)52 LOGICAL , PUBLIC :: ln_hpg_djc = .FALSE.!: s-coordinate (Density Jacobian with Cubic polynomial)53 LOGICAL , PUBLIC :: ln_hpg_prj = .FALSE.!: s-coordinate (Pressure Jacobian scheme)54 LOGICAL , PUBLIC :: ln_dynhpg_imp = .FALSE.!: semi-implicite hpg flag48 ! !!* Namelist namdyn_hpg : hydrostatic pressure gradient 49 LOGICAL , PUBLIC :: ln_hpg_zco !: z-coordinate - full steps 50 LOGICAL , PUBLIC :: ln_hpg_zps !: z-coordinate - partial steps (interpolation) 51 LOGICAL , PUBLIC :: ln_hpg_sco !: s-coordinate (standard jacobian formulation) 52 LOGICAL , PUBLIC :: ln_hpg_djc !: s-coordinate (Density Jacobian with Cubic polynomial) 53 LOGICAL , PUBLIC :: ln_hpg_prj !: s-coordinate (Pressure Jacobian scheme) 54 LOGICAL , PUBLIC :: ln_dynhpg_imp !: semi-implicite hpg flag 55 55 56 56 INTEGER , PUBLIC :: nhpg = 0 ! = 0 to 7, type of pressure gradient scheme used ! (deduced from ln_hpg_... flags) (PUBLIC for TAM) -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/DYN/dynnept.F90
r3875 r3901 49 49 50 50 !! * Namelist namdyn_nept variables 51 LOGICAL, PUBLIC :: ln_neptsimp = .FALSE.! yes/no simplified neptune52 53 LOGICAL :: ln_smooth_neptvel = .FALSE.! yes/no smooth zunep, zvnep54 REAL(wp) :: rn_tslse = 1.2e4! value of lengthscale L at the equator55 REAL(wp) :: rn_tslsp = 3.0e3! value of lengthscale L at the pole51 LOGICAL, PUBLIC :: ln_neptsimp ! yes/no simplified neptune 52 53 LOGICAL :: ln_smooth_neptvel ! yes/no smooth zunep, zvnep 54 REAL(wp) :: rn_tslse ! value of lengthscale L at the equator 55 REAL(wp) :: rn_tslsp ! value of lengthscale L at the pole 56 56 !! Specify whether to ramp down the Neptune velocity in shallow 57 57 !! water, and the depth range controlling such ramping down 58 LOGICAL :: ln_neptramp = .FALSE.! ramp down Neptune velocity in shallow water59 REAL(wp) :: rn_htrmin = 100.0! min. depth of transition range60 REAL(wp) :: rn_htrmax = 200.0! max. depth of transition range58 LOGICAL :: ln_neptramp ! ramp down Neptune velocity in shallow water 59 REAL(wp) :: rn_htrmin ! min. depth of transition range 60 REAL(wp) :: rn_htrmax ! max. depth of transition range 61 61 62 62 !! * Module variables -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/DYN/dynvor.F90
r3875 r3901 45 45 PUBLIC dyn_vor_init ! routine called by opa.F90 46 46 47 ! 48 LOGICAL, PUBLIC :: ln_dynvor_ene = .FALSE.!: energy conserving scheme49 LOGICAL, PUBLIC :: ln_dynvor_ens = .TRUE.!: enstrophy conserving scheme50 LOGICAL, PUBLIC :: ln_dynvor_mix = .FALSE.!: mixed scheme51 LOGICAL, PUBLIC :: ln_dynvor_een = .FALSE.!: energy and enstrophy conserving scheme47 ! !!* Namelist namdyn_vor: vorticity term 48 LOGICAL, PUBLIC :: ln_dynvor_ene !: energy conserving scheme 49 LOGICAL, PUBLIC :: ln_dynvor_ens !: enstrophy conserving scheme 50 LOGICAL, PUBLIC :: ln_dynvor_mix !: mixed scheme 51 LOGICAL, PUBLIC :: ln_dynvor_een !: energy and enstrophy conserving scheme 52 52 53 53 INTEGER :: nvor = 0 ! type of vorticity trend used -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/FLO/flo_oce.F90
r3294 r3901 39 39 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: wb !: vertical velocity at previous time step (m s-1). 40 40 41 ! !!! * namelist namflo : langrangian floats *42 LOGICAL, PUBLIC :: ln_rstflo = .FALSE.!: T/F float restart43 LOGICAL, PUBLIC :: ln_argo = .FALSE.!: T/F argo type floats44 LOGICAL, PUBLIC :: ln_flork4 = .FALSE.!: T/F 4th order Runge-Kutta45 LOGICAL, PUBLIC :: ln_ariane = .FALSE.!: handle ariane input/output convention46 LOGICAL, PUBLIC :: ln_flo_ascii = .FALSE.!: write in ascii (T) or in Netcdf (F)41 ! !! * namelist namflo : langrangian floats * 42 LOGICAL, PUBLIC :: ln_rstflo !: T/F float restart 43 LOGICAL, PUBLIC :: ln_argo !: T/F argo type floats 44 LOGICAL, PUBLIC :: ln_flork4 !: T/F 4th order Runge-Kutta 45 LOGICAL, PUBLIC :: ln_ariane !: handle ariane input/output convention 46 LOGICAL, PUBLIC :: ln_flo_ascii !: write in ascii (T) or in Netcdf (F) 47 47 48 INTEGER, PUBLIC :: nn_writefl = 150!: frequency of float output file49 INTEGER, PUBLIC :: nn_stockfl = 450!: frequency of float restart file48 INTEGER, PUBLIC :: nn_writefl !: frequency of float output file 49 INTEGER, PUBLIC :: nn_stockfl !: frequency of float restart file 50 50 51 51 !!---------------------------------------------------------------------- -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/ICB/icb_oce.F90
r3614 r3901 109 109 110 110 ! !!* namberg namelist parameters (and defaults) ** 111 LOGICAL , PUBLIC :: ln_bergdia = .true.!: Calculate budgets112 INTEGER , PUBLIC :: nn_verbose_level = 0!: Turn on debugging when level > 0113 INTEGER , PUBLIC :: nn_test_icebergs = 0!: Create icebergs in absence of a restart file from the supplied class nb114 REAL(wp), PUBLIC, DIMENSION(4) :: rn_test_box = (/ 0._wp, 1._wp, 0._wp, 1._wp /)!: lon1,lon2,lat1,lat2 box to create them in115 INTEGER , PUBLIC :: nn_sample_rate = 0!: Timesteps between sampling of position for trajectory storage116 INTEGER , PUBLIC :: nn_verbose_write = 15!: timesteps between verbose messages117 REAL(wp), PUBLIC :: rn_rho_bergs = 850._wp!: Density of icebergs118 REAL(wp), PUBLIC :: rn_LoW_ratio = 1.5_wp!: Initial ratio L/W for newly calved icebergs119 REAL(wp), PUBLIC :: rn_bits_erosion_fraction = 0.!: Fraction of erosion melt flux to divert to bergy bits120 REAL(wp), PUBLIC :: rn_sicn_shift = 0._wp!: Shift of sea-ice concentration in erosion flux modulation (0<sicn_shift<1)121 LOGICAL , PUBLIC :: ln_operator_splitting = .true.!: Use first order operator splitting for thermodynamics122 LOGICAL , PUBLIC :: ln_passive_mode = .false.!: iceberg - ocean decoupling123 LOGICAL , PUBLIC :: ln_time_average_weight = .false.!: Time average the weight on the ocean !!gm I don't understand that !124 REAL(wp), PUBLIC :: rn_speed_limit = 0._wp!: CFL speed limit for a berg111 LOGICAL , PUBLIC :: ln_bergdia !: Calculate budgets 112 INTEGER , PUBLIC :: nn_verbose_level !: Turn on debugging when level > 0 113 INTEGER , PUBLIC :: nn_test_icebergs !: Create icebergs in absence of a restart file from the supplied class nb 114 REAL(wp), PUBLIC, DIMENSION(4) :: rn_test_box !: lon1,lon2,lat1,lat2 box to create them in 115 INTEGER , PUBLIC :: nn_sample_rate !: Timesteps between sampling of position for trajectory storage 116 INTEGER , PUBLIC :: nn_verbose_write !: timesteps between verbose messages 117 REAL(wp), PUBLIC :: rn_rho_bergs !: Density of icebergs 118 REAL(wp), PUBLIC :: rn_LoW_ratio !: Initial ratio L/W for newly calved icebergs 119 REAL(wp), PUBLIC :: rn_bits_erosion_fraction !: Fraction of erosion melt flux to divert to bergy bits 120 REAL(wp), PUBLIC :: rn_sicn_shift !: Shift of sea-ice concentration in erosion flux modulation (0<sicn_shift<1) 121 LOGICAL , PUBLIC :: ln_operator_splitting !: Use first order operator splitting for thermodynamics 122 LOGICAL , PUBLIC :: ln_passive_mode !: iceberg - ocean decoupling 123 LOGICAL , PUBLIC :: ln_time_average_weight !: Time average the weight on the ocean !!gm I don't understand that ! 124 REAL(wp), PUBLIC :: rn_speed_limit !: CFL speed limit for a berg 125 125 ! 126 126 ! ! Mass thresholds between iceberg classes [kg] 127 REAL(wp), DIMENSION(nclasses), PUBLIC :: rn_initial_mass = (/8.8e07, 4.1e08, 3.3e09, 1.8e10, 3.8e10, & 128 & 7.5e10, 1.2e11, 2.2e11, 3.9e11, 7.4e11/) 129 ! ! Fraction of calving to apply to this class [non-dim] 130 REAL(wp), DIMENSION(nclasses), PUBLIC :: rn_distribution = (/0.25 , 0.12 , 0.15 , 0.18 , 0.12 , & 131 & 0.07 , 0.03 , 0.03 , 0.03 , 0.02 /) 132 ! ! Ratio between effective and real iceberg mass (non-dim) 133 REAL(wp), DIMENSION(nclasses), PUBLIC :: rn_mass_scaling = (/2000. , 200. , 50. , 20. , 10. , & 134 & 5. , 2. , 1. , 1. , 1. /) 135 ! ! Total thickness of newly calved bergs [m] 136 REAL(wp), DIMENSION(nclasses), PUBLIC :: rn_initial_thickness = (/ 40. , 67. , 133. , 175. , 250. , & 137 & 250. , 250. , 250. , 250. , 250./) 138 139 ! Single instance of an icebergs type initialised in icebergs_init and updated in icebergs_run 127 REAL(wp), DIMENSION(nclasses), PUBLIC :: rn_initial_mass ! Fraction of calving to apply to this class [non-dim] 128 REAL(wp), DIMENSION(nclasses), PUBLIC :: rn_distribution ! Ratio between effective and real iceberg mass (non-dim) 129 REAL(wp), DIMENSION(nclasses), PUBLIC :: rn_mass_scaling ! Total thickness of newly calved bergs [m] 130 REAL(wp), DIMENSION(nclasses), PUBLIC :: rn_initial_thickness ! Single instance of an icebergs type initialised in icebergs_init and updated in icebergs_run 140 131 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: src_calving, src_calving_hflx !: accumulate input ice 141 132 INTEGER , PUBLIC , SAVE :: numicb !: iceberg IO -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/ICB/icbini.F90
r3875 r3901 35 35 PUBLIC icb_init ! routine called in nemogcm.F90 module 36 36 37 CHARACTER(len=100) :: cn_dir = './'! Root directory for location of icb files37 CHARACTER(len=100) :: cn_dir ! Root directory for location of icb files 38 38 TYPE(FLD_N) :: sn_icb ! information about the calving file to be read 39 39 … … 355 355 !!---------------------------------------------------------------------- 356 356 357 ! (NB: frequency positive => hours, negative => months)358 ! ! file ! frequency ! variable ! time intep ! clim ! 'yearly' or ! weights ! rotation !359 ! ! name ! (hours) ! name ! (T/F) ! (T/F) ! 'monthly' ! filename ! pairs !360 sn_icb = FLD_N( 'calving' , -1 , 'calving' , .TRUE. , .TRUE. , 'yearly' , '' , '' )361 362 357 REWIND( numnam_ref ) ! Namelist namberg in reference namelist : Iceberg parameters 363 358 READ ( numnam_ref, namberg, IOSTAT = ios, ERR = 901) -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/IOM/in_out_manager.F90
r3875 r3901 22 22 !! namrun namelist parameters 23 23 !!---------------------------------------------------------------------- 24 CHARACTER(lc) :: cn_exp = "exp0"!: experiment name used for output filename25 CHARACTER(lc) :: cn_ocerst_in = "restart"!: suffix of ocean restart name (input)26 CHARACTER(lc) :: cn_ocerst_out = "restart"!: suffix of ocean restart name (output)27 LOGICAL :: ln_rstart = .FALSE.!: start from (F) rest or (T) a restart file28 INTEGER :: nn_no = 0!: job number29 INTEGER :: nn_rstctl = 0!: control of the time step (0, 1 or 2)24 CHARACTER(lc) :: cn_exp !: experiment name used for output filename 25 CHARACTER(lc) :: cn_ocerst_in !: suffix of ocean restart name (input) 26 CHARACTER(lc) :: cn_ocerst_out !: suffix of ocean restart name (output) 27 LOGICAL :: ln_rstart !: start from (F) rest or (T) a restart file 28 INTEGER :: nn_no !: job number 29 INTEGER :: nn_rstctl !: control of the time step (0, 1 or 2) 30 30 INTEGER :: nn_rstssh = 0 !: hand made initilization of ssh or not (1/0) 31 INTEGER :: nn_it000 = 1!: index of the first time step32 INTEGER :: nn_itend = 10!: index of the last time step33 INTEGER :: nn_date0 = 961115!: initial calendar date aammjj34 INTEGER :: nn_leapy = 0!: Leap year calendar flag (0/1 or 30)35 INTEGER :: nn_istate = 0!: initial state output flag (0/1)36 INTEGER :: nn_write = 10!: model standard output frequency37 INTEGER :: nn_stock = 10!: restart file frequency38 LOGICAL :: ln_dimgnnn = .FALSE.!: type of dimgout. (F): 1 file for all proc31 INTEGER :: nn_it000 !: index of the first time step 32 INTEGER :: nn_itend !: index of the last time step 33 INTEGER :: nn_date0 !: initial calendar date aammjj 34 INTEGER :: nn_leapy !: Leap year calendar flag (0/1 or 30) 35 INTEGER :: nn_istate !: initial state output flag (0/1) 36 INTEGER :: nn_write !: model standard output frequency 37 INTEGER :: nn_stock !: restart file frequency 38 LOGICAL :: ln_dimgnnn !: type of dimgout. (F): 1 file for all proc 39 39 !: (T): 1 file per proc 40 LOGICAL :: ln_mskland = .FALSE.!: mask land points in NetCDF outputs (costly: + ~15%)41 LOGICAL :: ln_clobber = .FALSE.!: clobber (overwrite) an existing file42 INTEGER :: nn_chunksz = 0!: chunksize (bytes) for NetCDF file (works only with iom_nf90 routines)40 LOGICAL :: ln_mskland !: mask land points in NetCDF outputs (costly: + ~15%) 41 LOGICAL :: ln_clobber !: clobber (overwrite) an existing file 42 INTEGER :: nn_chunksz !: chunksize (bytes) for NetCDF file (works only with iom_nf90 routines) 43 43 #if defined key_netcdf4 44 44 !!---------------------------------------------------------------------- … … 49 49 ! for runtime optimisation. The individual netcdf4 chunks can be optionally 50 50 ! gzipped (recommended) leading to significant reductions in I/O volumes 51 ! 52 INTEGER :: nn_nchunks_i = 1!: number of chunks required in the i-dimension53 INTEGER :: nn_nchunks_j = 1!: number of chunks required in the j-dimension54 INTEGER :: nn_nchunks_k = 1!: number of chunks required in the k-dimension55 INTEGER :: nn_nchunks_t = 1!: number of chunks required in the t-dimension56 LOGICAL :: ln_nc4zip = .TRUE.!: netcdf4 usage: (T) chunk and compress output using the HDF5 sublayers of netcdf457 ! 58 ! 51 ! !!!** variables only used with iom_nf90 routines and key_netcdf4 ** 52 INTEGER :: nn_nchunks_i !: number of chunks required in the i-dimension 53 INTEGER :: nn_nchunks_j !: number of chunks required in the j-dimension 54 INTEGER :: nn_nchunks_k !: number of chunks required in the k-dimension 55 INTEGER :: nn_nchunks_t !: number of chunks required in the t-dimension 56 LOGICAL :: ln_nc4zip !: netcdf4 usage: (T) chunk and compress output using the HDF5 sublayers of netcdf4 57 ! ! (F) ignore chunking request and use the netcdf4 library 58 ! ! to produce netcdf3-compatible files 59 59 #endif 60 60 !$AGRIF_DO_NOT_TREAT … … 87 87 !! output monitoring 88 88 !!---------------------------------------------------------------------- 89 LOGICAL :: ln_ctl = .FALSE.!: run control for debugging90 INTEGER :: nn_timing = 0!: run control for timing91 INTEGER :: nn_print = 0!: level of print (0 no print)92 INTEGER :: nn_ictls = 0!: Start i indice for the SUM control93 INTEGER :: nn_ictle = 0!: End i indice for the SUM control94 INTEGER :: nn_jctls = 0!: Start j indice for the SUM control95 INTEGER :: nn_jctle = 0!: End j indice for the SUM control96 INTEGER :: nn_isplt = 1!: number of processors following i97 INTEGER :: nn_jsplt = 1!: number of processors following j98 INTEGER :: nn_bench = 0!: benchmark parameter (0/1)89 LOGICAL :: ln_ctl !: run control for debugging 90 INTEGER :: nn_timing !: run control for timing 91 INTEGER :: nn_print !: level of print (0 no print) 92 INTEGER :: nn_ictls !: Start i indice for the SUM control 93 INTEGER :: nn_ictle !: End i indice for the SUM control 94 INTEGER :: nn_jctls !: Start j indice for the SUM control 95 INTEGER :: nn_jctle !: End j indice for the SUM control 96 INTEGER :: nn_isplt !: number of processors following i 97 INTEGER :: nn_jsplt !: number of processors following j 98 INTEGER :: nn_bench !: benchmark parameter (0/1) 99 99 INTEGER :: nn_bit_cmp = 0 !: bit reproducibility (0/1) 100 100 -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/LBC/lib_mpp.F90
r3875 r3901 145 145 146 146 ! Type of send : standard, buffered, immediate 147 CHARACTER(len=1), PUBLIC :: cn_mpi_send = 'S'! type od mpi send/recieve (S=standard, B=bsend, I=isend)147 CHARACTER(len=1), PUBLIC :: cn_mpi_send ! type od mpi send/recieve (S=standard, B=bsend, I=isend) 148 148 LOGICAL, PUBLIC :: l_isend = .FALSE. ! isend use indicator (T if cn_mpi_send='I') 149 INTEGER, PUBLIC :: nn_buffer = 0! size of the buffer in case of mpi_bsend149 INTEGER, PUBLIC :: nn_buffer ! size of the buffer in case of mpi_bsend 150 150 151 151 REAL(wp), DIMENSION(:), ALLOCATABLE, SAVE :: tampon ! buffer in case of bsend … … 250 250 WRITE(ldtxt(ii),*) '~~~~~~ ' ; ii = ii + 1 251 251 ! 252 jpni = -1; jpnj = -1; jpnij = -1253 252 254 253 REWIND( kumnam_ref ) ! Namelist nammpp in reference namelist: mpi variables … … 3456 3455 3457 3456 LOGICAL, PUBLIC, PARAMETER :: lk_mpp = .FALSE. !: mpp flag 3458 LOGICAL, PUBLIC :: ln_nnogather = .FALSE.!: namelist control of northfold comms (needed here in case "key_mpp_mpi" is not used)3457 LOGICAL, PUBLIC :: ln_nnogather !: namelist control of northfold comms (needed here in case "key_mpp_mpi" is not used) 3459 3458 INTEGER :: ncomm_ice 3460 3459 !!---------------------------------------------------------------------- -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/LDF/ldfdyn_oce.F90
r3634 r3901 13 13 PUBLIC 14 14 15 ! 16 LOGICAL , PUBLIC :: ln_dynldf_lap = .TRUE.!: laplacian operator17 LOGICAL , PUBLIC :: ln_dynldf_bilap = .FALSE.!: bilaplacian operator18 LOGICAL , PUBLIC :: ln_dynldf_level = .FALSE.!: iso-level direction19 LOGICAL , PUBLIC :: ln_dynldf_hor = .TRUE.!: horizontal (geopotential) direction20 LOGICAL , PUBLIC :: ln_dynldf_iso = .FALSE.!: iso-neutral direction21 REAL(wp), PUBLIC :: rn_ahm_0_lap = 40000._wp!: lateral laplacian eddy viscosity (m2/s)22 REAL(wp), PUBLIC :: rn_ahmb_0 = 0._wp!: lateral laplacian background eddy viscosity (m2/s)23 REAL(wp), PUBLIC :: rn_ahm_0_blp = 0._wp!: lateral bilaplacian eddy viscosity (m4/s)15 ! !!* Namelist namdyn_ldf : lateral mixing * 16 LOGICAL , PUBLIC :: ln_dynldf_lap !: laplacian operator 17 LOGICAL , PUBLIC :: ln_dynldf_bilap !: bilaplacian operator 18 LOGICAL , PUBLIC :: ln_dynldf_level !: iso-level direction 19 LOGICAL , PUBLIC :: ln_dynldf_hor !: horizontal (geopotential) direction 20 LOGICAL , PUBLIC :: ln_dynldf_iso !: iso-neutral direction 21 REAL(wp), PUBLIC :: rn_ahm_0_lap !: lateral laplacian eddy viscosity (m2/s) 22 REAL(wp), PUBLIC :: rn_ahmb_0 !: lateral laplacian background eddy viscosity (m2/s) 23 REAL(wp), PUBLIC :: rn_ahm_0_blp !: lateral bilaplacian eddy viscosity (m4/s) 24 24 REAL(wp), PUBLIC :: ahm0, ahmb0, ahm0_blp !: OLD namelist names 25 REAL(wp), PUBLIC :: rn_cmsmag_1 = 3._wp !: constant in laplacian Smagorinsky viscosity 26 REAL(wp), PUBLIC :: rn_cmsmag_2 = 3._wp !: constant in bilaplacian Smagorinsky viscosity 27 REAL(wp), PUBLIC :: rn_cmsh = 1._wp !: 1 or 0 , if 0 -use only shear for Smagorinsky viscosity 28 REAL(wp), PUBLIC :: rn_ahm_m_blp = -1.e12_wp !: upper limit for bilap abs(ahm) < min( dx^4/128rdt, rn_ahm_m_blp) 29 REAL(wp), PUBLIC :: rn_ahm_m_lap = 40000_wp !: upper limit for lap ahm < min(dx^2/16rdt, rn_ahm_m_lap) 25 REAL(wp), PUBLIC :: rn_cmsmag_1 !: constant in laplacian Smagorinsky viscosity 26 REAL(wp), PUBLIC :: rn_cmsmag_2 !: constant in bilaplacian Smagorinsky viscosity 27 REAL(wp), PUBLIC :: rn_cmsh !: 1 or 0 , if 0 -use only shear for Smagorinsky viscosity 28 REAL(wp), PUBLIC :: rn_ahm_m_blp !: upper limit for bilap abs(ahm) < min( dx^4/128rdt, rn_ahm_m_blp) 29 REAL(wp), PUBLIC :: rn_ahm_m_lap !: upper limit for lap ahm < min(dx^2/16rdt, rn_ahm_m_lap) 30 30 31 INTEGER , PUBLIC :: nkahm_smag = 0 !: 31 32 -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/LDF/ldftra_oce.F90
r3634 r3901 18 18 !! Lateral eddy diffusivity coefficients (tracers) 19 19 !!---------------------------------------------------------------------- 20 ! 21 LOGICAL , PUBLIC :: ln_traldf_lap = .TRUE.!: laplacian operator22 LOGICAL , PUBLIC :: ln_traldf_bilap = .FALSE.!: bilaplacian operator23 LOGICAL , PUBLIC :: ln_traldf_level = .FALSE.!: iso-level direction24 LOGICAL , PUBLIC :: ln_traldf_hor = .FALSE.!: horizontal (geopotential) direction25 LOGICAL , PUBLIC :: ln_traldf_iso = .TRUE.!: iso-neutral direction26 LOGICAL , PUBLIC :: ln_traldf_grif = .FALSE.!: griffies skew flux27 LOGICAL , PUBLIC :: ln_traldf_gdia = .FALSE.!: griffies skew flux streamfunction diagnostics28 REAL(wp), PUBLIC :: rn_aht_0 = 2000._wp!: lateral eddy diffusivity (m2/s)29 REAL(wp), PUBLIC :: rn_ahtb_0 = 0._wp!: lateral background eddy diffusivity (m2/s)30 REAL(wp), PUBLIC :: rn_aeiv_0 = 2000._wp!: eddy induced velocity coefficient (m2/s)31 REAL(wp), PUBLIC :: rn_slpmax = 0.01_wp!: slope limit32 REAL(wp), PUBLIC :: rn_chsmag = 1._wp!: multiplicative factor in Smagorinsky diffusivity33 REAL(wp), PUBLIC :: rn_smsh = 1._wp!: Smagorinsky diffusivity: = 0 - use only sheer34 REAL(wp), PUBLIC :: rn_aht_m = 2000._wp!: upper limit or stability criteria for lateral eddy diffusivity (m2/s)20 ! !!* Namelist namtra_ldf : lateral mixing * 21 LOGICAL , PUBLIC :: ln_traldf_lap !: laplacian operator 22 LOGICAL , PUBLIC :: ln_traldf_bilap !: bilaplacian operator 23 LOGICAL , PUBLIC :: ln_traldf_level !: iso-level direction 24 LOGICAL , PUBLIC :: ln_traldf_hor !: horizontal (geopotential) direction 25 LOGICAL , PUBLIC :: ln_traldf_iso !: iso-neutral direction 26 LOGICAL , PUBLIC :: ln_traldf_grif !: griffies skew flux 27 LOGICAL , PUBLIC :: ln_traldf_gdia !: griffies skew flux streamfunction diagnostics 28 REAL(wp), PUBLIC :: rn_aht_0 !: lateral eddy diffusivity (m2/s) 29 REAL(wp), PUBLIC :: rn_ahtb_0 !: lateral background eddy diffusivity (m2/s) 30 REAL(wp), PUBLIC :: rn_aeiv_0 !: eddy induced velocity coefficient (m2/s) 31 REAL(wp), PUBLIC :: rn_slpmax !: slope limit 32 REAL(wp), PUBLIC :: rn_chsmag !: multiplicative factor in Smagorinsky diffusivity 33 REAL(wp), PUBLIC :: rn_smsh !: Smagorinsky diffusivity: = 0 - use only sheer 34 REAL(wp), PUBLIC :: rn_aht_m !: upper limit or stability criteria for lateral eddy diffusivity (m2/s) 35 35 36 36 REAL(wp), PUBLIC :: aht0, ahtb0, aeiv0 !!: OLD namelist names 37 37 38 LOGICAL , PUBLIC :: ln_triad_iso = .FALSE.!: calculate triads twice39 LOGICAL , PUBLIC :: ln_botmix_grif = .FALSE.!: mixing on bottom38 LOGICAL , PUBLIC :: ln_triad_iso !: calculate triads twice 39 LOGICAL , PUBLIC :: ln_botmix_grif !: mixing on bottom 40 40 LOGICAL , PUBLIC :: l_grad_zps = .FALSE. !: special treatment for Horz Tgradients w partial steps 41 41 -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/OBC/obc_oce.F90
r2715 r3901 23 23 !!---------------------------------------------------------------------- 24 24 ! 25 ! 26 INTEGER :: nn_obcdta = 0!: = 0 use the initial state as obc data27 ! 28 CHARACTER(len=20) :: cn_obcdta = 'annual'!: set to annual if obc datafile hold 1 year of data29 ! 30 LOGICAL :: ln_obc_clim = .true.!: obc data files are climatological31 LOGICAL :: ln_obc_fla = .false.!: Flather open boundary condition not used32 LOGICAL :: ln_vol_cst = .true.!: Conservation of the whole volume33 REAL(wp) :: rn_dpein = 1.!: damping time scale for inflow at East open boundary34 REAL(wp) :: rn_dpwin = 1.!: " " at West open boundary35 REAL(wp) :: rn_dpsin = 1.!: " " at South open boundary36 REAL(wp) :: rn_dpnin = 1.!: " " at North open boundary37 REAL(wp) :: rn_dpeob = 15.!: damping time scale for the climatology at East open boundary38 REAL(wp) :: rn_dpwob = 15.!: " " at West open boundary39 REAL(wp) :: rn_dpsob = 15.!: " " at South open boundary40 REAL(wp) :: rn_dpnob = 15.!: " " at North open boundary41 REAL(wp) :: rn_volemp = 1.!: = 0 the total volume will have the variability of the42 ! 43 ! 25 ! !!* Namelist namobc: open boundary condition * 26 INTEGER :: nn_obcdta !: = 0 use the initial state as obc data 27 ! ! = 1 read obc data in obcxxx.dta files 28 CHARACTER(len=20) :: cn_obcdta !: set to annual if obc datafile hold 1 year of data 29 ! ! set to monthly if obc datafile hold 1 month of data 30 LOGICAL :: ln_obc_clim !: obc data files are climatological 31 LOGICAL :: ln_obc_fla !: Flather open boundary condition not used 32 LOGICAL :: ln_vol_cst !: Conservation of the whole volume 33 REAL(wp) :: rn_dpein !: damping time scale for inflow at East open boundary 34 REAL(wp) :: rn_dpwin !: " " at West open boundary 35 REAL(wp) :: rn_dpsin !: " " at South open boundary 36 REAL(wp) :: rn_dpnin !: " " at North open boundary 37 REAL(wp) :: rn_dpeob !: damping time scale for the climatology at East open boundary 38 REAL(wp) :: rn_dpwob !: " " at West open boundary 39 REAL(wp) :: rn_dpsob !: " " at South open boundary 40 REAL(wp) :: rn_dpnob !: " " at North open boundary 41 REAL(wp) :: rn_volemp !: = 0 the total volume will have the variability of the 42 ! ! surface Flux E-P else (volemp = 1) the volume will be constant 43 ! ! = 1 the volume will be constant during all the integration. 44 44 45 45 ! !!! OLD non-DOCTOR name of namelist variables -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/OBS/diaobs.F90
r3875 r3901 203 203 ! Read namelist parameters 204 204 !----------------------------------------------------------------------- 205 ! default values already set except: 206 207 ln_t3d = .FALSE. 208 ln_s3d = .FALSE. 209 ln_vel3d = .FALSE. 210 ln_sla = .FALSE. 211 ln_altbias = .FALSE. 212 ln_ssh = .FALSE. 213 ln_sst = .FALSE. 214 ln_seaice = .FALSE. 215 ln_reysst = .FALSE. 216 ln_ghrsst = .FALSE. 217 ln_sss = .FALSE. 218 ln_profb = .FALSE. 219 ln_ena = .TRUE. 220 ln_cor = .FALSE. 221 ln_sladt = .TRUE. 222 ln_slafb = .FALSE. 223 ln_sstfb = .FALSE. 224 ln_velavcur = .FALSE. 225 ln_velhrcur = .FALSE. 226 ln_velavadcp = .FALSE. 227 ln_velhradcp = .FALSE. 228 ln_velfb = .FALSE. 229 ln_nea = .FALSE. 230 ln_grid_search_lookup = .FALSE. 231 ln_grid_global = .FALSE. 232 ln_s_at_t = .TRUE. 233 grid_search_file = 'xypos' 234 bias_file='bias.nc' 235 enactfiles(:) = '' 236 coriofiles(:) = '' 237 profbfiles(:) = '' 238 slafilesact(:) = '' 239 slafilespas(:) = '' 240 slafbfiles(:) = '' 241 sstfiles(:) = '' 242 sstfbfiles(:) = '' 243 seaicefiles(:) = '' 205 244 206 velcurfiles(:) = '' 245 207 veladcpfiles(:) = '' 246 velavcurfiles(:) = ''247 velhrcurfiles(:) = ''248 velavadcpfiles(:) = ''249 velhradcpfiles(:) = ''250 velfbfiles(:) = ''251 reysstname = 'sst_yYYYYmMM.nc'252 reysstfmt = 'monthly'253 endailyavtypes(:) = -1254 endailyavtypes(1) = 820255 ln_profb_ena(:) = .FALSE.256 ln_profb_enatim(:) = .TRUE.257 ln_velfb_av(:) = .FALSE.258 ln_ignmis = .FALSE.259 208 CALL ini_date( dobsini ) 260 209 CALL fin_date( dobsend ) 261 n1dint = 1 262 n2dint = 3 263 210 264 211 ! Read Namelist namobs : control observation diagnostics 265 212 REWIND( numnam_ref ) ! Namelist namobs in reference namelist : Diagnostic: control observation -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/SBC/albedo.F90
r3875 r3901 36 36 REAL(wp) :: rmue = 0.40 ! cosine of local solar altitude 37 37 38 ! 39 REAL(wp) :: rn_cloud = 0.06! cloudiness effect on snow or ice albedo (Grenfell & Perovich, 1984)38 ! !!* namelist namsbc_alb 39 REAL(wp) :: rn_cloud ! cloudiness effect on snow or ice albedo (Grenfell & Perovich, 1984) 40 40 #if defined key_lim3 41 REAL(wp) :: rn_albice = 0.53! albedo of melting ice in the arctic and antarctic (Shine & Hendersson-Sellers)41 REAL(wp) :: rn_albice ! albedo of melting ice in the arctic and antarctic (Shine & Hendersson-Sellers) 42 42 #else 43 REAL(wp) :: rn_albice = 0.50! albedo of melting ice in the arctic and antarctic (Shine & Hendersson-Sellers)43 REAL(wp) :: rn_albice ! albedo of melting ice in the arctic and antarctic (Shine & Hendersson-Sellers) 44 44 #endif 45 REAL(wp) :: rn_alphd = 0.80! coefficients for linear interpolation used to compute46 REAL(wp) :: rn_alphdi = 0.72! albedo between two extremes values (Pyane, 1972)47 REAL(wp) :: rn_alphc = 0.65!45 REAL(wp) :: rn_alphd ! coefficients for linear interpolation used to compute 46 REAL(wp) :: rn_alphdi ! albedo between two extremes values (Pyane, 1972) 47 REAL(wp) :: rn_alphc ! 48 48 49 49 !!---------------------------------------------------------------------- -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/SBC/cyclone.F90
r3875 r3901 87 87 TYPE(FLD_N), DIMENSION(1) :: slf_i ! array of namelist informations on the TC position 88 88 TYPE(FLD_N) :: sn_tc ! informations about the fields to be read 89 ! NAMELIST/namsbc_tc/ cn_dir , sn_tc90 89 !!-------------------------------------------------------------------- 91 90 -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_oce.F90
r3680 r3901 28 28 !! Namelist for the Ocean Surface Boundary Condition 29 29 !!---------------------------------------------------------------------- 30 ! 31 LOGICAL , PUBLIC :: ln_ana = .FALSE.!: analytical boundary condition flag32 LOGICAL , PUBLIC :: ln_flx = .FALSE.!: flux formulation33 LOGICAL , PUBLIC :: ln_blk_clio = .FALSE.!: CLIO bulk formulation34 LOGICAL , PUBLIC :: ln_blk_core = .FALSE.!: CORE bulk formulation35 LOGICAL , PUBLIC :: ln_blk_mfs = .FALSE.!: MFS bulk formulation36 LOGICAL , PUBLIC :: ln_cpl = .FALSE.!: coupled formulation (overwritten by key_sbc_coupled )37 LOGICAL , PUBLIC :: ln_dm2dc = .FALSE.!: Daily mean to Diurnal Cycle short wave (qsr)30 ! !!* namsbc namelist * 31 LOGICAL , PUBLIC :: ln_ana !: analytical boundary condition flag 32 LOGICAL , PUBLIC :: ln_flx !: flux formulation 33 LOGICAL , PUBLIC :: ln_blk_clio !: CLIO bulk formulation 34 LOGICAL , PUBLIC :: ln_blk_core !: CORE bulk formulation 35 LOGICAL , PUBLIC :: ln_blk_mfs !: MFS bulk formulation 36 LOGICAL , PUBLIC :: ln_cpl !: coupled formulation (overwritten by key_sbc_coupled ) 37 LOGICAL , PUBLIC :: ln_dm2dc !: Daily mean to Diurnal Cycle short wave (qsr) 38 38 LOGICAL , PUBLIC :: ln_rnf = .FALSE. !: runoffs / runoff mouths 39 LOGICAL , PUBLIC :: ln_ssr = .FALSE. !: Sea Surface restoring on SST and/or SSS 40 LOGICAL , PUBLIC :: ln_apr_dyn = .FALSE. !: Atmospheric pressure forcing used on dynamics (ocean & ice) 41 LOGICAL , PUBLIC :: ln_icebergs = .FALSE. !: Icebergs 42 INTEGER , PUBLIC :: nn_ice = 0 !: flag for ice in the surface boundary condition (=0/1/2/3) 43 INTEGER , PUBLIC :: nn_ice_embd = 0 !: flag for levitating/embedding sea-ice in the ocean 39 LOGICAL , PUBLIC :: ln_ssr !: Sea Surface restoring on SST and/or SSS 40 LOGICAL , PUBLIC :: ln_apr_dyn !: Atmospheric pressure forcing used on dynamics (ocean & ice) 41 INTEGER , PUBLIC :: nn_ice !: flag for ice in the surface boundary condition (=0/1/2/3) 42 INTEGER , PUBLIC :: nn_ice_embd !: flag for levitating/embedding sea-ice in the ocean 44 43 ! !: =0 levitating ice (no mass exchange, concentration/dilution effect) 45 44 ! !: =1 levitating ice with mass and salt exchange but no presure effect 46 45 ! !: =2 embedded sea-ice (full salt and mass exchanges and pressure) 47 INTEGER , PUBLIC :: nn_fwb = 0!: FreshWater Budget:46 INTEGER , PUBLIC :: nn_fwb !: FreshWater Budget: 48 47 ! !: = 0 unchecked 49 48 ! !: = 1 global mean of e-p-r set to zero at each nn_fsbc time step 50 49 ! !: = 2 annual global mean of e-p-r set to zero 51 LOGICAL , PUBLIC :: ln_wave = .FALSE. !: true if some coupling with wave model 52 LOGICAL , PUBLIC :: ln_cdgw = .FALSE. !: true if neutral drag coefficient from wave model 53 LOGICAL , PUBLIC :: ln_sdw = .FALSE. !: true if 3d stokes drift from wave model 50 LOGICAL , PUBLIC :: ln_wave !: true if some coupling with wave model 51 LOGICAL , PUBLIC :: ln_cdgw !: true if neutral drag coefficient from wave model 52 LOGICAL , PUBLIC :: ln_sdw !: true if 3d stokes drift from wave model 53 ! 54 LOGICAL , PUBLIC :: ln_icebergs !: Icebergs 54 55 55 56 !!---------------------------------------------------------------------- -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/SBC/sbcana.F90
r3875 r3901 27 27 PUBLIC sbc_gyre ! routine called in sbcmod module 28 28 29 ! 30 INTEGER :: nn_tau000 = 1! nb of time-step during which the surface stress31 ! 32 REAL(wp) :: rn_utau0 = 0._wp! constant wind stress value in i-direction33 REAL(wp) :: rn_vtau0 = 0._wp! constant wind stress value in j-direction34 REAL(wp) :: rn_qns0 = 0._wp! non solar heat flux35 REAL(wp) :: rn_qsr0 = 0._wp! solar heat flux36 REAL(wp) :: rn_emp0 = 0._wp! net freshwater flux29 ! !!* Namelist namsbc_ana * 30 INTEGER :: nn_tau000 ! nb of time-step during which the surface stress 31 ! ! increase from 0 to its nominal value 32 REAL(wp) :: rn_utau0 ! constant wind stress value in i-direction 33 REAL(wp) :: rn_vtau0 ! constant wind stress value in j-direction 34 REAL(wp) :: rn_qns0 ! non solar heat flux 35 REAL(wp) :: rn_qsr0 ! solar heat flux 36 REAL(wp) :: rn_emp0 ! net freshwater flux 37 37 38 38 !! * Substitutions -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/SBC/sbcapr.F90
r3875 r3901 26 26 PUBLIC sbc_apr ! routine called in sbcmod 27 27 28 ! 29 LOGICAL, PUBLIC :: ln_apr_obc = .FALSE.!: inverse barometer added to OBC ssh data30 LOGICAL, PUBLIC :: ln_ref_apr = .FALSE.!: ref. pressure: global mean Patm (F) or a constant (F)31 REAL(wp) :: rn_pref = 101000._wp! reference atmospheric pressure [N/m2]28 ! !!* namsbc_apr namelist (Atmospheric PRessure) * 29 LOGICAL, PUBLIC :: ln_apr_obc !: inverse barometer added to OBC ssh data 30 LOGICAL, PUBLIC :: ln_ref_apr !: ref. pressure: global mean Patm (F) or a constant (F) 31 REAL(wp) :: rn_pref ! reference atmospheric pressure [N/m2] 32 32 33 33 REAL(wp), ALLOCATABLE, SAVE, PUBLIC, DIMENSION(:,:) :: ssh_ib ! Inverse barometer now sea surface height [m] … … 76 76 ! ! -------------------- ! 77 77 IF( kt == nit000 ) THEN ! First call kt=nit000 ! 78 ! ! -------------------- ! 79 ! !* set file information (default values) 80 ! ... default values (NB: frequency positive => hours, negative => months) 81 ! ! file ! frequency ! variable ! time intep ! clim ! 'yearly' or ! weights ! rotation ! 82 ! ! name ! (hours) ! name ! (T/F) ! (T/F) ! 'monthly' ! filename ! pairs ! 83 sn_apr = FLD_N( 'patm' , 24 , 'patm' , .false. , .true. , 'yearly' , '' , '' ) 84 cn_dir = './' ! directory in which the Patm data are 78 ! ! -------------------- ! 85 79 86 80 REWIND( numnam_ref ) ! Namelist namsbc_apr in reference namelist : File for atmospheric pressure forcing -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_clio.F90
r3875 r3901 140 140 IF( kt == nit000 ) THEN ! First call kt=nit000 ! 141 141 ! ! ====================== ! 142 ! set file information (default values)143 cn_dir = './' ! directory in which the model is executed144 145 ! (NB: frequency positive => hours, negative => months)146 ! ! file ! frequency ! variable ! time intep ! clim ! 'yearly' or ! weights ! rotation !147 ! ! name ! (hours) ! name ! (T/F) ! (T/F) ! 'monthly' ! filename ! pairs !148 sn_utau = FLD_N( 'utau' , 24 , 'utau' , .true. , .false. , 'yearly' , '' , '' )149 sn_vtau = FLD_N( 'vtau' , 24 , 'vtau' , .true. , .false. , 'yearly' , '' , '' )150 sn_wndm = FLD_N( 'mwnd10m', 24 , 'm_10' , .true. , .false. , 'yearly' , '' , '' )151 sn_tair = FLD_N( 'tair10m', 24 , 't_10' , .false. , .false. , 'yearly' , '' , '' )152 sn_humi = FLD_N( 'humi10m', 24 , 'q_10' , .false. , .false. , 'yearly' , '' , '' )153 sn_ccov = FLD_N( 'ccover' , -1 , 'cloud' , .true. , .false. , 'yearly' , '' , '' )154 sn_prec = FLD_N( 'precip' , -1 , 'precip' , .true. , .false. , 'yearly' , '' , '' )155 142 156 143 REWIND( numnam_ref ) ! Namelist namsbc_clio in reference namelist : CLIO files -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_core.F90
r3875 r3901 73 73 74 74 ! !!* Namelist namsbc_core : CORE bulk parameters 75 LOGICAL :: ln_2m = .FALSE.! logical flag for height of air temp. and hum76 LOGICAL :: ln_taudif = .FALSE.! logical flag to use the "mean of stress module - module of mean stress" data77 REAL(wp) :: rn_pfac = 1.! multiplication factor for precipitation75 LOGICAL :: ln_2m ! logical flag for height of air temp. and hum 76 LOGICAL :: ln_taudif ! logical flag to use the "mean of stress module - module of mean stress" data 77 REAL(wp) :: rn_pfac ! multiplication factor for precipitation 78 78 79 79 !! * Substitutions … … 136 136 IF( kt == nit000 ) THEN ! First call kt=nit000 ! 137 137 ! ! ====================== ! 138 ! set file information (default values)139 cn_dir = './' ! directory in which the model is executed140 138 ! 141 ! (NB: frequency positive => hours, negative => months)142 ! ! file ! frequency ! variable ! time intep ! clim ! 'yearly' or ! weights ! rotation !143 ! ! name ! (hours) ! name ! (T/F) ! (T/F) ! 'monthly' ! filename ! pairs !144 sn_wndi = FLD_N( 'uwnd10m', 24 , 'u_10' , .false. , .false. , 'yearly' , '' , '' )145 sn_wndj = FLD_N( 'vwnd10m', 24 , 'v_10' , .false. , .false. , 'yearly' , '' , '' )146 sn_qsr = FLD_N( 'qsw' , 24 , 'qsw' , .false. , .false. , 'yearly' , '' , '' )147 sn_qlw = FLD_N( 'qlw' , 24 , 'qlw' , .false. , .false. , 'yearly' , '' , '' )148 sn_tair = FLD_N( 'tair10m', 24 , 't_10' , .false. , .false. , 'yearly' , '' , '' )149 sn_humi = FLD_N( 'humi10m', 24 , 'q_10' , .false. , .false. , 'yearly' , '' , '' )150 sn_prec = FLD_N( 'precip' , -1 , 'precip' , .true. , .false. , 'yearly' , '' , '' )151 sn_snow = FLD_N( 'snow' , -1 , 'snow' , .true. , .false. , 'yearly' , '' , '' )152 sn_tdif = FLD_N( 'taudif' , 24 , 'taudif' , .true. , .false. , 'yearly' , '' , '' )153 !154 155 139 REWIND( numnam_ref ) ! Namelist namsbc_core in reference namelist : CORE bulk parameters 156 140 READ ( numnam_ref, namsbc_core, IOSTAT = ios, ERR = 901) -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_mfs.F90
r3875 r3901 128 128 IF( kt == nit000 ) THEN ! First call kt=nit000 ! 129 129 ! ! ====================== ! 130 ALLOCATE( sh_now(jpi,jpj), catm(jpi,jpj), alonl(jpi,jpj), alatl(jpi,jpj), &130 ALLOCATE( sh_now(jpi,jpj), catm(jpi,jpj), alonl(jpi,jpj), alatl(jpi,jpj), & 131 131 & gsst(jpi,jpj), qbw(jpi,jpj), ha(jpi,jpj), elat(jpi,jpj), & 132 132 & evap(jpi,jpj), STAT=ierror ) 133 133 134 134 IF( ierror /= 0 ) CALL ctl_warn('sbc_blk_mfs: failed to allocate arrays') 135 136 REWIND( numnam_ref ) ! Namelist namsbc_msf in reference namelist : MFS files 137 READ ( numnam_ref, namsbc_mfs, IOSTAT = ios, ERR = 901) 138 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_mfs in reference namelist', lwp ) 139 140 REWIND( numnam_cfg ) ! Namelist namsbc_msf in configuration namelist : MFS files 141 READ ( numnam_cfg, namsbc_mfs, IOSTAT = ios, ERR = 902 ) 142 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_mfs in configuration namelist', lwp ) 143 WRITE ( numond, namsbc_mfs ) 144 ! 145 ! store namelist information in an array 146 slf_i(jp_wndi) = sn_wndi ; slf_i(jp_wndj) = sn_wndj 147 slf_i(jp_clc ) = sn_clc ; slf_i(jp_msl ) = sn_msl 148 slf_i(jp_tair) = sn_tair ; slf_i(jp_rhm) = sn_rhm 149 slf_i(jp_prec) = sn_prec ; 150 ! 151 ALLOCATE( sf(jpfld), STAT=ierror ) ! set sf structure 152 IF( ierror > 0 ) THEN 153 CALL ctl_stop( 'sbc_blk_mfs: unable to allocate sf structure' ) ; RETURN 154 ENDIF 155 DO ifpr= 1, jpfld 156 ALLOCATE( sf(ifpr)%fnow(jpi,jpj,1) ) 157 IF( slf_i(ifpr)%ln_tint ) ALLOCATE( sf(ifpr)%fdta(jpi,jpj,1,2) ) 158 END DO 159 ! fill sf with slf_i and control print 160 CALL fld_fill( sf, slf_i, cn_dir,'sbc_blk_mfs','bulk formulation for ocean SBC', 'namsbc_mfs' ) 135 161 ! 136 ! set file information (default values) 137 cn_dir = './' ! directory in which the model is executed 138 ! 139 ! (NB: frequency positive => hours, negative => months) 140 ! ! file ! frequency ! variable ! time intep ! clim ! 'yearly' or ! weights ! rotation ! 141 ! ! name ! (hours) ! name ! (T/F) ! (T/F) ! 'monthly' ! filename ! pairs ! 142 sn_wndi = FLD_N( 'ecmwf' , 24 , 'u10' , .false. , .false. , 'daily' , '' , '' ) 143 sn_wndj = FLD_N( 'ecmwf' , 24 , 'v10' , .false. , .false. , 'daily' , '' , '' ) 144 sn_clc = FLD_N( 'ecmwf' , 24 , 'clc' , .false. , .false. , 'daily' , '' , '' ) 145 sn_msl = FLD_N( 'ecmwf' , 24 , 'msl' , .false. , .false. , 'daily' , '' , '' ) 146 sn_tair = FLD_N( 'ecmwf' , 24 , 't2' , .false. , .false. , 'daily' , '' , '' ) 147 sn_rhm = FLD_N( 'ecmwf' , 24 , 'rh' , .false. , .false. , 'daily' , '' , '' ) 148 sn_prec = FLD_N( 'precip_cmap' , -1 , 'precip' , .true. , .true. , 'yearly' , '' , '' ) 149 ! 150 151 REWIND( numnam_ref ) ! Namelist namsbc_msf in reference namelist : MFS files 152 READ ( numnam_ref, namsbc_mfs, IOSTAT = ios, ERR = 901) 153 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_mfs in reference namelist', lwp ) 154 155 REWIND( numnam_cfg ) ! Namelist namsbc_msf in configuration namelist : MFS files 156 READ ( numnam_cfg, namsbc_mfs, IOSTAT = ios, ERR = 902 ) 157 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_mfs in configuration namelist', lwp ) 158 WRITE ( numond, namsbc_mfs ) 159 ! 160 ! store namelist information in an array 161 slf_i(jp_wndi) = sn_wndi ; slf_i(jp_wndj) = sn_wndj 162 slf_i(jp_clc ) = sn_clc ; slf_i(jp_msl ) = sn_msl 163 slf_i(jp_tair) = sn_tair ; slf_i(jp_rhm) = sn_rhm 164 slf_i(jp_prec) = sn_prec ; 165 ! 166 ALLOCATE( sf(jpfld), STAT=ierror ) ! set sf structure 167 IF( ierror > 0 ) THEN 168 CALL ctl_stop( 'sbc_blk_mfs: unable to allocate sf structure' ) ; RETURN 169 ENDIF 170 DO ifpr= 1, jpfld 171 ALLOCATE( sf(ifpr)%fnow(jpi,jpj,1) ) 172 IF( slf_i(ifpr)%ln_tint ) ALLOCATE( sf(ifpr)%fdta(jpi,jpj,1,2) ) 173 END DO 174 ! fill sf with slf_i and control print 175 CALL fld_fill( sf, slf_i, cn_dir,'sbc_blk_mfs','bulk formulation for ocean SBC', 'namsbc_mfs' ) 176 ! 177 ENDIF 162 ENDIF 178 163 179 164 CALL fld_read( kt, nn_fsbc, sf ) ! input fields provided at the current time-step -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90
r3875 r3901 237 237 ! ================================ ! 238 238 239 ! default definitions240 ! ! description ! multiple ! vector ! vector ! vector !241 ! ! ! categories ! reference ! orientation ! grids !242 ! send243 sn_snd_temp = FLD_C( 'weighted oce and ice', 'no' , '' , '' , '' )244 sn_snd_alb = FLD_C( 'weighted ice' , 'no' , '' , '' , '' )245 sn_snd_thick = FLD_C( 'none' , 'no' , '' , '' , '' )246 sn_snd_crt = FLD_C( 'none' , 'no' , 'spherical' , 'eastward-northward' , 'T' )247 sn_snd_co2 = FLD_C( 'none' , 'no' , '' , '' , '' )248 ! receive249 sn_rcv_w10m = FLD_C( 'none' , 'no' , '' , '' , '' )250 sn_rcv_taumod = FLD_C( 'coupled' , 'no' , '' , '' , '' )251 sn_rcv_tau = FLD_C( 'oce only' , 'no' , 'cartesian' , 'eastward-northward', 'U,V' )252 sn_rcv_dqnsdt = FLD_C( 'coupled' , 'no' , '' , '' , '' )253 sn_rcv_qsr = FLD_C( 'oce and ice' , 'no' , '' , '' , '' )254 sn_rcv_qns = FLD_C( 'oce and ice' , 'no' , '' , '' , '' )255 sn_rcv_emp = FLD_C( 'conservative' , 'no' , '' , '' , '' )256 sn_rcv_rnf = FLD_C( 'coupled' , 'no' , '' , '' , '' )257 sn_rcv_cal = FLD_C( 'coupled' , 'no' , '' , '' , '' )258 sn_rcv_iceflx = FLD_C( 'none' , 'no' , '' , '' , '' )259 sn_rcv_co2 = FLD_C( 'none' , 'no' , '' , '' , '' )260 261 239 REWIND( numnam_ref ) ! Namelist namsbc_cpl in reference namelist : Variables for OASIS coupling 262 240 READ ( numnam_ref, namsbc_cpl, IOSTAT = ios, ERR = 901) -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/SBC/sbcflx.F90
r3875 r3901 91 91 IF( kt == nit000 ) THEN ! First call kt=nit000 92 92 ! set file information 93 cn_dir = './' ! directory in which the model is executed94 ! ... default values (NB: frequency positive => hours, negative => months)95 ! ! file ! frequency ! variable ! time intep ! clim ! 'yearly' or ! weights ! rotation !96 ! ! name ! (hours) ! name ! (T/F) ! (T/F) ! 'monthly' ! filename ! pairs !97 sn_utau = FLD_N( 'utau' , 24 , 'utau' , .false. , .false. , 'yearly' , '' , '' )98 sn_vtau = FLD_N( 'vtau' , 24 , 'vtau' , .false. , .false. , 'yearly' , '' , '' )99 sn_qtot = FLD_N( 'qtot' , 24 , 'qtot' , .false. , .false. , 'yearly' , '' , '' )100 sn_qsr = FLD_N( 'qsr' , 24 , 'qsr' , .false. , .false. , 'yearly' , '' , '' )101 sn_emp = FLD_N( 'emp' , 24 , 'emp' , .false. , .false. , 'yearly' , '' , '' )102 !103 93 REWIND( numnam_ref ) ! Namelist namsbc_flx in reference namelist : Files for fluxes 104 94 READ ( numnam_ref, namsbc_flx, IOSTAT = ios, ERR = 901) -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_if.F90
r3875 r3901 71 71 ! ! ====================== ! 72 72 ! set file information 73 cn_dir = './' ! directory in which the model is executed74 ! ... default values (NB: frequency positive => hours, negative => months)75 ! ! file ! frequency ! variable ! time intep ! clim ! 'yearly' or ! weights ! rotation !76 ! ! name ! (hours) ! name ! (T/F) ! (T/F) ! 'monthly' ! filename ! pairs !77 sn_ice = FLD_N('ice_cover', -1 , 'ice_cov' , .true. , .true. , 'yearly' , '' , '' )78 79 73 REWIND( numnam_ref ) ! Namelist namsbc_iif in reference namelist : Ice if file 80 74 READ ( numnam_ref, namsbc_iif, IOSTAT = ios, ERR = 901) -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/SBC/sbcrnf.F90
r3875 r3901 33 33 PUBLIC sbc_rnf_init ! (PUBLIC for TAM) 34 34 ! !!* namsbc_rnf namelist * 35 CHARACTER(len=100), PUBLIC :: cn_dir = './'!: Root directory for location of ssr files36 LOGICAL , PUBLIC :: ln_rnf_depth = .false.!: depth river runoffs attribute specified in a file37 LOGICAL , PUBLIC :: ln_rnf_tem = .false.!: temperature river runoffs attribute specified in a file38 LOGICAL , PUBLIC :: ln_rnf_sal = .false.!: salinity river runoffs attribute specified in a file39 LOGICAL , PUBLIC :: ln_rnf_emp = .false.!: runoffs into a file to be read or already into precipitation40 TYPE(FLD_N) , PUBLIC :: sn_rnf 41 TYPE(FLD_N) , PUBLIC :: sn_cnf 42 TYPE(FLD_N) :: sn_s_rnf 43 TYPE(FLD_N) :: sn_t_rnf 44 TYPE(FLD_N) :: sn_dep_rnf 45 LOGICAL , PUBLIC :: ln_rnf_mouth = .false.!: specific treatment in mouths vicinity46 REAL(wp) , PUBLIC :: rn_hrnf = 0._wp!: runoffs, depth over which enhanced vertical mixing is used47 REAL(wp) , PUBLIC :: rn_avt_rnf = 0._wp!: runoffs, value of the additional vertical mixing coef. [m2/s]48 REAL(wp) , PUBLIC :: rn_rfact = 1._wp!: multiplicative factor for runoff35 CHARACTER(len=100), PUBLIC :: cn_dir !: Root directory for location of ssr files 36 LOGICAL , PUBLIC :: ln_rnf_depth !: depth river runoffs attribute specified in a file 37 LOGICAL , PUBLIC :: ln_rnf_tem !: temperature river runoffs attribute specified in a file 38 LOGICAL , PUBLIC :: ln_rnf_sal !: salinity river runoffs attribute specified in a file 39 LOGICAL , PUBLIC :: ln_rnf_emp !: runoffs into a file to be read or already into precipitation 40 TYPE(FLD_N) , PUBLIC :: sn_rnf !: information about the runoff file to be read 41 TYPE(FLD_N) , PUBLIC :: sn_cnf !: information about the runoff mouth file to be read 42 TYPE(FLD_N) :: sn_s_rnf !: information about the salinities of runoff file to be read 43 TYPE(FLD_N) :: sn_t_rnf !: information about the temperatures of runoff file to be read 44 TYPE(FLD_N) :: sn_dep_rnf !: information about the depth which river inflow affects 45 LOGICAL , PUBLIC :: ln_rnf_mouth !: specific treatment in mouths vicinity 46 REAL(wp) , PUBLIC :: rn_hrnf !: runoffs, depth over which enhanced vertical mixing is used 47 REAL(wp) , PUBLIC :: rn_avt_rnf !: runoffs, value of the additional vertical mixing coef. [m2/s] 48 REAL(wp) , PUBLIC :: rn_rfact !: multiplicative factor for runoff 49 49 50 50 INTEGER , PUBLIC :: nkrnf = 0 !: nb of levels over which Kz is increased at river mouths … … 255 255 ! ! Namelist 256 256 ! ! ============ 257 ! (NB: frequency positive => hours, negative => months)258 ! ! file ! frequency ! variable ! time intep ! clim ! 'yearly' or ! weights ! rotation !259 ! ! name ! (hours) ! name ! (T/F) ! (T/F) ! 'monthly' ! filename ! pairs !260 sn_rnf = FLD_N( 'runoffs', -1 , 'sorunoff' , .TRUE. , .true. , 'yearly' , '' , '' )261 sn_cnf = FLD_N( 'runoffs', 0 , 'sorunoff' , .FALSE. , .true. , 'yearly' , '' , '' )262 263 sn_s_rnf = FLD_N( 'runoffs', 24. , 'rosaline' , .TRUE. , .true. , 'yearly' , '' , '' )264 sn_t_rnf = FLD_N( 'runoffs', 24. , 'rotemper' , .TRUE. , .true. , 'yearly' , '' , '' )265 sn_dep_rnf = FLD_N( 'runoffs', 0. , 'rodepth' , .FALSE. , .true. , 'yearly' , '' , '' )266 257 ! 267 258 REWIND( numnam_ref ) ! Namelist namsbc_rnf in reference namelist : Runoffs -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/SBC/sbcssr.F90
r3875 r3901 33 33 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: qrp !: heat flux damping [w/m2] 34 34 35 ! 36 INTEGER, PUBLIC :: nn_sstr = 0! SST/SSS restoring indicator37 INTEGER, PUBLIC :: nn_sssr = 0! SST/SSS restoring indicator38 REAL(wp) :: rn_dqdt = -40.e0! restoring factor on SST and SSS39 REAL(wp) :: rn_deds = -27.70! restoring factor on SST and SSS40 LOGICAL :: ln_sssr_bnd = .false.! flag to bound erp term41 REAL(wp) :: rn_sssr_bnd = 0.e0! ABS(Max./Min.) value of erp term [mm/day]35 ! !!* Namelist namsbc_ssr * 36 INTEGER, PUBLIC :: nn_sstr ! SST/SSS restoring indicator 37 INTEGER, PUBLIC :: nn_sssr ! SST/SSS restoring indicator 38 REAL(wp) :: rn_dqdt ! restoring factor on SST and SSS 39 REAL(wp) :: rn_deds ! restoring factor on SST and SSS 40 LOGICAL :: ln_sssr_bnd ! flag to bound erp term 41 REAL(wp) :: rn_sssr_bnd ! ABS(Max./Min.) value of erp term [mm/day] 42 42 43 43 REAL(wp) , ALLOCATABLE, DIMENSION(:) :: buffer ! Temporary buffer for exchange … … 166 166 !!---------------------------------------------------------------------- 167 167 ! 168 ! !* set file information169 cn_dir = './' ! directory in which the model is executed170 ! ... default values (NB: frequency positive => hours, negative => months)171 ! ! file ! frequency ! variable ! time intep ! clim ! 'yearly' or ! weights ! rotation !172 ! ! name ! (hours) ! name ! (T/F) ! (T/F) ! 'monthly' ! filename ! pairs !173 sn_sst = FLD_N( 'sst' , 24 , 'sst' , .false. , .false. , 'yearly' , '' , '' )174 sn_sss = FLD_N( 'sss' , -1 , 'sss' , .true. , .false. , 'yearly' , '' , '' )175 168 176 169 REWIND( numnam_ref ) ! Namelist namsbc_ssr in reference namelist : -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/SBC/sbcwave.F90
r3875 r3901 83 83 IF( kt == nit000 ) THEN ! First call kt=nit000 ! 84 84 ! ! -------------------- ! 85 ! !* set file information (default values)86 ! ... default values (NB: frequency positive => hours, negative => months)87 ! ! file ! frequency ! variable ! time intep ! clim ! 'yearly' or ! weights ! rotation !88 ! ! name ! (hours) ! name ! (T/F) ! (T/F) ! 'monthly' ! filename ! pairs !89 sn_cdg = FLD_N('cdg_wave' , 1 ,'drag_coeff', .true. , .false. , 'daily' , '' , '' )90 sn_usd = FLD_N('sdw_wave' , 1 ,'u_sd2d', .true. , .false. , 'daily' , '' , '' )91 sn_vsd = FLD_N('sdw_wave' , 1 ,'v_sd2d', .true. , .false. , 'daily' , '' , '' )92 sn_wn = FLD_N( 'sdw_wave' , 1 ,'wave_num', .true. , .false. , 'daily' , '' , '' )93 cn_dir = './' ! directory in which the wave data are94 85 95 86 REWIND( numnam_ref ) ! Namelist namsbc_wave in reference namelist : File for drag coeff. from wave model -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/SBC/tideini.F90
r3875 r3901 26 26 ftide 27 27 28 LOGICAL, PUBLIC :: ln_tide_pot = .false., ln_tide_ramp = .false.28 LOGICAL, PUBLIC :: ln_tide_pot , ln_tide_ramp 29 29 REAL(wp), PUBLIC :: rdttideramp 30 30 INTEGER, PUBLIC :: nb_harmo … … 60 60 ! 61 61 CALL tide_init_Wave 62 !63 clname(:)=''64 62 ! 65 63 ! Read Namelist nam_tide -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/SOL/sol_oce.F90
r2715 r3901 20 20 PUBLIC sol_oce_alloc ! routine called in solver.F90 21 21 22 ! 23 INTEGER , PUBLIC :: nn_solv = 1!: = 1/2 type of elliptic solver24 INTEGER , PUBLIC :: nn_sol_arp = 0!: = 0/1 absolute/relative precision convergence test25 INTEGER , PUBLIC :: nn_nmin = 300!: minimum of iterations for the SOR solver26 INTEGER , PUBLIC :: nn_nmax = 800!: maximum of iterations for the SOR solver27 INTEGER , PUBLIC :: nn_nmod = 10!: frequency of test for the SOR solver28 REAL(wp), PUBLIC :: rn_eps = 1.e-6_wp!: absolute precision of the solver29 REAL(wp), PUBLIC :: rn_resmax = 1.e-14_wp!: absolute precision for the SOR solver30 REAL(wp), PUBLIC :: rn_sor = 1.92_wp!: optimal coefficient for the SOR solver31 REAL(wp), PUBLIC :: rn_nu = 1.0_wp!: strength of the additional force used in free surface22 ! !!* Namelist namsol : elliptic solver * 23 INTEGER , PUBLIC :: nn_solv !: = 1/2 type of elliptic solver 24 INTEGER , PUBLIC :: nn_sol_arp !: = 0/1 absolute/relative precision convergence test 25 INTEGER , PUBLIC :: nn_nmin !: minimum of iterations for the SOR solver 26 INTEGER , PUBLIC :: nn_nmax !: maximum of iterations for the SOR solver 27 INTEGER , PUBLIC :: nn_nmod !: frequency of test for the SOR solver 28 REAL(wp), PUBLIC :: rn_eps !: absolute precision of the solver 29 REAL(wp), PUBLIC :: rn_resmax !: absolute precision for the SOR solver 30 REAL(wp), PUBLIC :: rn_sor !: optimal coefficient for the SOR solver 31 REAL(wp), PUBLIC :: rn_nu !: strength of the additional force used in free surface 32 32 33 33 CHARACTER(len=1), PUBLIC :: c_solver_pt = 'T' !: nature of grid-points T (S) for free surface case -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/TRA/eosbn2.F90
r3875 r3901 57 57 PUBLIC tfreez ! called by sbcice_... modules 58 58 59 ! 60 INTEGER , PUBLIC :: nn_eos = 0!: = 0/1/2 type of eq. of state and Brunt-Vaisala frequ.61 REAL(wp), PUBLIC :: rn_alpha = 2.0e-4_wp!: thermal expension coeff. (linear equation of state)62 REAL(wp), PUBLIC :: rn_beta = 7.7e-4_wp!: saline expension coeff. (linear equation of state)59 ! !!* Namelist (nameos) * 60 INTEGER , PUBLIC :: nn_eos !: = 0/1/2 type of eq. of state and Brunt-Vaisala frequ. 61 REAL(wp), PUBLIC :: rn_alpha !: thermal expension coeff. (linear equation of state) 62 REAL(wp), PUBLIC :: rn_beta !: saline expension coeff. (linear equation of state) 63 63 64 64 REAL(wp), PUBLIC :: ralpbet !: alpha / beta ratio -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/TRA/traadv.F90
r3875 r3901 37 37 PUBLIC tra_adv_init ! routine called by opa module 38 38 39 ! 40 LOGICAL :: ln_traadv_cen2 = .TRUE.! 2nd order centered scheme flag41 LOGICAL :: ln_traadv_tvd = .FALSE.! TVD scheme flag42 LOGICAL :: ln_traadv_muscl = .FALSE.! MUSCL scheme flag43 LOGICAL :: ln_traadv_muscl2 = .FALSE.! MUSCL2 scheme flag44 LOGICAL :: ln_traadv_ubs = .FALSE.! UBS scheme flag45 LOGICAL :: ln_traadv_qck = .FALSE.! QUICKEST scheme flag46 LOGICAL :: ln_traadv_msc_ups = .FALSE.! use upstream scheme within muscl39 ! !!* Namelist namtra_adv * 40 LOGICAL :: ln_traadv_cen2 ! 2nd order centered scheme flag 41 LOGICAL :: ln_traadv_tvd ! TVD scheme flag 42 LOGICAL :: ln_traadv_muscl ! MUSCL scheme flag 43 LOGICAL :: ln_traadv_muscl2 ! MUSCL2 scheme flag 44 LOGICAL :: ln_traadv_ubs ! UBS scheme flag 45 LOGICAL :: ln_traadv_qck ! QUICKEST scheme flag 46 LOGICAL :: ln_traadv_msc_ups ! use upstream scheme within muscl 47 47 48 48 -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/TRA/trabbc.F90
r3875 r3901 31 31 PUBLIC tra_bbc_init ! routine called by opa.F90 32 32 33 ! 34 LOGICAL, PUBLIC :: ln_trabbc = .FALSE.!: Geothermal heat flux flag35 INTEGER :: nn_geoflx = 1! Geothermal flux (=1:constant flux, =2:read in file )36 REAL(wp) :: rn_geoflx_cst = 86.4e-3_wp! Constant value of geothermal heat flux33 ! !!* Namelist nambbc: bottom boundary condition * 34 LOGICAL, PUBLIC :: ln_trabbc !: Geothermal heat flux flag 35 INTEGER :: nn_geoflx ! Geothermal flux (=1:constant flux, =2:read in file ) 36 REAL(wp) :: rn_geoflx_cst ! Constant value of geothermal heat flux 37 37 38 38 REAL(wp), PUBLIC, DIMENSION(:,:), ALLOCATABLE :: qgh_trd0 ! geothermal heating trend -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/TRA/trabbl.F90
r3875 r3901 49 49 LOGICAL, PUBLIC, PARAMETER :: lk_trabbl = .TRUE. !: bottom boundary layer flag 50 50 51 ! 52 INTEGER , PUBLIC :: nn_bbl_ldf = 0!: =1 : diffusive bbl or not (=0)53 INTEGER , PUBLIC :: nn_bbl_adv = 0!: =1/2 : advective bbl or not (=0)51 ! !!* Namelist nambbl * 52 INTEGER , PUBLIC :: nn_bbl_ldf !: =1 : diffusive bbl or not (=0) 53 INTEGER , PUBLIC :: nn_bbl_adv !: =1/2 : advective bbl or not (=0) 54 54 ! ! =1 : advective bbl using the bottom ocean velocity 55 55 ! ! =2 : - - using utr_bbl proportional to grad(rho) 56 REAL(wp), PUBLIC :: rn_ahtbbl = 1.e3_wp!: along slope bbl diffusive coefficient [m2/s]57 REAL(wp), PUBLIC :: rn_gambbl = 10.0_wp!: lateral coeff. for bottom boundary layer scheme [s]56 REAL(wp), PUBLIC :: rn_ahtbbl !: along slope bbl diffusive coefficient [m2/s] 57 REAL(wp), PUBLIC :: rn_gambbl !: lateral coeff. for bottom boundary layer scheme [s] 58 58 59 59 LOGICAL , PUBLIC :: l_bbl !: flag to compute bbl diffu. flux coef and transport -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/TRA/tradmp.F90
r3875 r3901 47 47 PUBLIC dtacof_zoom ! routine called by in both tradmp.F90 and trcdmp.F90 48 48 49 ! 50 LOGICAL, PUBLIC :: ln_tradmp = .TRUE.!: internal damping flag51 INTEGER :: nn_hdmp = -1! = 0/-1/'latitude' for damping over T and S52 INTEGER :: nn_zdmp = 0! = 0/1/2 flag for damping in the mixed layer53 REAL(wp) :: rn_surf = 50._wp! surface time scale for internal damping [days]54 REAL(wp) :: rn_bot = 360._wp! bottom time scale for internal damping [days]55 REAL(wp) :: rn_dep = 800._wp! depth of transition between rn_surf and rn_bot [meters]56 INTEGER :: nn_file = 2! = 1 create a damping.coeff NetCDF file49 ! !!* Namelist namtra_dmp : T & S newtonian damping * 50 LOGICAL, PUBLIC :: ln_tradmp = .TRUE. !: internal damping flag 51 INTEGER :: nn_hdmp ! = 0/-1/'latitude' for damping over T and S 52 INTEGER :: nn_zdmp ! = 0/1/2 flag for damping in the mixed layer 53 REAL(wp) :: rn_surf ! surface time scale for internal damping [days] 54 REAL(wp) :: rn_bot ! bottom time scale for internal damping [days] 55 REAL(wp) :: rn_dep ! depth of transition between rn_surf and rn_bot [meters] 56 INTEGER :: nn_file ! = 1 create a damping.coeff NetCDF file 57 57 58 58 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: strdmp !: damping salinity trend (psu/s) -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/TRA/traqsr.F90
r3875 r3901 38 38 PUBLIC tra_qsr_init ! routine called by opa.F90 39 39 40 ! 41 LOGICAL , PUBLIC :: ln_traqsr = .TRUE.!: light absorption (qsr) flag42 LOGICAL , PUBLIC :: ln_qsr_rgb = .FALSE.!: Red-Green-Blue light absorption flag43 LOGICAL , PUBLIC :: ln_qsr_2bd = .TRUE.!: 2 band light absorption flag44 LOGICAL , PUBLIC :: ln_qsr_bio = .FALSE.!: bio-model light absorption flag45 INTEGER , PUBLIC :: nn_chldta = 0!: use Chlorophyll data (=1) or not (=0)46 REAL(wp), PUBLIC :: rn_abs = 0.58_wp!: fraction absorbed in the very near surface (RGB & 2 bands)47 REAL(wp), PUBLIC :: rn_si0 = 0.35_wp!: very near surface depth of extinction (RGB & 2 bands)48 REAL(wp), PUBLIC :: rn_si1 = 23.0_wp!: deepest depth of extinction (water type I) (2 bands)40 ! !!* Namelist namtra_qsr: penetrative solar radiation 41 LOGICAL , PUBLIC :: ln_traqsr !: light absorption (qsr) flag 42 LOGICAL , PUBLIC :: ln_qsr_rgb !: Red-Green-Blue light absorption flag 43 LOGICAL , PUBLIC :: ln_qsr_2bd !: 2 band light absorption flag 44 LOGICAL , PUBLIC :: ln_qsr_bio !: bio-model light absorption flag 45 INTEGER , PUBLIC :: nn_chldta !: use Chlorophyll data (=1) or not (=0) 46 REAL(wp), PUBLIC :: rn_abs !: fraction absorbed in the very near surface (RGB & 2 bands) 47 REAL(wp), PUBLIC :: rn_si0 !: very near surface depth of extinction (RGB & 2 bands) 48 REAL(wp), PUBLIC :: rn_si1 !: deepest depth of extinction (water type I) (2 bands) 49 49 50 50 ! Module variables … … 335 335 CALL wrk_alloc( jpi, jpj, zekb, zekg, zekr ) 336 336 CALL wrk_alloc( jpi, jpj, jpk, ze0, ze1, ze2, ze3, zea ) 337 !338 339 cn_dir = './' ! directory in which the model is executed340 ! ... default values (NB: frequency positive => hours, negative => months)341 ! ! file ! frequency ! variable ! time interp ! clim ! 'yearly' or ! weights ! rotation !342 ! ! name ! (hours) ! name ! (T/F) ! (T/F) ! 'monthly' ! filename ! pairs !343 sn_chl = FLD_N( 'chlorophyll' , -1 , 'CHLA' , .true. , .true. , 'yearly' , '' , '' )344 337 ! 345 338 -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/TRD/trdmod_oce.F90
r2715 r3901 13 13 PUBLIC 14 14 15 ! 16 INTEGER , PUBLIC :: nn_trd = 10!: time step frequency dynamics and tracers trends17 INTEGER , PUBLIC :: nn_ctls = 0!: control surface type for trends vertical integration18 REAL(wp), PUBLIC :: rn_ucf = 1.!: unit conversion factor (for netCDF trends outputs)19 20 CHARACTER(len=32) :: cn_trdrst_in = "restart_mld"!: suffix of ocean restart name (input)21 CHARACTER(len=32) :: cn_trdrst_out = "restart_mld"!: suffix of ocean restart name (output)22 LOGICAL , PUBLIC :: ln_trdmld_instant = .FALSE.!: flag to diagnose inst./mean ML T/S trends23 LOGICAL , PUBLIC :: ln_trdmld_restart = .FALSE.!: flag to restart mixed-layer diagnostics15 ! !!* Namelist namtrd: diagnostics on dynamics/tracer trends * 16 INTEGER , PUBLIC :: nn_trd !: time step frequency dynamics and tracers trends 17 INTEGER , PUBLIC :: nn_ctls !: control surface type for trends vertical integration 18 REAL(wp), PUBLIC :: rn_ucf !: unit conversion factor (for netCDF trends outputs) 19 !: =1. (=86400.) for degC/s (degC/day) and psu/s (psu/day) 20 CHARACTER(len=32) :: cn_trdrst_in !: suffix of ocean restart name (input) 21 CHARACTER(len=32) :: cn_trdrst_out !: suffix of ocean restart name (output) 22 LOGICAL , PUBLIC :: ln_trdmld_instant !: flag to diagnose inst./mean ML T/S trends 23 LOGICAL , PUBLIC :: ln_trdmld_restart !: flag to restart mixed-layer diagnostics 24 24 25 25 # if defined key_trdtra || defined key_trdmld -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/ZDF/zdf_oce.F90
r2715 r3901 22 22 #endif 23 23 24 ! 25 REAL(wp), PUBLIC :: rn_avm0 = 1.e-4_wp!: vertical eddy viscosity (m2/s)26 REAL(wp), PUBLIC :: rn_avt0 = 1.e-5_wp!: vertical eddy diffusivity (m2/s)27 INTEGER , PUBLIC :: nn_avb = 0!: constant or profile background on avt (=0/1)28 INTEGER , PUBLIC :: nn_havtb = 1!: horizontal shape or not for avtb (=0/1)29 LOGICAL , PUBLIC :: ln_zdfexp = .FALSE.!: explicit vertical diffusion scheme flag30 INTEGER , PUBLIC :: nn_zdfexp = 3!: number of sub-time step (explicit time stepping)31 LOGICAL , PUBLIC :: ln_zdfevd = .TRUE.!: convection: enhanced vertical diffusion flag32 INTEGER , PUBLIC :: nn_evdm = 1!: =0/1 flag to apply enhanced avm or not33 REAL(wp), PUBLIC :: rn_avevd = 1._wp!: vertical eddy coeff. for enhanced vert. diff. (m2/s)34 LOGICAL , PUBLIC :: ln_zdfnpc = .FALSE.!: convection: non-penetrative convection flag35 INTEGER , PUBLIC :: nn_npc = 1!: non penetrative convective scheme call frequency36 INTEGER , PUBLIC :: nn_npcp = 15!: non penetrative convective scheme print frequency24 ! !!* namelist namzdf: vertical diffusion * 25 REAL(wp), PUBLIC :: rn_avm0 !: vertical eddy viscosity (m2/s) 26 REAL(wp), PUBLIC :: rn_avt0 !: vertical eddy diffusivity (m2/s) 27 INTEGER , PUBLIC :: nn_avb !: constant or profile background on avt (=0/1) 28 INTEGER , PUBLIC :: nn_havtb !: horizontal shape or not for avtb (=0/1) 29 LOGICAL , PUBLIC :: ln_zdfexp !: explicit vertical diffusion scheme flag 30 INTEGER , PUBLIC :: nn_zdfexp !: number of sub-time step (explicit time stepping) 31 LOGICAL , PUBLIC :: ln_zdfevd !: convection: enhanced vertical diffusion flag 32 INTEGER , PUBLIC :: nn_evdm !: =0/1 flag to apply enhanced avm or not 33 REAL(wp), PUBLIC :: rn_avevd !: vertical eddy coeff. for enhanced vert. diff. (m2/s) 34 LOGICAL , PUBLIC :: ln_zdfnpc !: convection: non-penetrative convection flag 35 INTEGER , PUBLIC :: nn_npc !: non penetrative convective scheme call frequency 36 INTEGER , PUBLIC :: nn_npcp !: non penetrative convective scheme print frequency 37 37 38 38 -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfbfr.F90
r3875 r3901 34 34 PUBLIC zdf_bfr_init ! called by opa.F90 35 35 36 ! 37 INTEGER , PUBLIC :: nn_bfr = 0! = 0/1/2/3 type of bottom friction (PUBLIC for TAM)38 REAL(wp), PUBLIC :: rn_bfri1 = 4.0e-4_wp! bottom drag coefficient (linear case) (PUBLIC for TAM)39 REAL(wp), PUBLIC :: rn_bfri2 = 1.0e-3_wp! bottom drag coefficient (non linear case) (PUBLIC for TAM)40 REAL(wp), PUBLIC :: rn_bfeb2 = 2.5e-3_wp! background bottom turbulent kinetic energy [m2/s2] (PUBLIC for TAM)41 REAL(wp), PUBLIC :: rn_bfrien = 30._wp! local factor to enhance coefficient bfri (PUBLIC for TAM)42 LOGICAL , PUBLIC :: ln_bfr2d = .false.! logical switch for 2D enhancement (PUBLIC for TAM)43 LOGICAL , PUBLIC :: ln_loglayer = .false.! switch for log layer bfr coeff. (PUBLIC for TAM)44 REAL(wp), PUBLIC :: rn_bfrz0 = 0.003_wp! bottom roughness for loglayer bfr coeff (PUBLIC for TAM)45 LOGICAL , PUBLIC :: ln_bfrimp = .false.! logical switch for implicit bottom friction36 ! !!* Namelist nambfr: bottom friction namelist * 37 INTEGER , PUBLIC :: nn_bfr ! = 0/1/2/3 type of bottom friction (PUBLIC for TAM) 38 REAL(wp), PUBLIC :: rn_bfri1 ! bottom drag coefficient (linear case) (PUBLIC for TAM) 39 REAL(wp), PUBLIC :: rn_bfri2 ! bottom drag coefficient (non linear case) (PUBLIC for TAM) 40 REAL(wp), PUBLIC :: rn_bfeb2 ! background bottom turbulent kinetic energy [m2/s2] (PUBLIC for TAM) 41 REAL(wp), PUBLIC :: rn_bfrien ! local factor to enhance coefficient bfri (PUBLIC for TAM) 42 LOGICAL , PUBLIC :: ln_bfr2d ! logical switch for 2D enhancement (PUBLIC for TAM) 43 LOGICAL , PUBLIC :: ln_loglayer ! switch for log layer bfr coeff. (PUBLIC for TAM) 44 REAL(wp), PUBLIC :: rn_bfrz0 ! bottom roughness for loglayer bfr coeff (PUBLIC for TAM) 45 LOGICAL , PUBLIC :: ln_bfrimp ! logical switch for implicit bottom friction 46 46 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:), PUBLIC :: bfrcoef2d ! 2D bottom drag coefficient (PUBLIC for TAM) 47 47 -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfddm.F90
r3875 r3901 37 37 REAL(wp), PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:,:,:) :: rrau !: heat/salt buoyancy flux ratio 38 38 39 ! 40 REAL(wp) :: rn_avts = 1.e-4_wp! maximum value of avs for salt fingering41 REAL(wp) :: rn_hsbfr = 1.6_wp! heat/salt buoyancy flux ratio39 ! !!* Namelist namzdf_ddm : double diffusive mixing * 40 REAL(wp) :: rn_avts ! maximum value of avs for salt fingering 41 REAL(wp) :: rn_hsbfr ! heat/salt buoyancy flux ratio 42 42 43 43 !! * Substitutions -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfgls.F90
r3875 r3901 51 51 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: ustarb2 !: Squared bottom velocity scale at T-points 52 52 53 ! !!! ** Namelist namzdf_gls **54 LOGICAL :: ln_crban = .FALSE.! =T use Craig and Banner scheme55 LOGICAL :: ln_length_lim = .FALSE.! use limit on the dissipation rate under stable stratification (Galperin et al. 1988)56 LOGICAL :: ln_sigpsi = .FALSE.! Activate Burchard (2003) modification for k-eps closure & wave breaking mixing57 INTEGER :: nn_tkebc_surf = 0! TKE surface boundary condition (=0/1)58 INTEGER :: nn_tkebc_bot = 0! TKE bottom boundary condition (=0/1)59 INTEGER :: nn_psibc_surf = 0! PSI surface boundary condition (=0/1)60 INTEGER :: nn_psibc_bot = 0! PSI bottom boundary condition (=0/1)61 INTEGER :: nn_stab_func = 0! stability functions G88, KC or Canuto (=0/1/2)62 INTEGER :: nn_clos = 0! closure 0/1/2/3 MY82/k-eps/k-w/gen63 REAL(wp) :: rn_clim_galp = 0.53_wp! Holt 2008 value for k-eps: 0.26764 REAL(wp) :: rn_epsmin = 1.e-12_wp! minimum value of dissipation (m2/s3)65 REAL(wp) :: rn_emin = 1.e-6_wp! minimum value of TKE (m2/s2)66 REAL(wp) :: rn_charn = 2.e+5_wp! Charnock constant for surface breaking waves mixing : 1400. (standard) or 2.e5 (Stacey value)67 REAL(wp) :: rn_crban = 100._wp! Craig and Banner constant for surface breaking waves mixing53 ! !! ** Namelist namzdf_gls ** 54 LOGICAL :: ln_crban ! =T use Craig and Banner scheme 55 LOGICAL :: ln_length_lim ! use limit on the dissipation rate under stable stratification (Galperin et al. 1988) 56 LOGICAL :: ln_sigpsi ! Activate Burchard (2003) modification for k-eps closure & wave breaking mixing 57 INTEGER :: nn_tkebc_surf ! TKE surface boundary condition (=0/1) 58 INTEGER :: nn_tkebc_bot ! TKE bottom boundary condition (=0/1) 59 INTEGER :: nn_psibc_surf ! PSI surface boundary condition (=0/1) 60 INTEGER :: nn_psibc_bot ! PSI bottom boundary condition (=0/1) 61 INTEGER :: nn_stab_func ! stability functions G88, KC or Canuto (=0/1/2) 62 INTEGER :: nn_clos ! closure 0/1/2/3 MY82/k-eps/k-w/gen 63 REAL(wp) :: rn_clim_galp ! Holt 2008 value for k-eps: 0.267 64 REAL(wp) :: rn_epsmin ! minimum value of dissipation (m2/s3) 65 REAL(wp) :: rn_emin ! minimum value of TKE (m2/s2) 66 REAL(wp) :: rn_charn ! Charnock constant for surface breaking waves mixing : 1400. (standard) or 2.e5 (Stacey value) 67 REAL(wp) :: rn_crban ! Craig and Banner constant for surface breaking waves mixing 68 68 69 69 REAL(wp) :: hsro = 0.003_wp ! Minimum surface roughness -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfkpp.F90
r3875 r3901 52 52 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hkpp !: boundary layer depth 53 53 54 ! 55 REAL(wp) :: rn_difmiw = 1.2e-04_wp! constant internal wave viscosity (m2/s)56 REAL(wp) :: rn_difsiw = 1.2e-05_wp! constant internal wave diffusivity (m2/s)57 REAL(wp) :: rn_riinfty = 0.8_wp! local Richardson Number limit for shear instability58 REAL(wp) :: rn_difri = 5.e-03_wp! maximum shear mixing at Rig = 0 (m2/s)59 REAL(wp) :: rn_bvsqcon = -1.e-09_wp! Brunt-Vaisala squared (1/s**2) for maximum convection60 REAL(wp) :: rn_difcon = 1._wp! maximum mixing in interior convection (m2/s)61 INTEGER :: nn_ave = 1! = 0/1 flag for horizontal average on avt, avmu, avmv54 ! !!* Namelist namzdf_kpp * 55 REAL(wp) :: rn_difmiw ! constant internal wave viscosity (m2/s) 56 REAL(wp) :: rn_difsiw ! constant internal wave diffusivity (m2/s) 57 REAL(wp) :: rn_riinfty ! local Richardson Number limit for shear instability 58 REAL(wp) :: rn_difri ! maximum shear mixing at Rig = 0 (m2/s) 59 REAL(wp) :: rn_bvsqcon ! Brunt-Vaisala squared (1/s**2) for maximum convection 60 REAL(wp) :: rn_difcon ! maximum mixing in interior convection (m2/s) 61 INTEGER :: nn_ave ! = 0/1 flag for horizontal average on avt, avmu, avmv 62 62 63 63 #if defined key_zdfddm … … 67 67 REAL(wp) :: difsdc = 1.5e-06_wp ! maximum diffusive convection mixing 68 68 #endif 69 LOGICAL :: ln_kpprimix = .TRUE.! Shear instability mixing69 LOGICAL :: ln_kpprimix ! Shear instability mixing 70 70 71 71 ! !!! ** General constants ** -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfric.F90
r3875 r3901 41 41 LOGICAL, PUBLIC, PARAMETER :: lk_zdfric = .TRUE. !: Richardson vertical mixing flag 42 42 43 ! 44 INTEGER :: nn_ric = 2! coefficient of the parameterization45 REAL(wp) :: rn_avmri = 100.e-4_wp! maximum value of the vertical eddy viscosity46 REAL(wp) :: rn_alp = 5._wp! coefficient of the parameterization47 REAL(wp) :: rn_ekmfc = 0.7_wp! Ekman Factor Coeff48 REAL(wp) :: rn_mldmin = 1.0_wp! minimum mixed layer (ML) depth49 REAL(wp) :: rn_mldmax =1000.0_wp! maximum mixed layer depth50 REAL(wp) :: rn_wtmix = 10.0_wp! Vertical eddy Diff. in the ML51 REAL(wp) :: rn_wvmix = 10.0_wp! Vertical eddy Visc. in the ML52 LOGICAL :: ln_mldw = .TRUE.! Use or not the MLD parameters43 ! !!* Namelist namzdf_ric : Richardson number dependent Kz * 44 INTEGER :: nn_ric ! coefficient of the parameterization 45 REAL(wp) :: rn_avmri ! maximum value of the vertical eddy viscosity 46 REAL(wp) :: rn_alp ! coefficient of the parameterization 47 REAL(wp) :: rn_ekmfc ! Ekman Factor Coeff 48 REAL(wp) :: rn_mldmin ! minimum mixed layer (ML) depth 49 REAL(wp) :: rn_mldmax ! maximum mixed layer depth 50 REAL(wp) :: rn_wtmix ! Vertical eddy Diff. in the ML 51 REAL(wp) :: rn_wvmix ! Vertical eddy Visc. in the ML 52 LOGICAL :: ln_mldw ! Use or not the MLD parameters 53 53 54 54 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: tmric !: coef. for the horizontal mean at t-point -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/ZDF/zdftke.F90
r3875 r3901 62 62 LOGICAL , PUBLIC, PARAMETER :: lk_zdftke = .TRUE. !: TKE vertical mixing flag 63 63 64 ! 65 LOGICAL :: ln_mxl0 = .FALSE.! mixing length scale surface value as function of wind stress or not66 INTEGER :: nn_mxl = 2! type of mixing length (=0/1/2/3)67 REAL(wp) :: rn_mxl0 = 0.04_wp! surface min value of mixing length (kappa*z_o=0.4*0.1 m) [m]68 INTEGER :: nn_pdl = 1! Prandtl number or not (ratio avt/avm) (=0/1)69 REAL(wp) :: rn_ediff = 0.1_wp! coefficient for avt: avt=rn_ediff*mxl*sqrt(e)70 REAL(wp) :: rn_ediss = 0.7_wp! coefficient of the Kolmogoroff dissipation71 REAL(wp) :: rn_ebb = 3.75_wp! coefficient of the surface input of tke72 REAL(wp) :: rn_emin = 0.7071e-6_wp! minimum value of tke [m2/s2]73 REAL(wp) :: rn_emin0 = 1.e-4_wp! surface minimum value of tke [m2/s2]74 REAL(wp) :: rn_bshear = 1.e-20_wp! background shear (>0) currently a numerical threshold (do not change it)75 INTEGER :: nn_etau = 0! type of depth penetration of surface tke (=0/1/2/3)76 INTEGER :: nn_htau = 0! type of tke profile of penetration (=0/1)77 REAL(wp) :: rn_efr = 1.0_wp! fraction of TKE surface value which penetrates in the ocean78 LOGICAL :: ln_lc = .FALSE.! Langmuir cells (LC) as a source term of TKE or not79 REAL(wp) :: rn_lc = 0.15_wp! coef to compute vertical velocity of Langmuir cells80 81 REAL(wp) :: ri_cri 82 REAL(wp) :: rmxl_min 64 ! !!** Namelist namzdf_tke ** 65 LOGICAL :: ln_mxl0 ! mixing length scale surface value as function of wind stress or not 66 INTEGER :: nn_mxl ! type of mixing length (=0/1/2/3) 67 REAL(wp) :: rn_mxl0 ! surface min value of mixing length (kappa*z_o=0.4*0.1 m) [m] 68 INTEGER :: nn_pdl ! Prandtl number or not (ratio avt/avm) (=0/1) 69 REAL(wp) :: rn_ediff ! coefficient for avt: avt=rn_ediff*mxl*sqrt(e) 70 REAL(wp) :: rn_ediss ! coefficient of the Kolmogoroff dissipation 71 REAL(wp) :: rn_ebb ! coefficient of the surface input of tke 72 REAL(wp) :: rn_emin ! minimum value of tke [m2/s2] 73 REAL(wp) :: rn_emin0 ! surface minimum value of tke [m2/s2] 74 REAL(wp) :: rn_bshear ! background shear (>0) currently a numerical threshold (do not change it) 75 INTEGER :: nn_etau ! type of depth penetration of surface tke (=0/1/2/3) 76 INTEGER :: nn_htau ! type of tke profile of penetration (=0/1) 77 REAL(wp) :: rn_efr ! fraction of TKE surface value which penetrates in the ocean 78 LOGICAL :: ln_lc ! Langmuir cells (LC) as a source term of TKE or not 79 REAL(wp) :: rn_lc ! coef to compute vertical velocity of Langmuir cells 80 81 REAL(wp) :: ri_cri ! critic Richardson number (deduced from rn_ediff and rn_ediss values) 82 REAL(wp) :: rmxl_min ! minimum mixing length value (deduced from rn_ediff and rn_emin values) [m] 83 83 REAL(wp) :: rhftau_add = 1.e-3_wp ! add offset applied to HF part of taum (nn_etau=3) 84 84 REAL(wp) :: rhftau_scl = 1.0_wp ! scale factor applied to HF part of taum (nn_etau=3) -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/ZDF/zdftmx.F90
r3875 r3901 38 38 LOGICAL, PUBLIC, PARAMETER :: lk_zdftmx = .TRUE. !: tidal mixing flag 39 39 40 ! 41 REAL(wp) :: rn_htmx = 500.! vertical decay scale for turbulence (meters)42 REAL(wp) :: rn_n2min = 1.e-8! threshold of the Brunt-Vaisala frequency (s-1)43 REAL(wp) :: rn_tfe = 1./3.! tidal dissipation efficiency (St Laurent et al. 2002)44 REAL(wp) :: rn_me = 0.2! mixing efficiency (Osborn 1980)45 LOGICAL :: ln_tmx_itf = .TRUE.! Indonesian Through Flow (ITF): Koch-Larrouy et al. (2007) parameterization46 REAL(wp) :: rn_tfe_itf = 1.! ITF tidal dissipation efficiency (St Laurent et al. 2002)40 ! !!* Namelist namzdf_tmx : tidal mixing * 41 REAL(wp) :: rn_htmx ! vertical decay scale for turbulence (meters) 42 REAL(wp) :: rn_n2min ! threshold of the Brunt-Vaisala frequency (s-1) 43 REAL(wp) :: rn_tfe ! tidal dissipation efficiency (St Laurent et al. 2002) 44 REAL(wp) :: rn_me ! mixing efficiency (Osborn 1980) 45 LOGICAL :: ln_tmx_itf ! Indonesian Through Flow (ITF): Koch-Larrouy et al. (2007) parameterization 46 REAL(wp) :: rn_tfe_itf ! ITF tidal dissipation efficiency (St Laurent et al. 2002) 47 47 48 48 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: en_tmx ! energy available for tidal mixing (W/m2) -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/module_example
r3875 r3901 13 13 !! 'key_example' : brief description of the key option 14 14 !!---------------------------------------------------------------------- 15 !! exa_mpl : list eof module subroutine (caution, never use the15 !! exa_mpl : list of module subroutine (caution, never use the 16 16 !! exa_mpl_init : name of the module for a routine) 17 17 !! exa_mpl_stp : Please try to use 3 letter block for routine names … … 162 162 !!---------------------------------------------------------------------- 163 163 ! 164 sn_ex%clname ='toto' ! set default namelist values165 sn_ex%nfreqh = 2166 !167 164 REWIND( numnam_ref ) ! Namelist namexa in reference namelist : Example 168 165 READ ( numnam_ref, namexa, IOSTAT = ios, ERR = 901) … … 181 178 WRITE(numout,*) ' Namelist namexa : set example parameters' 182 179 WRITE(numout,*) ' brief desciption exa_v1 = ', exa_v1 183 WRITE(numout,*) ' brief desciption exa_v 1 = ', exa_v1180 WRITE(numout,*) ' brief desciption exa_v2 = ', exa_v2 184 181 WRITE(numout,*) ' brief desciption nexa_0 = ', nexa_0 185 182 WRITE(numout,*) ' brief desciption sn_ex%clname = ', sn_ex%clname -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90
r3875 r3901 231 231 CALL ctl_opn( numnam_ref, 'namelist_ref', 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, 6, .FALSE. ) 232 232 CALL ctl_opn( numnam_cfg, 'namelist_cfg', 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, 6, .FALSE. ) 233 CALL ctl_opn( numond, 'output.namelist.dyn', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, 6, .FALSE. , narea)233 CALL ctl_opn( numond, 'output.namelist.dyn', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, 6, .FALSE. ) 234 234 ! 235 235 REWIND( numnam_ref ) ! Namelist namctl in reference namelist : Control prints & Benchmark … … 524 524 IF( numnam_ref /= -1 ) CLOSE( numnam_ref ) ! oce reference namelist 525 525 IF( numnam_cfg /= -1 ) CLOSE( numnam_cfg ) ! oce configuration namelist 526 IF( numond /= -1 ) CLOSE( numond ) ! oce output namelist 526 527 IF( numnam_ice_ref /= -1 ) CLOSE( numnam_ice_ref ) ! ice reference namelist 527 528 IF( numnam_ice_cfg /= -1 ) CLOSE( numnam_ice_cfg ) ! ice configuration namelist 529 IF( numoni /= -1 ) CLOSE( numoni ) ! ice output namelist 528 530 IF( numevo_ice /= -1 ) CLOSE( numevo_ice ) ! ice variables (temp. evolution) 529 531 IF( numout /= 6 ) CLOSE( numout ) ! standard model output file -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/OPA_SRC/step.F90
r3769 r3901 251 251 CALL dia_wri_state( 'output.abort', kstp ) 252 252 ENDIF 253 IF( kstp == nit000 ) CALL iom_close( numror ) ! close input ocean restart file 253 IF( kstp == nit000 ) THEN 254 CALL iom_close( numror ) ! close input ocean restart file 255 CALL FLUSH ( numond ) ! flush output namelist oce 256 CALL FLUSH ( numoni ) ! flush output namelist ice 257 ENDIF 254 258 IF( lrst_oce ) CALL rst_write ( kstp ) ! write output ocean restart file 255 259 IF( lk_obc ) CALL obc_rst_write( kstp ) ! write open boundary restart file -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/SAS_SRC/sbcssm.F90
r3875 r3901 36 36 PUBLIC sbc_ssm ! called by sbc 37 37 38 CHARACTER(len=100) :: cn_dir = './'!: Root directory for location of ssm files39 LOGICAL :: ln_3d_uv = .true.!: specify whether input velocity data is 3D38 CHARACTER(len=100) :: cn_dir !: Root directory for location of ssm files 39 LOGICAL :: ln_3d_uv !: specify whether input velocity data is 3D 40 40 INTEGER , SAVE :: nfld_3d 41 41 INTEGER , SAVE :: nfld_2d … … 142 142 ! ! Namelist 143 143 ! ! ============ 144 ! (NB: frequency positive => hours, negative => months)145 ! ! file ! frequency ! variable ! time intep ! clim ! 'yearly' or ! weights ! rotation !146 ! ! name ! (hours) ! name ! (T/F) ! (T/F) ! 'monthly' ! filename ! pairs !147 sn_usp = FLD_N( 'ssm_grid_U' , 120 , 'vozocrtx' , .true. , .true. , 'yearly' , '' , '' )148 sn_vsp = FLD_N( 'ssm_grid_V' , 120 , 'vomecrty' , .true. , .true. , 'yearly' , '' , '' )149 sn_tem = FLD_N( 'ssm_grid_T' , 120 , 'sosstsst' , .true. , .true. , 'yearly' , '' , '' )150 sn_sal = FLD_N( 'ssm_grid_T' , 120 , 'sosaline' , .true. , .true. , 'yearly' , '' , '' )151 sn_ssh = FLD_N( 'ssm_grid_T' , 120 , 'sossheig' , .true. , .true. , 'yearly' , '' , '' )152 144 ! 153 145 REWIND( numnam_ref ) ! Namelist namsbc_ssm in reference namelist : SAS files for dynamical data -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/TOP_SRC/C14b/trcnam_c14b.F90
r3875 r3901 55 55 NAMELIST/namc14dia/ c14dia2d, c14dia3d ! additional diagnostics 56 56 !!------------------------------------------------------------------- 57 58 ndate_beg_b = 650101 ! default namelist value59 nyear_res_b = 195560 61 57 ! ! Open namelist file 62 58 CALL ctl_opn( numnatb_ref, 'namelist_c14b_ref' , 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. ) … … 85 81 ! Namelist namc14dia 86 82 ! ------------------- 87 DO jl = 1, jp_c14b_2d88 WRITE(c14dia2d(jl)%sname,'("2D_",I1)') jl ! short name89 WRITE(c14dia2d(jl)%lname,'("2D DIAGNOSTIC NUMBER ",I2)') jl ! long name90 c14dia2d(jl)%units = ' ' ! units91 END DO92 ! ! 3D output arrays93 DO jl = 1, jp_c14b_3d94 WRITE(c14dia3d(jl)%sname,'("3D_",I1)') jl ! short name95 WRITE(c14dia3d(jl)%lname,'("3D DIAGNOSTIC NUMBER ",I2)') jl ! long name96 c14dia3d(jl)%units = ' ' ! units97 END DO98 99 83 REWIND( numnatb_ref ) ! Namelist namc14dia in reference namelist : c14b diagnostics 100 84 READ ( numnatb_ref, namc14dia, IOSTAT = ios, ERR = 903) -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/TOP_SRC/C14b/trcsms_c14b.F90
r3680 r3901 307 307 CALL wrk_dealloc( jpi, jpj, jpk, zdecay ) 308 308 ! 309 IF ( kt == nittrc000 ) CALL FLUSH ( numonb ) ! flush output namelist C14b 309 310 IF( nn_timing == 1 ) CALL timing_stop('trc_sms_c14b') 310 311 ! -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/TOP_SRC/CFC/trcnam_cfc.F90
r3875 r3901 51 51 NAMELIST/namcfcdate/ ndate_beg, nyear_res 52 52 NAMELIST/namcfcdia/ cfcdia2d ! additional diagnostics 53 !!------------------------------------------------------------------- 54 55 ndate_beg = 300101 ! default namelist value 56 nyear_res = 1950 57 53 !!---------------------------------------------------------------------- 58 54 ! ! Open namelist files 59 55 CALL ctl_opn( numnatc_ref, 'namelist_cfc_ref' , 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. ) … … 85 81 ! Namelist namcfcdia 86 82 ! ------------------- 87 DO jl = 1, jp_cfc_2d88 WRITE(cfcdia2d(jl)%sname,'("2D_",I1)') jl ! short name89 WRITE(cfcdia2d(jl)%lname,'("2D DIAGNOSTIC NUMBER ",I2)') jl ! long name90 cfcdia2d(jl)%units = ' ' ! units91 END DO92 93 83 REWIND( numnatc_ref ) ! Namelist namcfcdia in reference namelist : CFC diagnostics 94 84 READ ( numnatc_ref, namcfcdia, IOSTAT = ios, ERR = 903) -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/TOP_SRC/CFC/trcsms_cfc.F90
r3680 r3901 205 205 END IF 206 206 ! 207 IF ( kt == nittrc000 ) CALL FLUSH ( numonc ) ! flush output namelist CFC 207 208 IF( nn_timing == 1 ) CALL timing_stop('trc_sms_cfc') 208 209 ! -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zbio.F90
r3875 r3901 31 31 PUBLIC p2z_bio_init ! called in ??? 32 32 33 REAL(wp) :: tmumax = 1.21e-5! maximal phytoplankton growth rate [s-1]34 REAL(wp) :: rgamma = 0.05! phytoplankton exudation fraction [%]35 REAL(wp) :: fphylab = 0.75! NH4 fraction of phytoplankton exsudation36 REAL(wp) :: tmminp = 5.8e-7! minimal phytoplancton mortality rate [0.05/86400 s-1=20 days]37 REAL(wp) :: aki = 33.! light photosynthesis half saturation constant[W/m2]33 REAL(wp) :: tmumax ! maximal phytoplankton growth rate [s-1] 34 REAL(wp) :: rgamma ! phytoplankton exudation fraction [%] 35 REAL(wp) :: fphylab ! NH4 fraction of phytoplankton exsudation 36 REAL(wp) :: tmminp ! minimal phytoplancton mortality rate [0.05/86400 s-1=20 days] 37 REAL(wp) :: aki ! light photosynthesis half saturation constant[W/m2] 38 38 ! 39 REAL(wp) :: akno3 = 0.7! nitrate limitation half-saturation value [mmol/m3]40 REAL(wp) :: aknh4 = 0.001! ammonium limitation half-saturation value [mmol/m3]41 REAL(wp) :: taunn = 5.80e-7! nitrification rate [s-1]42 REAL(wp) :: psinut = 3.! inhibition of nitrate uptake by ammonium39 REAL(wp) :: akno3 ! nitrate limitation half-saturation value [mmol/m3] 40 REAL(wp) :: aknh4 ! ammonium limitation half-saturation value [mmol/m3] 41 REAL(wp) :: taunn ! nitrification rate [s-1] 42 REAL(wp) :: psinut ! inhibition of nitrate uptake by ammonium 43 43 ! 44 REAL(wp) :: taudn = 5.80e-7! detritus breakdown rate [0.1/86400 s-1=10 days]45 REAL(wp) :: fdetlab = 0.! NH4 fraction of detritus dissolution44 REAL(wp) :: taudn ! detritus breakdown rate [0.1/86400 s-1=10 days] 45 REAL(wp) :: fdetlab ! NH4 fraction of detritus dissolution 46 46 ! 47 REAL(wp) :: taudomn = 6.43e-8! DOM breakdown rate [s-1]48 ! 47 REAL(wp) :: taudomn ! DOM breakdown rate [s-1] 48 ! ! slow remineralization rate of semi-labile dom to nh4 (1 month) 49 49 ! 50 REAL(wp) :: rppz = 0.! ivlev coeff for zoo mortality51 REAL(wp) :: taus = 9.26E-6! specific zooplankton maximal grazing rate [s-1]50 REAL(wp) :: rppz ! ivlev coeff for zoo mortality 51 REAL(wp) :: taus ! specific zooplankton maximal grazing rate [s-1] 52 52 ! ! 0.75/86400 s-1=8.680555E-6 1/86400 = 1.15e-5 53 REAL(wp) :: aks = 1.! half-saturation constant for total zooplankton grazing [mmolN.m-3]54 REAL(wp) :: rpnaz = 0.3! non-assimilated phytoplankton by zooplancton [%]55 REAL(wp) :: rdnaz = 0.3! non-assimilated detritus by zooplankton [%]56 REAL(wp) :: tauzn = 8.1e-7! zooplancton specific excretion rate [0.1/86400 s-1=10 days]57 REAL(wp) :: tmminz = 2.31e-6! minimal zooplankton mortality rate [(mmolN/m3)-1 d-1]58 REAL(wp) :: fzoolab = 0.5! NH4 fraction of zooplankton excretion59 REAL(wp) :: fdbod = 0.5! zooplankton mortality fraction that goes to detritus53 REAL(wp) :: aks ! half-saturation constant for total zooplankton grazing [mmolN.m-3] 54 REAL(wp) :: rpnaz ! non-assimilated phytoplankton by zooplancton [%] 55 REAL(wp) :: rdnaz ! non-assimilated detritus by zooplankton [%] 56 REAL(wp) :: tauzn ! zooplancton specific excretion rate [0.1/86400 s-1=10 days] 57 REAL(wp) :: tmminz ! minimal zooplankton mortality rate [(mmolN/m3)-1 d-1] 58 REAL(wp) :: fzoolab ! NH4 fraction of zooplankton excretion 59 REAL(wp) :: fdbod ! zooplankton mortality fraction that goes to detritus 60 60 61 61 !!* Substitution -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zopt.F90
r3875 r3901 28 28 PUBLIC p2z_opt_init ! 29 29 30 REAL(wp), PUBLIC :: xkr0 = 0.0232_wp!: water coefficient absorption in red31 REAL(wp), PUBLIC :: xkg0 = 0.225_wp!: water coefficient absorption in green32 REAL(wp), PUBLIC :: xkrp = 0.074_wp!: pigment coefficient absorption in red33 REAL(wp), PUBLIC :: xkgp = 0.037_wp!: pigment coefficient absorption in green34 REAL(wp), PUBLIC :: xlr = 0.674_wp!: exposant for pigment absorption in red35 REAL(wp), PUBLIC :: xlg = 0.629_wp!: exposant for pigment absorption in green36 REAL(wp), PUBLIC :: rpig = 0.7_wp!: chla/chla+phea ratio30 REAL(wp), PUBLIC :: xkr0 !: water coefficient absorption in red 31 REAL(wp), PUBLIC :: xkg0 !: water coefficient absorption in green 32 REAL(wp), PUBLIC :: xkrp !: pigment coefficient absorption in red 33 REAL(wp), PUBLIC :: xkgp !: pigment coefficient absorption in green 34 REAL(wp), PUBLIC :: xlr !: exposant for pigment absorption in red 35 REAL(wp), PUBLIC :: xlg !: exposant for pigment absorption in green 36 REAL(wp), PUBLIC :: rpig !: chla/chla+phea ratio 37 37 ! 38 REAL(wp), PUBLIC :: rcchl = 60_wp! Carbone/Chlorophyl ratio [mgC.mgChla-1]39 REAL(wp), PUBLIC :: redf = 6.56_wp! redfield ratio (C:N) for phyto40 REAL(wp), PUBLIC :: reddom = 6.56_wp! redfield ratio (C:N) for DOM38 REAL(wp), PUBLIC :: rcchl ! Carbone/Chlorophyl ratio [mgC.mgChla-1] 39 REAL(wp), PUBLIC :: redf ! redfield ratio (C:N) for phyto 40 REAL(wp), PUBLIC :: reddom ! redfield ratio (C:N) for DOM 41 41 42 42 !!* Substitution -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zsed.F90
r3875 r3901 29 29 PUBLIC p2z_sed_init ! called in ??? 30 30 31 REAL(wp), PUBLIC :: sedlam = 3.86e-7!: time coefficient of POC remineralization in sediments32 REAL(wp), PUBLIC :: sedlostpoc = 0.! mass of POC lost in sediments33 REAL(wp), PUBLIC :: vsed = 3.47e-5! detritus sedimentation speed [m/s]34 REAL(wp), PUBLIC :: xhr = -0.858! coeff for martin''s remineralisation profile31 REAL(wp), PUBLIC :: sedlam !: time coefficient of POC remineralization in sediments 32 REAL(wp), PUBLIC :: sedlostpoc ! mass of POC lost in sediments 33 REAL(wp), PUBLIC :: vsed ! detritus sedimentation speed [m/s] 34 REAL(wp), PUBLIC :: xhr ! coeff for martin''s remineralisation profile 35 35 36 36 !!* Substitution -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zsms.F90
r3443 r3901 15 15 USE oce_trc ! 16 16 USE trc 17 USE sms_pisces 17 18 USE p2zbio 18 19 USE p2zopt … … 66 67 IF( lk_trdmld_trc ) CALL trd_mld_bio( kt ) ! trends: Mixed-layer 67 68 ! 69 IF ( kt == nittrc000 ) CALL FLUSH ( numonp ) ! flush output namelist PISCES 68 70 IF( nn_timing == 1 ) CALL timing_stop('p2z_sms') 69 71 ! -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zfechem.F90
r3875 r3901 31 31 32 32 !! * Shared module variables 33 LOGICAL :: ln_fechem = .FALSE.!: boolean for complex iron chemistry following Tagliabue and voelker34 LOGICAL :: ln_ligvar = .FALSE.!: boolean for variable ligand concentration following Tagliabue and voelker35 REAL(wp), PUBLIC :: xlam1 = 0.005_wp!: scavenging rate of Iron36 REAL(wp), PUBLIC :: xlamdust = 150.0_wp!: scavenging rate of Iron by dust37 REAL(wp), PUBLIC :: ligand = 0.6E-9_wp!: ligand concentration in the ocean33 LOGICAL :: ln_fechem !: boolean for complex iron chemistry following Tagliabue and voelker 34 LOGICAL :: ln_ligvar !: boolean for variable ligand concentration following Tagliabue and voelker 35 REAL(wp), PUBLIC :: xlam1 !: scavenging rate of Iron 36 REAL(wp), PUBLIC :: xlamdust !: scavenging rate of Iron by dust 37 REAL(wp), PUBLIC :: ligand !: ligand concentration in the ocean 38 38 39 39 REAL(wp) :: kl1, kl2, kb1, kb2, ks, kpr, spd, con, kth -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zflx.F90
r3875 r3901 37 37 PUBLIC p4z_flx_alloc 38 38 39 ! 40 REAL(wp) :: atcco2 = 278._wp!: pre-industrial atmospheric [co2] (ppm)41 LOGICAL :: ln_co2int = .FALSE.!: flag to read in a file and interpolate atmospheric pco2 or not42 CHARACTER(len=34) :: clname = 'atcco2.txt'!: filename of pco2 values43 INTEGER :: nn_offset = 0!: Offset model-data start year (default = 0)39 ! !!** Namelist nampisext ** 40 REAL(wp) :: atcco2 !: pre-industrial atmospheric [co2] (ppm) 41 LOGICAL :: ln_co2int !: flag to read in a file and interpolate atmospheric pco2 or not 42 CHARACTER(len=34) :: clname !: filename of pco2 values 43 INTEGER :: nn_offset !: Offset model-data start year (default = 0) 44 44 45 45 !! Variables related to reading atmospheric CO2 time history … … 47 47 INTEGER :: nmaxrec, numco2 48 48 49 ! 50 LOGICAL, PUBLIC :: ln_presatm = .true.!: ref. pressure: global mean Patm (F) or a constant (F)49 ! !!* nampisatm namelist (Atmospheric PRessure) * 50 LOGICAL, PUBLIC :: ln_presatm !: ref. pressure: global mean Patm (F) or a constant (F) 51 51 52 52 REAL(wp) , ALLOCATABLE, SAVE, DIMENSION(:,:) :: patm ! atmospheric pressure at kt [N/m2] … … 316 316 NAMELIST/nampisatm/ ln_presatm, sn_patm, cn_dir 317 317 318 ! ! -------------------- !318 ! ! ----------------------- ! 319 319 IF( kt == nit000 ) THEN ! First call kt=nittrc000 ! 320 ! ! -------------------- ! 321 ! !* set file information (default values) 322 ! ... default values (NB: frequency positive => hours, negative => months) 323 ! ! file ! frequency ! variable ! time intep ! clim ! 'yearly' or ! weights ! rotation ! 324 ! ! name ! (hours) ! name ! (T/F) ! (T/F) ! 'monthly' ! filename ! pairs ! 325 sn_patm = FLD_N( 'pres' , 24 , 'patm' , .false. , .true. , 'yearly' , '' , '' ) 326 cn_dir = './' ! directory in which the Patm data are 320 ! ! ----------------------- ! 327 321 328 322 REWIND( numnatp_ref ) ! Namelist nampisatm in reference namelist : Pisces atm. sea level pressure file -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zlim.F90
r3875 r3901 28 28 29 29 !! * Shared module variables 30 REAL(wp), PUBLIC :: concnno3 = 1.e-6_wp!: NO3, PO4 half saturation31 REAL(wp), PUBLIC :: concdno3 = 2.e-6_wp!: Phosphate half saturation for diatoms32 REAL(wp), PUBLIC :: concnnh4 = 1.e-7_wp!: NH4 half saturation for phyto33 REAL(wp), PUBLIC :: concdnh4 = 2.e-7_wp!: NH4 half saturation for diatoms34 REAL(wp), PUBLIC :: concnfer = 1.e-9_wp!: Iron half saturation for nanophyto35 REAL(wp), PUBLIC :: concdfer = 2.e-9_wp!: Iron half saturation for diatoms36 REAL(wp), PUBLIC :: concbno3 = 2.5e-7_wp!: NO3 half saturation for bacteria37 REAL(wp), PUBLIC :: concbnh4 = 2.5e-8_wp!: NH4 half saturation for bacteria38 REAL(wp), PUBLIC :: xsizedia = 5.e-7_wp!: Minimum size criteria for diatoms39 REAL(wp), PUBLIC :: xsizephy = 1.e-6_wp!: Minimum size criteria for nanophyto40 REAL(wp), PUBLIC :: xsizern = 3.0_wp!: Size ratio for nanophytoplankton41 REAL(wp), PUBLIC :: xsizerd = 4.0_wp!: Size ratio for diatoms42 REAL(wp), PUBLIC :: xksi1 = 2.E-6_wp!: half saturation constant for Si uptake43 REAL(wp), PUBLIC :: xksi2 = 3.33e-6_wp!: half saturation constant for Si/C44 REAL(wp), PUBLIC :: xkdoc = 417.e-6_wp!: 2nd half-sat. of DOC remineralization45 REAL(wp), PUBLIC :: concbfe = 1.E-11_wp!: Fe half saturation for bacteria46 REAL(wp), PUBLIC :: qnfelim = 7.E-6_wp!: optimal Fe quota for nanophyto47 REAL(wp), PUBLIC :: qdfelim = 7.E-6_wp!: optimal Fe quota for diatoms48 REAL(wp), PUBLIC :: caco3r = 0.16_wp!: mean rainratio30 REAL(wp), PUBLIC :: concnno3 !: NO3, PO4 half saturation 31 REAL(wp), PUBLIC :: concdno3 !: Phosphate half saturation for diatoms 32 REAL(wp), PUBLIC :: concnnh4 !: NH4 half saturation for phyto 33 REAL(wp), PUBLIC :: concdnh4 !: NH4 half saturation for diatoms 34 REAL(wp), PUBLIC :: concnfer !: Iron half saturation for nanophyto 35 REAL(wp), PUBLIC :: concdfer !: Iron half saturation for diatoms 36 REAL(wp), PUBLIC :: concbno3 !: NO3 half saturation for bacteria 37 REAL(wp), PUBLIC :: concbnh4 !: NH4 half saturation for bacteria 38 REAL(wp), PUBLIC :: xsizedia !: Minimum size criteria for diatoms 39 REAL(wp), PUBLIC :: xsizephy !: Minimum size criteria for nanophyto 40 REAL(wp), PUBLIC :: xsizern !: Size ratio for nanophytoplankton 41 REAL(wp), PUBLIC :: xsizerd !: Size ratio for diatoms 42 REAL(wp), PUBLIC :: xksi1 !: half saturation constant for Si uptake 43 REAL(wp), PUBLIC :: xksi2 !: half saturation constant for Si/C 44 REAL(wp), PUBLIC :: xkdoc !: 2nd half-sat. of DOC remineralization 45 REAL(wp), PUBLIC :: concbfe !: Fe half saturation for bacteria 46 REAL(wp), PUBLIC :: qnfelim !: optimal Fe quota for nanophyto 47 REAL(wp), PUBLIC :: qdfelim !: optimal Fe quota for diatoms 48 REAL(wp), PUBLIC :: caco3r !: mean rainratio 49 49 50 50 ! Coefficient for iron limitation -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zlys.F90
r3875 r3901 32 32 33 33 !! * Shared module variables 34 REAL(wp), PUBLIC :: kdca = 0.327e3_wp!: diss. rate constant calcite35 REAL(wp), PUBLIC :: nca = 1.0_wp!: order of reaction for calcite dissolution34 REAL(wp), PUBLIC :: kdca !: diss. rate constant calcite 35 REAL(wp), PUBLIC :: nca !: order of reaction for calcite dissolution 36 36 37 37 !! * Module variables -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmeso.F90
r3875 r3901 31 31 32 32 !! * Shared module variables 33 REAL(wp), PUBLIC :: part2 = 0.5_wp!: part of calcite not dissolved in mesozoo guts34 REAL(wp), PUBLIC :: xprefc = 1.0_wp!: mesozoo preference for POC35 REAL(wp), PUBLIC :: xprefp = 0.3_wp!: mesozoo preference for nanophyto36 REAL(wp), PUBLIC :: xprefz = 1.0_wp!: mesozoo preference for diatoms37 REAL(wp), PUBLIC :: xprefpoc = 0.3_wp!: mesozoo preference for POC38 REAL(wp), PUBLIC :: xthresh2zoo = 1E-8_wp!: zoo feeding threshold for mesozooplankton39 REAL(wp), PUBLIC :: xthresh2dia = 1E-8_wp!: diatoms feeding threshold for mesozooplankton40 REAL(wp), PUBLIC :: xthresh2phy = 2E-7_wp!: nanophyto feeding threshold for mesozooplankton41 REAL(wp), PUBLIC :: xthresh2poc = 1E-8_wp!: poc feeding threshold for mesozooplankton42 REAL(wp), PUBLIC :: xthresh2 = 0._wp!: feeding threshold for mesozooplankton43 REAL(wp), PUBLIC :: resrat2 = 0.005_wp!: exsudation rate of mesozooplankton44 REAL(wp), PUBLIC :: mzrat2 = 0.04_wp!: microzooplankton mortality rate45 REAL(wp), PUBLIC :: grazrat2 = 0.9_wp!: maximal mesozoo grazing rate46 REAL(wp), PUBLIC :: xkgraz2 = 20E-6_wp!: non assimilated fraction of P by mesozoo47 REAL(wp), PUBLIC :: unass2 = 0.3_wp!: Efficicency of mesozoo growth48 REAL(wp), PUBLIC :: sigma2 = 0.6_wp!: Fraction of mesozoo excretion as DOM49 REAL(wp), PUBLIC :: epsher2 = 0.3_wp!: half sturation constant for grazing 250 REAL(wp), PUBLIC :: grazflux = 3.E3_wp!: mesozoo flux feeding rate33 REAL(wp), PUBLIC :: part2 !: part of calcite not dissolved in mesozoo guts 34 REAL(wp), PUBLIC :: xprefc !: mesozoo preference for POC 35 REAL(wp), PUBLIC :: xprefp !: mesozoo preference for nanophyto 36 REAL(wp), PUBLIC :: xprefz !: mesozoo preference for diatoms 37 REAL(wp), PUBLIC :: xprefpoc !: mesozoo preference for POC 38 REAL(wp), PUBLIC :: xthresh2zoo !: zoo feeding threshold for mesozooplankton 39 REAL(wp), PUBLIC :: xthresh2dia !: diatoms feeding threshold for mesozooplankton 40 REAL(wp), PUBLIC :: xthresh2phy !: nanophyto feeding threshold for mesozooplankton 41 REAL(wp), PUBLIC :: xthresh2poc !: poc feeding threshold for mesozooplankton 42 REAL(wp), PUBLIC :: xthresh2 !: feeding threshold for mesozooplankton 43 REAL(wp), PUBLIC :: resrat2 !: exsudation rate of mesozooplankton 44 REAL(wp), PUBLIC :: mzrat2 !: microzooplankton mortality rate 45 REAL(wp), PUBLIC :: grazrat2 !: maximal mesozoo grazing rate 46 REAL(wp), PUBLIC :: xkgraz2 !: non assimilated fraction of P by mesozoo 47 REAL(wp), PUBLIC :: unass2 !: Efficicency of mesozoo growth 48 REAL(wp), PUBLIC :: sigma2 !: Fraction of mesozoo excretion as DOM 49 REAL(wp), PUBLIC :: epsher2 !: half sturation constant for grazing 2 50 REAL(wp), PUBLIC :: grazflux !: mesozoo flux feeding rate 51 51 52 52 !!* Substitution -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmicro.F90
r3875 r3901 32 32 33 33 !! * Shared module variables 34 REAL(wp), PUBLIC :: part = 0.5_wp!: part of calcite not dissolved in microzoo guts35 REAL(wp), PUBLIC :: xpref2c = 0.2_wp!: microzoo preference for POC36 REAL(wp), PUBLIC :: xpref2p = 1.0_wp!: microzoo preference for nanophyto37 REAL(wp), PUBLIC :: xpref2d = 0.6_wp!: microzoo preference for diatoms38 REAL(wp), PUBLIC :: xthreshdia = 1E-8_wp!: diatoms feeding threshold for microzooplankton39 REAL(wp), PUBLIC :: xthreshphy = 2E-7_wp!: nanophyto threshold for microzooplankton40 REAL(wp), PUBLIC :: xthreshpoc = 1E-8_wp!: poc threshold for microzooplankton41 REAL(wp), PUBLIC :: xthresh = 0._wp!: feeding threshold for microzooplankton42 REAL(wp), PUBLIC :: resrat = 0.03_wp!: exsudation rate of microzooplankton43 REAL(wp), PUBLIC :: mzrat = 0.0_wp!: microzooplankton mortality rate44 REAL(wp), PUBLIC :: grazrat = 3.0_wp!: maximal microzoo grazing rate45 REAL(wp), PUBLIC :: xkgraz = 20E-6_wp!: non assimilated fraction of P by microzoo46 REAL(wp), PUBLIC :: unass = 0.3_wp!: Efficicency of microzoo growth47 REAL(wp), PUBLIC :: sigma1 = 0.6_wp!: Fraction of microzoo excretion as DOM48 REAL(wp), PUBLIC :: epsher = 0.3_wp!: half sturation constant for grazing 134 REAL(wp), PUBLIC :: part !: part of calcite not dissolved in microzoo guts 35 REAL(wp), PUBLIC :: xpref2c !: microzoo preference for POC 36 REAL(wp), PUBLIC :: xpref2p !: microzoo preference for nanophyto 37 REAL(wp), PUBLIC :: xpref2d !: microzoo preference for diatoms 38 REAL(wp), PUBLIC :: xthreshdia !: diatoms feeding threshold for microzooplankton 39 REAL(wp), PUBLIC :: xthreshphy !: nanophyto threshold for microzooplankton 40 REAL(wp), PUBLIC :: xthreshpoc !: poc threshold for microzooplankton 41 REAL(wp), PUBLIC :: xthresh !: feeding threshold for microzooplankton 42 REAL(wp), PUBLIC :: resrat !: exsudation rate of microzooplankton 43 REAL(wp), PUBLIC :: mzrat !: microzooplankton mortality rate 44 REAL(wp), PUBLIC :: grazrat !: maximal microzoo grazing rate 45 REAL(wp), PUBLIC :: xkgraz !: non assimilated fraction of P by microzoo 46 REAL(wp), PUBLIC :: unass !: Efficicency of microzoo growth 47 REAL(wp), PUBLIC :: sigma1 !: Fraction of microzoo excretion as DOM 48 REAL(wp), PUBLIC :: epsher !: half sturation constant for grazing 1 49 49 50 50 -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmort.F90
r3875 r3901 27 27 28 28 !! * Shared module variables 29 REAL(wp), PUBLIC :: wchl = 0.001_wp!:30 REAL(wp), PUBLIC :: wchld = 0.02_wp!:31 REAL(wp), PUBLIC :: wchldm = 0.05_wp!:32 REAL(wp), PUBLIC :: mprat = 0.01_wp!:33 REAL(wp), PUBLIC :: mprat2 = 0.01_wp!:29 REAL(wp), PUBLIC :: wchl !: 30 REAL(wp), PUBLIC :: wchld !: 31 REAL(wp), PUBLIC :: wchldm !: 32 REAL(wp), PUBLIC :: mprat !: 33 REAL(wp), PUBLIC :: mprat2 !: 34 34 35 35 -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zopt.F90
r3875 r3901 32 32 !! * Shared module variables 33 33 34 LOGICAL :: ln_varpar = .FALSE.!: boolean for variable PAR fraction35 REAL(wp) :: parlux = 0.43_wp!: Fraction of shortwave as PAR34 LOGICAL :: ln_varpar !: boolean for variable PAR fraction 35 REAL(wp) :: parlux !: Fraction of shortwave as PAR 36 36 REAL(wp) :: xparsw !: parlux/3 37 37 … … 330 330 IF( nn_timing == 1 ) CALL timing_start('p4z_opt_init') 331 331 332 cn_dir = './' ! directory in which the model is executed333 ! ... default values (NB: frequency positive => hours, negative => months)334 ! ! file ! frequency ! variable ! time intep ! clim ! 'yearly' or ! weights ! rotation !335 ! ! name ! (hours) ! name ! (T/F) ! (T/F) ! 'monthly' ! filename ! pairs !336 sn_par = FLD_N( 'par_fraction', 24 , 'fr_par' , .true. , .true. , 'yearly' , '' , '' )337 338 332 REWIND( numnatp_ref ) ! Namelist nampisopt in reference namelist : Pisces attenuation coef. and PAR 339 333 READ ( numnatp_ref, nampisopt, IOSTAT = ios, ERR = 901) -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zprod.F90
r3875 r3901 32 32 33 33 !! * Shared module variables 34 LOGICAL , PUBLIC :: ln_newprod = .FALSE.35 REAL(wp), PUBLIC :: pislope = 3.0_wp!:36 REAL(wp), PUBLIC :: pislope2 = 3.0_wp!:37 REAL(wp), PUBLIC :: excret = 10.e-5_wp!:38 REAL(wp), PUBLIC :: excret2 = 0.05_wp!:39 REAL(wp), PUBLIC :: bresp = 0.00333_wp!:40 REAL(wp), PUBLIC :: chlcnm = 0.033_wp!:41 REAL(wp), PUBLIC :: chlcdm = 0.05_wp!:42 REAL(wp), PUBLIC :: chlcmin = 0.00333_wp!:43 REAL(wp), PUBLIC :: fecnm = 10.E-6_wp!:44 REAL(wp), PUBLIC :: fecdm = 15.E-6_wp!:45 REAL(wp), PUBLIC :: grosip = 0.151_wp!:34 LOGICAL , PUBLIC :: ln_newprod !: 35 REAL(wp), PUBLIC :: pislope !: 36 REAL(wp), PUBLIC :: pislope2 !: 37 REAL(wp), PUBLIC :: excret !: 38 REAL(wp), PUBLIC :: excret2 !: 39 REAL(wp), PUBLIC :: bresp !: 40 REAL(wp), PUBLIC :: chlcnm !: 41 REAL(wp), PUBLIC :: chlcdm !: 42 REAL(wp), PUBLIC :: chlcmin !: 43 REAL(wp), PUBLIC :: fecnm !: 44 REAL(wp), PUBLIC :: fecdm !: 45 REAL(wp), PUBLIC :: grosip !: 46 46 47 47 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: prmax !: optimal production = f(temperature) -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zrem.F90
r3875 r3901 38 38 39 39 !! * Shared module variables 40 REAL(wp), PUBLIC :: xremik = 0.3_wp!: remineralisation rate of POC41 REAL(wp), PUBLIC :: xremip = 0.025_wp!: remineralisation rate of DOC42 REAL(wp), PUBLIC :: nitrif = 0.05_wp!: NH4 nitrification rate43 REAL(wp), PUBLIC :: xsirem = 0.003_wp!: remineralisation rate of POC44 REAL(wp), PUBLIC :: xsiremlab = 0.025_wp!: fast remineralisation rate of POC45 REAL(wp), PUBLIC :: xsilab = 0.31_wp!: fraction of labile biogenic silica46 REAL(wp), PUBLIC :: oxymin = 1.e-6_wp!: halk saturation constant for anoxia40 REAL(wp), PUBLIC :: xremik !: remineralisation rate of POC 41 REAL(wp), PUBLIC :: xremip !: remineralisation rate of DOC 42 REAL(wp), PUBLIC :: nitrif !: NH4 nitrification rate 43 REAL(wp), PUBLIC :: xsirem !: remineralisation rate of POC 44 REAL(wp), PUBLIC :: xsiremlab !: fast remineralisation rate of POC 45 REAL(wp), PUBLIC :: xsilab !: fraction of labile biogenic silica 46 REAL(wp), PUBLIC :: oxymin !: halk saturation constant for anoxia 47 47 48 48 -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsbc.F90
r3875 r3901 26 26 27 27 !! * Shared module variables 28 LOGICAL , PUBLIC :: ln_dust = .FALSE.!: boolean for dust input from the atmosphere29 LOGICAL , PUBLIC :: ln_solub = .FALSE.!: boolean for variable solubility of atmospheric iron30 LOGICAL , PUBLIC :: ln_river = .FALSE.!: boolean for river input of nutrients31 LOGICAL , PUBLIC :: ln_ndepo = .FALSE.!: boolean for atmospheric deposition of N32 LOGICAL , PUBLIC :: ln_ironsed = .FALSE.!: boolean for Fe input from sediments33 LOGICAL , PUBLIC :: ln_hydrofe = .FALSE.!: boolean for Fe input from hydrothermal vents34 LOGICAL , PUBLIC :: ln_ironice = .FALSE.!: boolean for Fe input from sea ice35 REAL(wp), PUBLIC :: sedfeinput = 1.E-9_wp!: Coastal release of Iron36 REAL(wp), PUBLIC :: dustsolub = 0.014_wp!: Solubility of the dust37 REAL(wp), PUBLIC :: icefeinput = 10E-9_wp!: Iron concentration in sea ice38 REAL(wp), PUBLIC :: wdust = 2.0_wp!: Sinking speed of the dust39 REAL(wp), PUBLIC :: nitrfix = 1E-7_wp!: Nitrogen fixation rate40 REAL(wp), PUBLIC :: diazolight = 50._wp!: Nitrogen fixation sensitivty to light41 REAL(wp), PUBLIC :: concfediaz = 1.E-10_wp!: Fe half-saturation Cste for diazotrophs42 REAL(wp) :: hratio = 9.E-5_wp!: Fe:3He ratio assumed for vent iron supply28 LOGICAL , PUBLIC :: ln_dust !: boolean for dust input from the atmosphere 29 LOGICAL , PUBLIC :: ln_solub !: boolean for variable solubility of atmospheric iron 30 LOGICAL , PUBLIC :: ln_river !: boolean for river input of nutrients 31 LOGICAL , PUBLIC :: ln_ndepo !: boolean for atmospheric deposition of N 32 LOGICAL , PUBLIC :: ln_ironsed !: boolean for Fe input from sediments 33 LOGICAL , PUBLIC :: ln_hydrofe !: boolean for Fe input from hydrothermal vents 34 LOGICAL , PUBLIC :: ln_ironice !: boolean for Fe input from sea ice 35 REAL(wp), PUBLIC :: sedfeinput !: Coastal release of Iron 36 REAL(wp), PUBLIC :: dustsolub !: Solubility of the dust 37 REAL(wp), PUBLIC :: icefeinput !: Iron concentration in sea ice 38 REAL(wp), PUBLIC :: wdust !: Sinking speed of the dust 39 REAL(wp), PUBLIC :: nitrfix !: Nitrogen fixation rate 40 REAL(wp), PUBLIC :: diazolight !: Nitrogen fixation sensitivty to light 41 REAL(wp), PUBLIC :: concfediaz !: Fe half-saturation Cste for diazotrophs 42 REAL(wp) :: hratio !: Fe:3He ratio assumed for vent iron supply 43 43 44 44 LOGICAL , PUBLIC :: ll_sbc … … 210 210 ! 211 211 ! !* set file information 212 cn_dir = './' ! directory in which the model is executed213 ! ... default values (NB: frequency positive => hours, negative => months)214 ! ! file ! frequency ! variable ! time intep ! clim ! 'yearly' or ! weights ! rotation !215 ! ! name ! (hours) ! name ! (T/F) ! (T/F) ! 'monthly' ! filename ! pairs !216 sn_dust = FLD_N( 'dust' , -1 , 'dust' , .true. , .true. , 'yearly' , '' , '' )217 sn_solub = FLD_N( 'solubility' , -12 , 'solub' , .true. , .true. , 'yearly' , '' , '' )218 sn_riverdic = FLD_N( 'river' , -12 , 'riverdic' , .false. , .true. , 'yearly' , '' , '' )219 sn_riverdoc = FLD_N( 'river' , -12 , 'riverdoc' , .false. , .true. , 'yearly' , '' , '' )220 sn_riverdin = FLD_N( 'river' , -12 , 'riverdin' , .false. , .true. , 'yearly' , '' , '' )221 sn_riverdon = FLD_N( 'river' , -12 , 'riverdon' , .false. , .true. , 'yearly' , '' , '' )222 sn_riverdip = FLD_N( 'river' , -12 , 'riverdip' , .false. , .true. , 'yearly' , '' , '' )223 sn_riverdop = FLD_N( 'river' , -12 , 'riverdop' , .false. , .true. , 'yearly' , '' , '' )224 sn_riverdsi = FLD_N( 'river' , -12 , 'riverdsi' , .false. , .true. , 'yearly' , '' , '' )225 sn_ndepo = FLD_N( 'ndeposition', -12 , 'ndep' , .false. , .true. , 'yearly' , '' , '' )226 sn_ironsed = FLD_N( 'ironsed' , -12 , 'bathy' , .false. , .true. , 'yearly' , '' , '' )227 sn_hydrofe = FLD_N( 'hydrofe' , -12 , 'hydro' , .false. , .true. , 'yearly' , '' , '' )228 212 229 213 REWIND( numnatp_ref ) ! Namelist nampissbc in reference namelist : Pisces external sources of nutrients -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsink.F90
r3875 r3901 44 44 45 45 #if defined key_kriest 46 REAL(wp) :: xkr_sfact = 250.!: Sinking factor47 REAL(wp) :: xkr_stick = 0.2!: Stickiness48 REAL(wp) :: xkr_nnano = 2.337!: Nbr of cell in nano size class49 REAL(wp) :: xkr_ndiat = 3.718!: Nbr of cell in diatoms size class50 REAL(wp) :: xkr_nmicro = 3.718!: Nbr of cell in microzoo size class51 REAL(wp) :: xkr_nmeso = 7.147!: Nbr of cell in mesozoo size class52 REAL(wp) :: xkr_naggr = 9.877!: Nbr of cell in aggregates size class46 REAL(wp) :: xkr_sfact !: Sinking factor 47 REAL(wp) :: xkr_stick !: Stickiness 48 REAL(wp) :: xkr_nnano !: Nbr of cell in nano size class 49 REAL(wp) :: xkr_ndiat !: Nbr of cell in diatoms size class 50 REAL(wp) :: xkr_nmicro !: Nbr of cell in microzoo size class 51 REAL(wp) :: xkr_nmeso !: Nbr of cell in mesozoo size class 52 REAL(wp) :: xkr_naggr !: Nbr of cell in aggregates size class 53 53 54 54 REAL(wp) :: xkr_frac -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsms.F90
r3875 r3901 145 145 CALL p4z_chk_mass( kt ) ! Mass conservation checking 146 146 147 IF ( kt == nittrc000 ) CALL FLUSH ( numonp ) ! flush output namelist PISCES 147 148 IF( nn_timing == 1 ) CALL timing_stop('p4z_sms') 148 149 ! … … 193 194 ! ! nampiskrp : kriest parameters 194 195 ! ! ----------------------------- 195 xkr_eta = 0.62196 xkr_zeta = 1.62197 xkr_ncontent = 5.7E-6198 xkr_mass_min = 0.0002199 xkr_mass_max = 1.200 201 196 REWIND( numnatp_ref ) ! Namelist nampiskrp in reference namelist : Pisces Kriest 202 197 READ ( numnatp_ref, nampiskrp, IOSTAT = ios, ERR = 903) … … 225 220 #endif 226 221 227 ln_pisdmp = .true.228 nn_pisdmp = 1229 ln_pisclo = .false.230 231 222 REWIND( numnatp_ref ) ! Namelist nampisdmp in reference namelist : Pisces damping 232 223 READ ( numnatp_ref, nampisdmp, IOSTAT = ios, ERR = 905) … … 247 238 ENDIF 248 239 249 ln_check_mass = .false.250 240 REWIND( numnatp_ref ) ! Namelist nampismass in reference namelist : Pisces mass conservation check 251 241 READ ( numnatp_ref, nampismass, IOSTAT = ios, ERR = 907) -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/TOP_SRC/PISCES/trcnam_pisces.F90
r3875 r3901 78 78 ! Namelist nampisdia 79 79 ! ------------------- 80 DO jl = 1, jp_pisces_2d81 WRITE(pisdia2d(jl)%sname,'("2D_",I1)') jl ! short name82 WRITE(pisdia2d(jl)%lname,'("2D DIAGNOSTIC NUMBER ",I2)') jl ! long name83 pisdia2d(jl)%units = ' ' ! units84 END DO85 ! ! 3D output arrays86 DO jl = 1, jp_pisces_3d87 WRITE(pisdia3d(jl)%sname,'("3D_",I1)') jl ! short name88 WRITE(pisdia3d(jl)%lname,'("3D DIAGNOSTIC NUMBER ",I2)') jl ! long name89 pisdia3d(jl)%units = ' ' ! units90 END DO91 92 80 REWIND( numnatp_ref ) ! Namelist nampisdia in reference namelist : Pisces diagnostics 93 81 READ ( numnatp_ref, nampisdia, IOSTAT = ios, ERR = 901) … … 139 127 ! Namelist nampisdbi 140 128 ! ------------------- 141 DO jl = 1, jp_pisces_trd142 IF( jl < 10 ) THEN ; WRITE (pisdiabio(jl)%sname,'("BIO_",I1)') jl ! short name143 ELSEIF (jl < 100 ) THEN ; WRITE (pisdiabio(jl)%sname,'("BIO_",I2)') jl144 ELSE ; WRITE (pisdiabio(jl)%sname,'("BIO_",I3)') jl145 ENDIF146 WRITE(pisdiabio(jl)%lname,'("BIOLOGICAL TREND NUMBER ",I2)') jl ! long name147 pisdiabio(jl)%units = 'mmoleN/m3/s ' ! units148 END DO149 150 129 REWIND( numnatp_ref ) ! Namelist nampisdbi in reference namelist : Pisces add. diagnostics 151 130 READ ( numnatp_ref, nampisdbi, IOSTAT = ios, ERR = 903) -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/TOP_SRC/PISCES/trcsms_pisces.F90
r3680 r3901 51 51 ELSE ; CALL p2z_sms( kt ) ! LOBSTER 52 52 ENDIF 53 53 54 ! 54 55 END SUBROUTINE trc_sms_pisces -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/TOP_SRC/TRP/trcdmp.F90
r3294 r3901 34 34 LOGICAL , PUBLIC, PARAMETER :: lk_trcdmp = .TRUE. !: internal damping flag 35 35 36 ! 37 INTEGER :: nn_hdmp_tr = -1! = 0/-1/'latitude' for damping over passive tracer38 INTEGER :: nn_zdmp_tr = 0! = 0/1/2 flag for damping in the mixed layer39 REAL(wp) :: rn_surf_tr = 50.! surface time scale for internal damping [days]40 REAL(wp) :: rn_bot_tr = 360.! bottom time scale for internal damping [days]41 REAL(wp) :: rn_dep_tr = 800.! depth of transition between rn_surf and rn_bot [meters]42 INTEGER :: nn_file_tr = 2! = 1 create a damping.coeff NetCDF file36 ! !!* Namelist namtrc_dmp : passive tracer newtonian damping * 37 INTEGER :: nn_hdmp_tr ! = 0/-1/'latitude' for damping over passive tracer 38 INTEGER :: nn_zdmp_tr ! = 0/1/2 flag for damping in the mixed layer 39 REAL(wp) :: rn_surf_tr ! surface time scale for internal damping [days] 40 REAL(wp) :: rn_bot_tr ! bottom time scale for internal damping [days] 41 REAL(wp) :: rn_dep_tr ! depth of transition between rn_surf and rn_bot [meters] 42 INTEGER :: nn_file_tr ! = 1 create a damping.coeff NetCDF file 43 43 44 44 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: restotr ! restoring coeff. on tracers (s-1) -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/TOP_SRC/TRP/trcnam_trp.F90
r3875 r3901 22 22 PUBLIC trc_nam_trp ! routine called by step module 23 23 24 ! !!: ** Advection (nam_trcadv) **25 LOGICAL , PUBLIC :: ln_trcadv_cen2 = .FALSE.! 2nd order centered scheme flag26 LOGICAL , PUBLIC :: ln_trcadv_tvd = .TRUE.! TVD scheme flag27 LOGICAL , PUBLIC :: ln_trcadv_muscl = .FALSE.! MUSCL scheme flag28 LOGICAL , PUBLIC :: ln_trcadv_muscl2 = .FALSE.! MUSCL2 scheme flag29 LOGICAL , PUBLIC :: ln_trcadv_ubs = .FALSE.! UBS scheme flag30 LOGICAL , PUBLIC :: ln_trcadv_qck = .FALSE.! QUICKEST scheme flag31 LOGICAL , PUBLIC :: ln_trcadv_msc_ups = .FALSE.! use upstream scheme within muscl32 33 34 ! 35 LOGICAL , PUBLIC :: ln_trcldf_diff = .FALSE.!: flag of perform or not the lateral diff.36 LOGICAL , PUBLIC :: ln_trcldf_lap = .TRUE.!: laplacian operator37 LOGICAL , PUBLIC :: ln_trcldf_bilap = .FALSE.!: bilaplacian operator38 LOGICAL , PUBLIC :: ln_trcldf_level = .FALSE.!: iso-level direction39 LOGICAL , PUBLIC :: ln_trcldf_hor = .FALSE.!: horizontal (geopotential) direction40 LOGICAL , PUBLIC :: ln_trcldf_iso = .TRUE.!: iso-neutral direction41 REAL(wp), PUBLIC :: rn_ahtrc_0 42 REAL(wp), PUBLIC :: rn_ahtrb_0 43 44 ! 45 LOGICAL , PUBLIC :: ln_trcrad = .TRUE.!: flag to artificially correct negative concentrations46 47 ! 48 LOGICAL , PUBLIC :: ln_trczdf_exp = .FALSE.!: explicit vertical diffusion scheme flag49 INTEGER , PUBLIC :: nn_trczdf_exp = 3!: number of sub-time step (explicit time stepping)24 ! !!: ** Advection (namtrc_adv) ** 25 LOGICAL , PUBLIC :: ln_trcadv_cen2 ! 2nd order centered scheme flag 26 LOGICAL , PUBLIC :: ln_trcadv_tvd ! TVD scheme flag 27 LOGICAL , PUBLIC :: ln_trcadv_muscl ! MUSCL scheme flag 28 LOGICAL , PUBLIC :: ln_trcadv_muscl2 ! MUSCL2 scheme flag 29 LOGICAL , PUBLIC :: ln_trcadv_ubs ! UBS scheme flag 30 LOGICAL , PUBLIC :: ln_trcadv_qck ! QUICKEST scheme flag 31 LOGICAL , PUBLIC :: ln_trcadv_msc_ups ! use upstream scheme within muscl 32 33 34 ! !!: ** lateral mixing namelist (nam_trcldf) ** 35 LOGICAL , PUBLIC :: ln_trcldf_diff !: flag of perform or not the lateral diff. 36 LOGICAL , PUBLIC :: ln_trcldf_lap !: laplacian operator 37 LOGICAL , PUBLIC :: ln_trcldf_bilap !: bilaplacian operator 38 LOGICAL , PUBLIC :: ln_trcldf_level !: iso-level direction 39 LOGICAL , PUBLIC :: ln_trcldf_hor !: horizontal (geopotential) direction 40 LOGICAL , PUBLIC :: ln_trcldf_iso !: iso-neutral direction 41 REAL(wp), PUBLIC :: rn_ahtrc_0 !: diffusivity coefficient for passive tracer (m2/s) 42 REAL(wp), PUBLIC :: rn_ahtrb_0 !: background diffusivity coefficient for passive tracer (m2/s) 43 44 ! !!: ** Treatment of Negative concentrations ( nam_trcrad ) 45 LOGICAL , PUBLIC :: ln_trcrad !: flag to artificially correct negative concentrations 46 47 ! !!: ** Vertical diffusion (nam_trczdf) ** 48 LOGICAL , PUBLIC :: ln_trczdf_exp !: explicit vertical diffusion scheme flag 49 INTEGER , PUBLIC :: nn_trczdf_exp !: number of sub-time step (explicit time stepping) 50 50 51 51 -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/TOP_SRC/trcdta.F90
r3875 r3901 59 59 REAL(wp) :: zfact 60 60 ! 61 CHARACTER(len=100) :: cn_dir61 CHARACTER(len=100) :: cn_dir 62 62 TYPE(FLD_N), DIMENSION(jptra) :: slf_i ! array of namelist informations on the fields to read 63 63 TYPE(FLD_N), DIMENSION(jptra) :: sn_trcdta 64 REAL(wp) , DIMENSION(jptra) :: rn_trfac 64 REAL(wp) , DIMENSION(jptra) :: rn_trfac ! multiplicative factor for tracer values 65 65 !! 66 66 NAMELIST/namtrc_dta/ sn_trcdta, cn_dir, rn_trfac … … 91 91 WRITE(numout,*) ' ' 92 92 ENDIF 93 ! ! allocate the arrays (if necessary) 94 ! 95 cn_dir = './' ! directory in which the model is executed 93 ! 96 94 DO jn = 1, jptra 97 95 WRITE( clndta,'("TR_",I1)' ) jn -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/TOP_SRC/trcnam.F90
r3875 r3901 78 78 CALL ctl_opn( numont , 'output.namelist.top', 'REPLACE', 'FORMATTED', 'SEQUENTIAL',-1, numout, .FALSE. ) 79 79 80 ! Namelist nattrc (files)81 ! ----------------------------------------------82 nn_dttrc = 1 ! default values83 nn_writetrc = 1084 ln_top_euler = .FALSE.85 ln_rsttr = .FALSE.86 nn_rsttr = 087 cn_trcrst_in = 'restart_trc'88 cn_trcrst_out = 'restart_trc'89 !90 DO jn = 1, jptra91 WRITE( sn_tracer(jn)%clsname,'("TR_",I1)' ) jn92 WRITE( sn_tracer(jn)%cllname,'("TRACER NUMBER ",I1)') jn93 sn_tracer(jn)%clunit = 'mmole/m3'94 sn_tracer(jn)%llinit = .FALSE.95 sn_tracer(jn)%llsave = .TRUE.96 END DO97 ln_trcdta = .FALSE.98 ln_trcdmp = .FALSE.99 100 80 REWIND( numnat_ref ) ! Namelist namtrc in reference namelist : Passive tracer variables 101 81 READ ( numnat_ref, namtrc, IOSTAT = ios, ERR = 901) … … 145 125 ENDIF 146 126 147 ln_diatrc = .FALSE.148 ln_diabio = .FALSE.149 nn_writedia = 10150 nn_writebio = 10151 152 127 REWIND( numnat_ref ) ! Namelist namtrc_dia in reference namelist : Passive tracer diagnostics 153 128 READ ( numnat_ref, namtrc_dia, IOSTAT = ios, ERR = 903) … … 226 201 227 202 #if defined key_trdmld_trc || defined key_trdtrc 228 nn_trd_trc = 20229 nn_ctls_trc = 9230 rn_ucf_trc = 1.231 ln_trdmld_trc_instant = .TRUE.232 ln_trdmld_trc_restart =.FALSE.233 cn_trdrst_trc_in = "restart_mld_trc"234 cn_trdrst_trc_out = "restart_mld_trc"235 ln_trdtrc(:) = .FALSE.236 203 237 204 REWIND( numnat_ref ) ! Namelist namtrc_trd in reference namelist : Passive tracer trends -
branches/2013/dev_r3853_CNRS9_ConfSetting/NEMOGCM/NEMO/TOP_SRC/trcstp.F90
r3680 r3901 84 84 CALL trc_sms ( kt ) ! tracers: sinks and sources 85 85 CALL trc_trp ( kt ) ! transport of passive tracers 86 IF( kt == nittrc000 ) CALL iom_close( numrtr ) ! close input tracer restart file 86 IF( kt == nittrc000 ) THEN 87 CALL iom_close( numrtr ) ! close input tracer restart file 88 CALL FLUSH ( numont ) ! flush namelist output 89 ENDIF 87 90 IF( lrst_trc ) CALL trc_rst_wri ( kt ) ! write tracer restart file 88 91 IF( lk_trdmld_trc ) CALL trd_mld_trc ( kt ) ! trends: Mixed-layer
Note: See TracChangeset
for help on using the changeset viewer.