Changeset 888 for trunk/NEMO/LIM_SRC_2/ice_2.F90
- Timestamp:
- 2008-04-11T19:05:03+02:00 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/LIM_SRC_2/ice_2.F90
r823 r888 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 7 !!---------------------------------------------------------------------- 6 8 #if defined key_lim2 7 9 !!---------------------------------------------------------------------- 8 10 !! 'key_lim2' : LIM 2.0 sea-ice model 9 11 !!---------------------------------------------------------------------- 10 !! History : 11 !! 2.0 ! 03-08 (C. Ethe) F90: Free form and module 12 !!---------------------------------------------------------------------- 13 !! LIM 2.0, UCL-LOCEAN-IPSL (2005) 14 !! $Header$ 15 !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt 12 !! LIM 2.0, UCL-LOCEAN-IPSL (2006) 13 !! $ Id: $ 14 !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 16 15 !!---------------------------------------------------------------------- 17 16 !! * Modules used … … 21 20 PRIVATE 22 21 23 !! * Share Module variables 24 INTEGER , PUBLIC :: & !!: ** ice-dynamic namelist (namicedyn) ** 25 nbiter = 1 , & !: number of sub-time steps for relaxation 26 nbitdr = 250 !: maximum number of iterations for relaxation 22 !!* ice-dynamic namelist (namicedyn) * 23 INTEGER , PUBLIC :: nbiter = 1 !: number of sub-time steps for relaxation 24 INTEGER , PUBLIC :: nbitdr = 250 !: maximum number of iterations for relaxation 25 REAL(wp), PUBLIC :: epsd = 1.0e-20 !: tolerance parameter for dynamic 26 REAL(wp), PUBLIC :: alpha = 0.5 !: coefficient for semi-implicit coriolis 27 REAL(wp), PUBLIC :: dm = 0.6e+03 !: diffusion constant for dynamics 28 REAL(wp), PUBLIC :: om = 0.5 !: relaxation constant 29 REAL(wp), PUBLIC :: resl = 5.0e-05 !: maximum value for the residual of relaxation 30 REAL(wp), PUBLIC :: cw = 5.0e-03 !: drag coefficient for oceanic stress 31 REAL(wp), PUBLIC :: angvg = 0.e0 !: turning angle for oceanic stress 32 REAL(wp), PUBLIC :: pstar = 1.0e+04 !: first bulk-rheology parameter 33 REAL(wp), PUBLIC :: c_rhg = 20.e0 !: second bulk-rhelogy parameter 34 REAL(wp), PUBLIC :: etamn = 0.e+07 !: minimun value for viscosity 35 REAL(wp), PUBLIC :: creepl = 2.e-08 !: creep limit 36 REAL(wp), PUBLIC :: ecc = 2.e0 !: eccentricity of the elliptical yield curve 37 REAL(wp), PUBLIC :: ahi0 = 350.e0 !: sea-ice hor. eddy diffusivity coeff. (m2/s) 27 38 28 REAL(wp), PUBLIC :: & !!: ** ice-dynamic namelist (namicedyn) ** 29 epsd = 1.0e-20, & !: tolerance parameter for dynamic 30 alpha = 0.5 , & !: coefficient for semi-implicit coriolis 31 dm = 0.6e+03, & !: diffusion constant for dynamics 32 om = 0.5 , & !: relaxation constant 33 resl = 5.0e-05, & !: maximum value for the residual of relaxation 34 cw = 5.0e-03, & !: drag coefficient for oceanic stress 35 angvg = 0.e0 , & !: turning angle for oceanic stress 36 pstar = 1.0e+04, & !: first bulk-rheology parameter 37 c_rhg = 20.e0 , & !: second bulk-rhelogy parameter 38 etamn = 0.e+07, & !: minimun value for viscosity 39 creepl = 2.e-08, & !: creep limit 40 ecc = 2.e0 , & !: eccentricity of the elliptical yield curve 41 ahi0 = 350.e0 !: sea-ice hor. eddy diffusivity coeff. (m2/s) 39 REAL(wp), PUBLIC :: usecc2 !: = 1.0 / ( ecc * ecc ) 40 REAL(wp), PUBLIC :: rhoco !: = rau0 * cw 41 REAL(wp), PUBLIC :: sangvg, cangvg !: sin and cos of the turning angle for ocean stress 42 REAL(wp), PUBLIC :: pstarh !: pstar / 2.0 42 43 43 REAL(wp), PUBLIC :: & !: 44 usecc2 , & !: = 1.0 / ( ecc * ecc ) 45 rhoco , & !: = rau0 * cw 46 sangvg, cangvg , & !: sin and cos of the turning angle for ocean stress 47 pstarh !: pstar / 2.0 44 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: ahiu , ahiv !: hor. diffusivity coeff. at ocean U- and V-points (m2/s) 45 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: pahu , pahv !: ice hor. eddy diffusivity coef. at ocean U- and V-points 46 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: hsnm , hicm !: mean snow and ice thicknesses 47 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: ust2s !: friction velocity 48 48 49 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: & !: 50 u_oce, v_oce, & !: surface ocean velocity used in ice dynamics 51 ahiu , ahiv , & !: hor. diffusivity coeff. at ocean U- and V-points (m2/s) 52 pahu , pahv , & !: ice hor. eddy diffusivity coef. at ocean U- and V-points 53 hsnm , hicm , & !: mean snow and ice thicknesses 54 ust2s !: friction velocity 49 !!* diagnostic quantities 50 !! REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: firic !: IR flux over the ice (only used for outputs) 51 !! REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: fcsic !: Sensible heat flux over the ice (only used for outputs) 52 !! REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: fleic !: Latent heat flux over the ice (only used for outputs) 53 !! REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: qlatic !: latent flux (only used for outputs) 54 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: rdvosif !: Variation of volume at surface (only used for outputs) 55 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: rdvobif !: Variation of ice volume at the bottom ice (only used for outputs) 56 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: fdvolif !: Total variation of ice volume (only used for outputs) 57 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: rdvonif !: Lateral Variation of ice volume (only used for outputs) 55 58 56 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: & !: 57 sst_ini, & !: sst read from a file for ice model initialization 58 sss_ini !: sss read from a file for ice model initialization 59 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: sist !: Sea-Ice Surface Temperature (Kelvin ??? degree ??? I don't know) 60 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: tfu !: Freezing/Melting point temperature of sea water at SSS 61 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: hicif !: Ice thickness 62 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: hsnif !: Snow thickness 63 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: hicifp !: Ice production/melting 64 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: frld !: Leads fraction = 1-a/totalarea 65 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: phicif !: ice thickness at previous time 66 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: pfrld !: Leads fraction at previous time 67 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: qstoif !: Energy stored in the brine pockets 68 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: fbif !: Heat flux at the ice base 69 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: rdmsnif !: Variation of snow mass 70 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: rdmicif !: Variation of ice mass 71 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: qldif !: heat balance of the lead (or of the open ocean) 72 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: qcmif !: Energy needed to bring the ocean surface layer until its freezing 73 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: fdtcn !: net downward heat flux from the ice to the ocean 74 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: qdtcn !: energy from the ice to the ocean point (at a factor 2) 75 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: thcm !: part of the solar energy used in the lead heat budget 76 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: fstric !: Solar flux transmitted trough the ice 77 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: ffltbif !: Array linked with the max heat contained in brine pockets (?) 78 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: fscmbq !: Linked with the solar flux below the ice (?) 79 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: fsbbq !: Also linked with the solar flux below the ice (?) 80 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: qfvbq !: Array used to store energy in case of toral lateral ablation (?) 81 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: dmgwi !: Variation of the mass of snow ice 59 82 60 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: & !: 61 firic , & !: IR flux over the ice (only used for outputs) 62 fcsic , & !: Sensible heat flux over the ice (only used for outputs) 63 fleic , & !: Latent heat flux over the ice (only used for outputs) 64 qlatic , & !: latent flux 65 rdvosif, & !: Variation of volume at surface (only used for outputs) 66 rdvobif, & !: Variation of ice volume at the bottom ice (only used for outputs) 67 fdvolif, & !: Total variation of ice volume (only used for outputs) 68 rdvonif, & !: Lateral Variation of ice volume (only used for outputs) 69 sist , & !: Sea-Ice Surface Temperature (Kelvin ??? degree ??? I don't know) 70 tfu , & !: Melting point temperature of sea water 71 hsnif , & !: Snow thickness 72 hicif , & !: Ice thickness 73 hicifp , & !: Ice production/melting 74 frld , & !: Leads fraction = 1-a/totalarea 75 phicif , & !: ice thickness at previous time 76 pfrld , & !: Leads fraction at previous time 77 qstoif , & !: Energy stored in the brine pockets 78 fbif , & !: Heat flux at the ice base 79 rdmsnif, & !: Variation of snow mass 80 rdmicif, & !: Variation of ice mass 81 qldif , & !: heat balance of the lead (or of the open ocean) 82 qcmif , & !: Energy needed to bring the ocean surface layer until its freezing 83 fdtcn , & !: net downward heat flux from the ice to the ocean 84 qdtcn , & !: energy from the ice to the ocean 85 ! ! point (at a factor 2) 86 thcm , & !: part of the solar energy used in the lead heat budget 87 fstric , & !: Solar flux transmitted trough the ice 88 ffltbif, & !: Array linked with the max heat contained in brine pockets (?) 89 fscmbq , & !: Linked with the solar flux below the ice (?) 90 fsbbq , & !: Also linked with the solar flux below the ice (?) 91 qfvbq , & !: Array used to store energy in case of toral lateral ablation (?) 92 dmgwi !: Variation of the mass of snow ice 83 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: albege !: Albedo of the snow or ice (only for outputs) 84 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: albecn !: Albedo of the ocean (only for outputs) 85 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: tauc !: Cloud optical depth 93 86 94 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: & !: 95 albege , & !: Albedo of the snow or ice (only for outputs) 96 albecn , & !: Albedo of the ocean (only for outputs) 97 tauc , & !: Cloud optical depth 98 sdvt !: u*^2/(Stress/density) 87 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: ui_ice, vi_ice !: two components of the ice velocity at I-point (m/s) 88 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: ui_oce, vi_oce !: two components of the ocean velocity at I-point (m/s) 99 89 90 REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpsmax) :: scal0 !: ??? 91 REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jplayersp1) :: tbif !: Temperature inside the ice/snow layer 100 92 101 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: & !: 102 u_ice, v_ice, & !: two components of the ice velocity (m/s) 103 tio_u, tio_v !: two components of the ice-ocean stress (N/m2) 93 !! REAL(wp), DIMENSION(jpi,jpj,0:jpkmax+1) :: reslum !: Relative absorption of solar radiation in each ocean level 104 94 105 REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpsmax) :: & !: 106 scal0 !: ??? 107 108 REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jplayersp1) :: & !: 109 tbif !: Temperature inside the ice/snow layer 110 111 REAL(wp), DIMENSION(jpi,jpj,0:jpkmax+1) :: & !: 112 reslum !: Relative absorption of solar radiation in each ocean level 113 114 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: & !: 115 sxice, syice, sxxice, syyice, sxyice, & !: moments for advection 116 sxsn, sysn, sxxsn, syysn, sxysn, & !: 117 sxa, sya, sxxa, syya, sxya, & !: 118 sxc0, syc0, sxxc0, syyc0, sxyc0, & !: 119 sxc1, syc1, sxxc1, syyc1, sxyc1, & !: 120 sxc2, syc2, sxxc2, syyc2, sxyc2, & !: 121 sxst, syst, sxxst, syyst, sxyst !: 95 !!* moment used in the advection scheme 96 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: sxice, syice, sxxice, syyice, sxyice !: for ice volume 97 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: sxsn, sysn, sxxsn, syysn, sxysn !: for snow volume 98 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: sxa, sya, sxxa, syya, sxya !: for ice cover area 99 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: sxc0, syc0, sxxc0, syyc0, sxyc0 !: for heat content of snow 100 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: sxc1, syc1, sxxc1, syyc1, sxyc1 !: for heat content of 1st ice layer 101 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: sxc2, syc2, sxxc2, syyc2, sxyc2 !: for heat content of 2nd ice layer 102 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: sxst, syst, sxxst, syyst, sxyst !: for heat content of brine pockets 122 103 123 104 #else
Note: See TracChangeset
for help on using the changeset viewer.