- Timestamp:
- 2010-04-30T17:49:04+02:00 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/DEV_r1837_mass_heat_salt_fluxes/NEMO/LIM_SRC_2/ice_2.F90
r1756 r1855 4 4 !! Sea Ice physics: diagnostics variables of ice defined in memory 5 5 !!===================================================================== 6 !! History : 2.0 ! 03-08 (C. Ethe) F90: Free form and module 6 !! History : 2.0 ! 2003-08 (C. Ethe) F90: Free form and module 7 !! - ! 2010-05 (G. Madec) suppression of thd_ice_2 7 8 !!---------------------------------------------------------------------- 8 9 #if defined key_lim2 … … 10 11 !! 'key_lim2' : LIM 2.0 sea-ice model 11 12 !!---------------------------------------------------------------------- 12 !! LIM 2.0, UCL-LOCEAN-IPSL (2006)13 !! $Id$14 !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)15 !!----------------------------------------------------------------------16 !! * Modules used17 13 USE par_ice_2 ! LIM sea-ice parameters 18 14 … … 20 16 PRIVATE 21 17 22 !!* Share parameters namelist (namicerun read in iceini) * 23 CHARACTER(len=32) , PUBLIC :: cn_icerst_in = "restart_ice_in" !: suffix of ice restart name (input) 24 CHARACTER(len=32) , PUBLIC :: cn_icerst_out = "restart_ice" !: suffix of ice restart name (output) 25 LOGICAL , PUBLIC :: ln_limdyn = .TRUE. !: flag for ice dynamics (T) or not (F) 26 LOGICAL , PUBLIC :: ln_limdmp = .FALSE. !: Ice damping 27 REAL(wp) , PUBLIC :: hsndif = 0.e0 !: computation of temp. in snow (0) or not (9999) 28 REAL(wp) , PUBLIC :: hicdif = 0.e0 !: computation of temp. in ice (0) or not (9999) 29 REAL(wp), DIMENSION(2), PUBLIC :: acrit = (/ 1.e-06 , 1.e-06 /) !: minimum fraction for leads in 30 ! !: north and south hemisphere 31 !!* ice-dynamic namelist (namicedyn) * 32 INTEGER , PUBLIC :: nbiter = 1 !: number of sub-time steps for relaxation 33 INTEGER , PUBLIC :: nbitdr = 250 !: maximum number of iterations for relaxation 34 REAL(wp), PUBLIC :: rdt_ice !: ice time step 35 REAL(wp), PUBLIC :: epsd = 1.0e-20 !: tolerance parameter for dynamic 36 REAL(wp), PUBLIC :: alpha = 0.5 !: coefficient for semi-implicit coriolis 37 REAL(wp), PUBLIC :: dm = 0.6e+03 !: diffusion constant for dynamics 38 REAL(wp), PUBLIC :: om = 0.5 !: relaxation constant 39 REAL(wp), PUBLIC :: resl = 5.0e-05 !: maximum value for the residual of relaxation 40 REAL(wp), PUBLIC :: cw = 5.0e-03 !: drag coefficient for oceanic stress 41 REAL(wp), PUBLIC :: angvg = 0.e0 !: turning angle for oceanic stress 42 REAL(wp), PUBLIC :: pstar = 1.0e+04 !: first bulk-rheology parameter 43 REAL(wp), PUBLIC :: c_rhg = 20.e0 !: second bulk-rhelogy parameter 44 REAL(wp), PUBLIC :: etamn = 0.e+07 !: minimun value for viscosity 45 REAL(wp), PUBLIC :: creepl = 2.e-08 !: creep limit 46 REAL(wp), PUBLIC :: ecc = 2.e0 !: eccentricity of the elliptical yield curve 47 REAL(wp), PUBLIC :: ahi0 = 350.e0 !: sea-ice hor. eddy diffusivity coeff. (m2/s) 18 !---------------------------------------------------! 19 ! Sea-Ice namelist ! 20 !---------------------------------------------------! 21 ! !!! ** Namelist namicerun ** 22 CHARACTER(len=32), PUBLIC :: cn_icerst_in = "restart_ice_in" !: suffix of ice restart name (input) 23 CHARACTER(len=32), PUBLIC :: cn_icerst_out = "restart_ice" !: suffix of ice restart name (output) 24 LOGICAL , PUBLIC :: ln_limdyn = .TRUE. !: flag for ice dynamics (T) or not (F) 25 LOGICAL , PUBLIC :: ln_limdmp = .FALSE. !: Ice damping 26 REAL(wp) , PUBLIC :: hsndif = 0.e0 !: computation of temp. in snow (0) or not (9999) 27 REAL(wp) , PUBLIC :: hicdif = 0.e0 !: computation of temp. in ice (0) or not (9999) 28 REAL(wp) , PUBLIC :: acrit(2) = (/ 1.e-06 , 1.e-06 /) !: min lead fraction in north and south hemispheres 29 30 ! !!! ** Namelist namicedyn ** 31 INTEGER , PUBLIC :: nbiter = 1 !: number of sub-time steps for relaxation 32 INTEGER , PUBLIC :: nbitdr = 250 !: maximum number of iterations for relaxation 33 REAL(wp), PUBLIC :: rdt_ice !: ice time step 34 REAL(wp), PUBLIC :: epsd = 1.0e-20 !: tolerance parameter for dynamic 35 REAL(wp), PUBLIC :: alpha = 0.5 !: coefficient for semi-implicit coriolis 36 REAL(wp), PUBLIC :: dm = 0.6e+03 !: diffusion constant for dynamics 37 REAL(wp), PUBLIC :: om = 0.5 !: relaxation constant 38 REAL(wp), PUBLIC :: resl = 5.0e-05 !: maximum value for the residual of relaxation 39 REAL(wp), PUBLIC :: cw = 5.0e-03 !: drag coefficient for oceanic stress 40 REAL(wp), PUBLIC :: angvg = 0.e0 !: turning angle for oceanic stress 41 REAL(wp), PUBLIC :: pstar = 1.0e+04 !: first bulk-rheology parameter 42 REAL(wp), PUBLIC :: c_rhg = 20.e0 !: second bulk-rhelogy parameter 43 REAL(wp), PUBLIC :: etamn = 0.e+07 !: minimun value for viscosity 44 REAL(wp), PUBLIC :: creepl = 2.e-08 !: creep limit 45 REAL(wp), PUBLIC :: ecc = 2.e0 !: eccentricity of the elliptical yield curve 46 REAL(wp), PUBLIC :: ahi0 = 350.e0 !: sea-ice hor. eddy diffusivity coeff. (m2/s) 48 47 49 REAL(wp), PUBLIC :: usecc2 !: = 1.0 / ( ecc * ecc ) 50 REAL(wp), PUBLIC :: rhoco !: = rau0 * cw 51 REAL(wp), PUBLIC :: sangvg, cangvg !: sin and cos of the turning angle for ocean stress 52 REAL(wp), PUBLIC :: pstarh !: pstar / 2.0 48 ! !!! ** Namelist namicethd ** 49 REAL(wp), PUBLIC :: hmelt = -0.15 !: maximum melting at the bottom 50 REAL(wp), PUBLIC :: hicmin = 0.2 !: ice th. corr. to max. ener. in brine pocket 51 REAL(wp), PUBLIC :: hiclim = 0.05 !: minimum ice thickness 52 REAL(wp), PUBLIC :: amax = 0.999 !: maximum lead fraction 53 REAL(wp), PUBLIC :: swiqst = 1.0 !: energy stored in brine pocket (1) or not (0) 54 REAL(wp), PUBLIC :: sbeta = 1.0 !: numerical scheme for diffusion in ice 55 REAL(wp), PUBLIC :: parlat = 0.0 !: percent. of energy used for lateral ablation 56 REAL(wp), PUBLIC :: hakspl = 0.5 !: slope of distr. for Hakkinen-Mellro's lat. melt 57 REAL(wp), PUBLIC :: hibspl = 0.5 !: slope of distribution for Hibler's lat. melt 58 REAL(wp), PUBLIC :: exld = 2.0 !: exponent for leads-closure rate 59 REAL(wp), PUBLIC :: hakdif = 1.0 !: coefficient for diffusions of ice and snow 60 REAL(wp), PUBLIC :: thth = 0.2 !: thick. for comp. of eq. thermal conduct 61 REAL(wp), PUBLIC :: hnzst = 0.1 !: thick. of the surf. layer in temp. comp. 62 REAL(wp), PUBLIC :: parsub = 1.0 !: switch for snow sublimation or not 63 REAL(wp), PUBLIC :: alphs = 1.0 !: coef. for snow density when snow-ice formation 64 REAL(wp), PUBLIC :: hiccrit(2) = (/0.3,0.3/) !: ice th. for lateral accretion in the NH (SH) (m) 65 66 !---------------------------------------------------! 67 ! Sea-Ice variables ! 68 !---------------------------------------------------! 69 70 REAL(wp), PUBLIC :: usecc2 !: = 1.0 / ( ecc * ecc ) 71 REAL(wp), PUBLIC :: rhoco !: = rau0 * cw 72 REAL(wp), PUBLIC :: sangvg, cangvg !: sin and cos of the turning angle for ocean stress 73 REAL(wp), PUBLIC :: pstarh !: pstar / 2.0 74 REAL(wp), PUBLIC :: uscomi !: inverse of minimum lead fraction !!gm to be suppress 75 REAL(wp), PUBLIC :: cnscg !: ratio rcpsn/rcpic !!gm to be suppress 53 76 54 77 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: ahiu , ahiv !: hor. diffusivity coeff. at ocean U- and V-points (m2/s) 55 78 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: pahu , pahv !: ice hor. eddy diffusivity coef. at ocean U- and V-points 56 79 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: hsnm , hicm !: mean snow and ice thicknesses 57 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: ust2s 80 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: ust2s !: friction velocity 58 81 59 !!* diagnostic quantities 60 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: sist !: Sea-Ice Surface Temperature (Kelvin) 61 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: tfu !: Freezing/Melting point temperature of sea water at SSS 62 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: hicif !: Ice thickness 63 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: hsnif !: Snow thickness 64 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: hicifp !: Ice production/melting 65 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: frld !: Leads fraction = 1-a/totalarea 66 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: phicif !: ice thickness at previous time 67 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: pfrld !: Leads fraction at previous time 68 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: qstoif !: Energy stored in the brine pockets 69 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: fbif !: Heat flux at the ice base 70 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: rdmsnif !: Variation of snow mass 71 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: rdmicif !: Variation of ice mass 72 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: qldif !: heat balance of the lead (or of the open ocean) 73 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: qcmif !: Energy needed to bring the ocean surface layer until its freezing 74 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: fdtcn !: net downward heat flux from the ice to the ocean 75 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: qdtcn !: energy from the ice to the ocean point (at a factor 2) 76 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: thcm !: part of the solar energy used in the lead heat budget 77 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: fstric !: Solar flux transmitted trough the ice 78 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: ffltbif !: Array linked with the max heat contained in brine pockets (?) 79 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: fscmbq !: Linked with the solar flux below the ice (?) 80 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: fsbbq !: Also linked with the solar flux below the ice (?) 81 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: qfvbq !: Array used to store energy in case of toral lateral ablation (?) 82 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: dmgwi !: Variation of the mass of snow ice 82 INTEGER , PUBLIC, DIMENSION(jpij) :: npb !: number of points where computations has to be done 83 INTEGER , PUBLIC, DIMENSION(jpij) :: npac !: correspondance between the points 83 84 84 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: u_ice, v_ice !: two components of the ice velocity at I-point (m/s) 85 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: u_oce, v_oce !: two components of the ocean velocity at I-point (m/s) 85 ! !!* sea-ice variables * 86 REAL(wp), PUBLIC :: sist (jpi,jpj), sist_1d (jpij) !: Sea-Ice Surface Temperature (Kelvin) 87 REAL(wp), PUBLIC :: tfu (jpi,jpj), tfu_1d (jpij) !: Freezing/Melting point temperature of sea water at SSS 88 REAL(wp), PUBLIC :: hicif (jpi,jpj), h_ice_1d (jpij) !: ice thickness 89 REAL(wp), PUBLIC :: phicif (jpi,jpj) !: ice thickness at previous time 90 REAL(wp), PUBLIC :: hsnif (jpi,jpj), h_snow_1d (jpij) !: Snow thickness 91 REAL(wp), PUBLIC :: hicifp (jpi,jpj) !: Ice production/melting 92 REAL(wp), PUBLIC :: frld (jpi,jpj), frld_1d (jpij) !: Leads fraction = 1-a/totalarea 93 REAL(wp), PUBLIC :: pfrld (jpi,jpj) !: Leads fraction at previous time 94 REAL(wp), PUBLIC :: qstoif (jpi,jpj), qstbif_1d (jpij) !: Energy stored in the brine pockets !!gm 95 REAL(wp), PUBLIC :: fbif (jpi,jpj), fbif_1d (jpij) !: Heat flux at the ice base 96 REAL(wp), PUBLIC :: rdmsnif(jpi,jpj), rdmsnif_1d(jpij) !: Variation of snow mass 97 REAL(wp), PUBLIC :: rdmicif(jpi,jpj), rdmicif_1d(jpij) !: Variation of ice mass 98 REAL(wp), PUBLIC :: qldif (jpi,jpj), qldif_1d (jpij) !: heat balance of the lead (or of the open ocean) 99 REAL(wp), PUBLIC :: qcmif (jpi,jpj), qcmif_1d (jpij) !: Energy needed to freeze the ocean surface layer 100 REAL(wp), PUBLIC :: fdtcn (jpi,jpj) !: net downward heat flux from the ice to the ocean 101 REAL(wp), PUBLIC :: qdtcn (jpi,jpj) !: energy from the ice to the ocean point (at a factor 2) 102 REAL(wp), PUBLIC :: thcm (jpi,jpj), thcm_1d (jpij) !: part of the solar energy used in the lead heat budget 103 REAL(wp), PUBLIC :: fstric (jpi,jpj), fstric_1d (jpij) !: Solar flux transmitted trough the ice 104 REAL(wp), PUBLIC :: ffltbif(jpi,jpj), fltbif_1d (jpij) !: Array linked with the max heat contained in brine pockets (?) 105 REAL(wp), PUBLIC :: fscmbq (jpi,jpj), fscbq_1d (jpij) !: Linked with the solar flux below the ice (?) 106 REAL(wp), PUBLIC :: fsbbq (jpi,jpj) !: Also linked with the solar flux below the ice (?) 107 REAL(wp), PUBLIC :: qfvbq (jpi,jpj), qfvbq_1d (jpij) !: Array used to store energy in case of total lateral ablation (?) 108 REAL(wp), PUBLIC :: dmgwi(jpi,jpj), dmgwi_1d(jpij) !: Variation of the mass of snow ice 86 109 87 REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jplayersp1) :: tbif !: Temperature inside the ice/snow layer 110 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: u_ice, v_ice !: two components of the ice velocity at I-point (m/s) 111 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: u_oce, v_oce !: two components of the ocean velocity at I-point (m/s) 88 112 89 !!* moment used in the advection scheme 113 REAL(wp), PUBLIC :: tbif(jpi,jpj,jplayersp1), tbif_1d(jpij,jplayersp1) !: Temperature inside the ice+snow layer 114 115 ! Surface forcing transford into 1D field (2D field defined in /OPA_SRC/SBC/sbc_ice.F90) 116 REAL(wp), PUBLIC, DIMENSION(jpij) :: qns_ice_1d !: qns_ice 117 REAL(wp), PUBLIC, DIMENSION(jpij) :: qsr_ice_1d !: qsr_ice 118 REAL(wp), PUBLIC, DIMENSION(jpij) :: qla_ice_1d !: qla_ice 119 REAL(wp), PUBLIC, DIMENSION(jpij) :: dqla_ice_1d !: dqla_ice 120 REAL(wp), PUBLIC, DIMENSION(jpij) :: dqns_ice_1d !: dqns_ice 121 REAL(wp), PUBLIC, DIMENSION(jpij) :: fr1_i0_1d !: fr1_i0 122 REAL(wp), PUBLIC, DIMENSION(jpij) :: fr2_i0_1d !: fr2_i0 123 124 ! Surface forcing transformed into 1D field (2D field defined in /OPA_SRC/SBC/sbc_oce.F90) 125 REAL(wp), PUBLIC, DIMENSION(jpij) :: sprecip_1d !: sprecip 126 127 ! local variable transformed into 1D field (2D field defined in /LIM_SRC_2/limthd_2.F90) 128 REAL(wp), PUBLIC, DIMENSION(jpij) :: qlbbq_1d !: zqlbsbq 129 REAL(wp), PUBLIC, DIMENSION(jpij) :: dvsbq_1d !: zdvosif 130 REAL(wp), PUBLIC, DIMENSION(jpij) :: dvbbq_1d !: zdvobif 131 REAL(wp), PUBLIC, DIMENSION(jpij) :: dvlbq_1d !: zdvolif 132 REAL(wp), PUBLIC, DIMENSION(jpij) :: dvnbq_1d !: zdvonif 133 134 135 REAL(wp), PUBLIC, DIMENSION(jpij) :: rdvomif_1d !: rdvomif <<<== !gm should be suppressed ! 136 137 !---------------------------------------------------! 138 ! Prather' advection scheme : 1st & 2nd moments ! 139 !---------------------------------------------------! 90 140 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: sxice, syice, sxxice, syyice, sxyice !: for ice volume 91 141 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: sxsn, sysn, sxxsn, syysn, sxysn !: for snow volume … … 102 152 #endif 103 153 154 !!-------- ------------------------------------------------------------- 155 !! NEMO/LIM 3.3, UCL-LOCEAN-IPSL (2010) 156 !! $Id$ 157 !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 104 158 !!====================================================================== 105 159 END MODULE ice_2
Note: See TracChangeset
for help on using the changeset viewer.