[821] | 1 | MODULE ice_2 |
---|
[3] | 2 | !!====================================================================== |
---|
| 3 | !! *** MODULE ice *** |
---|
| 4 | !! Sea Ice physics: diagnostics variables of ice defined in memory |
---|
| 5 | !!===================================================================== |
---|
[888] | 6 | !! History : 2.0 ! 03-08 (C. Ethe) F90: Free form and module |
---|
[2076] | 7 | !! 3.3 ! 09-05 (G.Garric) addition of the lim2_evp cas |
---|
[888] | 8 | !!---------------------------------------------------------------------- |
---|
[821] | 9 | #if defined key_lim2 |
---|
[3] | 10 | !!---------------------------------------------------------------------- |
---|
[821] | 11 | !! 'key_lim2' : LIM 2.0 sea-ice model |
---|
[3] | 12 | !!---------------------------------------------------------------------- |
---|
[888] | 13 | !! LIM 2.0, UCL-LOCEAN-IPSL (2006) |
---|
[1156] | 14 | !! $Id$ |
---|
[888] | 15 | !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) |
---|
[719] | 16 | !!---------------------------------------------------------------------- |
---|
| 17 | !! * Modules used |
---|
[821] | 18 | USE par_ice_2 ! LIM sea-ice parameters |
---|
[3] | 19 | |
---|
| 20 | IMPLICIT NONE |
---|
[12] | 21 | PRIVATE |
---|
[3] | 22 | |
---|
[1228] | 23 | !!* Share parameters namelist (namicerun read in iceini) * |
---|
[1229] | 24 | CHARACTER(len=32) , PUBLIC :: cn_icerst_in = "restart_ice_in" !: suffix of ice restart name (input) |
---|
| 25 | CHARACTER(len=32) , PUBLIC :: cn_icerst_out = "restart_ice" !: suffix of ice restart name (output) |
---|
[1228] | 26 | LOGICAL , PUBLIC :: ln_limdyn = .TRUE. !: flag for ice dynamics (T) or not (F) |
---|
| 27 | LOGICAL , PUBLIC :: ln_limdmp = .FALSE. !: Ice damping |
---|
[2076] | 28 | LOGICAL , PUBLIC :: ln_nicep = .TRUE. !: flag for sea-ice points output (T) or not (F) |
---|
[1228] | 29 | REAL(wp) , PUBLIC :: hsndif = 0.e0 !: computation of temp. in snow (0) or not (9999) |
---|
| 30 | REAL(wp) , PUBLIC :: hicdif = 0.e0 !: computation of temp. in ice (0) or not (9999) |
---|
| 31 | REAL(wp), DIMENSION(2), PUBLIC :: acrit = (/ 1.e-06 , 1.e-06 /) !: minimum fraction for leads in |
---|
| 32 | ! !: north and south hemisphere |
---|
[888] | 33 | !!* ice-dynamic namelist (namicedyn) * |
---|
| 34 | INTEGER , PUBLIC :: nbiter = 1 !: number of sub-time steps for relaxation |
---|
| 35 | INTEGER , PUBLIC :: nbitdr = 250 !: maximum number of iterations for relaxation |
---|
[1465] | 36 | REAL(wp), PUBLIC :: rdt_ice !: ice time step |
---|
[888] | 37 | REAL(wp), PUBLIC :: epsd = 1.0e-20 !: tolerance parameter for dynamic |
---|
| 38 | REAL(wp), PUBLIC :: alpha = 0.5 !: coefficient for semi-implicit coriolis |
---|
| 39 | REAL(wp), PUBLIC :: dm = 0.6e+03 !: diffusion constant for dynamics |
---|
| 40 | REAL(wp), PUBLIC :: om = 0.5 !: relaxation constant |
---|
| 41 | REAL(wp), PUBLIC :: resl = 5.0e-05 !: maximum value for the residual of relaxation |
---|
| 42 | REAL(wp), PUBLIC :: cw = 5.0e-03 !: drag coefficient for oceanic stress |
---|
| 43 | REAL(wp), PUBLIC :: angvg = 0.e0 !: turning angle for oceanic stress |
---|
| 44 | REAL(wp), PUBLIC :: pstar = 1.0e+04 !: first bulk-rheology parameter |
---|
| 45 | REAL(wp), PUBLIC :: c_rhg = 20.e0 !: second bulk-rhelogy parameter |
---|
| 46 | REAL(wp), PUBLIC :: etamn = 0.e+07 !: minimun value for viscosity |
---|
| 47 | REAL(wp), PUBLIC :: creepl = 2.e-08 !: creep limit |
---|
| 48 | REAL(wp), PUBLIC :: ecc = 2.e0 !: eccentricity of the elliptical yield curve |
---|
| 49 | REAL(wp), PUBLIC :: ahi0 = 350.e0 !: sea-ice hor. eddy diffusivity coeff. (m2/s) |
---|
[2076] | 50 | INTEGER , PUBLIC :: nevp = 360 !: number of EVP subcycling iterations |
---|
| 51 | INTEGER , PUBLIC :: telast = 3600 !: timescale for EVP elastic waves |
---|
| 52 | REAL(wp), PUBLIC :: alphaevp = 1.e0 !: coefficient for the solution of EVP int. stresses |
---|
[888] | 53 | REAL(wp), PUBLIC :: usecc2 !: = 1.0 / ( ecc * ecc ) |
---|
| 54 | REAL(wp), PUBLIC :: rhoco !: = rau0 * cw |
---|
| 55 | REAL(wp), PUBLIC :: sangvg, cangvg !: sin and cos of the turning angle for ocean stress |
---|
| 56 | REAL(wp), PUBLIC :: pstarh !: pstar / 2.0 |
---|
[3] | 57 | |
---|
[2076] | 58 | REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: ahiu , ahiv !: hor. diffusivity coeff. at ocean U- and V-points (m2/s) |
---|
| 59 | REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: pahu , pahv !: ice hor. eddy diffusivity coef. at ocean U- and V-points |
---|
| 60 | REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: ust2s !: friction velocity |
---|
[3] | 61 | |
---|
[2076] | 62 | #if defined key_lim2_vp |
---|
| 63 | REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: hsnm , hicm !: mean snow and ice thicknesses |
---|
| 64 | CHARACTER(len=1), PUBLIC :: cl_grid = 'B' !: type of grid used in ice dynamics, 'C' or 'B' |
---|
| 65 | #else |
---|
| 66 | REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: & |
---|
| 67 | stress1_i , &!: first stress tensor element |
---|
| 68 | stress2_i , &!: second stress tensor element |
---|
| 69 | stress12_i, &!: diagonal stress tensor element |
---|
| 70 | delta_i , &!: Delta factor for the ice rheology (see Flato and Hibler 95) [s-1] -> limrhg.F90 |
---|
| 71 | divu_i , &!: Divergence of the velocity field [s-1] -> limrhg.F90 |
---|
| 72 | shear_i !: Shear of the velocity field [s-1] -> limrhg.F90 |
---|
| 73 | |
---|
| 74 | REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: at_i !: |
---|
| 75 | REAL(wp), PUBLIC, DIMENSION(:,:) ,POINTER :: vt_s ,vt_i !: mean snow and ice thicknesses |
---|
| 76 | REAL(wp), PUBLIC, DIMENSION(jpi,jpj),TARGET :: hsnm , hicm !: mean snow and ice thicknesses, target for pointers vt_s and vt_i |
---|
| 77 | CHARACTER(len=1), PUBLIC :: cl_grid = 'C' !: type of grid used in ice dynamics, 'C' or 'B' |
---|
| 78 | #endif |
---|
| 79 | |
---|
[888] | 80 | !!* diagnostic quantities |
---|
[2076] | 81 | REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: rdvosif !: Variation of volume at surface (only used for outputs) |
---|
| 82 | REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: rdvobif !: Variation of ice volume at the bottom ice (only used for outputs) |
---|
| 83 | REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: fdvolif !: Total variation of ice volume (only used for outputs) |
---|
| 84 | REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: rdvonif !: Lateral Variation of ice volume (only used for outputs) |
---|
[1463] | 85 | REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: sist !: Sea-Ice Surface Temperature (Kelvin) |
---|
[888] | 86 | REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: tfu !: Freezing/Melting point temperature of sea water at SSS |
---|
| 87 | REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: hicif !: Ice thickness |
---|
| 88 | REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: hsnif !: Snow thickness |
---|
| 89 | REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: hicifp !: Ice production/melting |
---|
| 90 | REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: frld !: Leads fraction = 1-a/totalarea |
---|
| 91 | REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: phicif !: ice thickness at previous time |
---|
| 92 | REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: pfrld !: Leads fraction at previous time |
---|
| 93 | REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: qstoif !: Energy stored in the brine pockets |
---|
| 94 | REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: fbif !: Heat flux at the ice base |
---|
| 95 | REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: rdmsnif !: Variation of snow mass |
---|
| 96 | REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: rdmicif !: Variation of ice mass |
---|
| 97 | REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: qldif !: heat balance of the lead (or of the open ocean) |
---|
| 98 | REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: qcmif !: Energy needed to bring the ocean surface layer until its freezing |
---|
| 99 | REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: fdtcn !: net downward heat flux from the ice to the ocean |
---|
| 100 | REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: qdtcn !: energy from the ice to the ocean point (at a factor 2) |
---|
| 101 | REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: thcm !: part of the solar energy used in the lead heat budget |
---|
| 102 | REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: fstric !: Solar flux transmitted trough the ice |
---|
| 103 | REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: ffltbif !: Array linked with the max heat contained in brine pockets (?) |
---|
| 104 | REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: fscmbq !: Linked with the solar flux below the ice (?) |
---|
| 105 | REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: fsbbq !: Also linked with the solar flux below the ice (?) |
---|
| 106 | REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: qfvbq !: Array used to store energy in case of toral lateral ablation (?) |
---|
| 107 | REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: dmgwi !: Variation of the mass of snow ice |
---|
[3] | 108 | |
---|
[1470] | 109 | REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: u_ice, v_ice !: two components of the ice velocity at I-point (m/s) |
---|
| 110 | REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: u_oce, v_oce !: two components of the ocean velocity at I-point (m/s) |
---|
[3] | 111 | |
---|
[888] | 112 | REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jplayersp1) :: tbif !: Temperature inside the ice/snow layer |
---|
[3] | 113 | |
---|
[888] | 114 | !!* moment used in the advection scheme |
---|
| 115 | REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: sxice, syice, sxxice, syyice, sxyice !: for ice volume |
---|
| 116 | REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: sxsn, sysn, sxxsn, syysn, sxysn !: for snow volume |
---|
| 117 | REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: sxa, sya, sxxa, syya, sxya !: for ice cover area |
---|
| 118 | REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: sxc0, syc0, sxxc0, syyc0, sxyc0 !: for heat content of snow |
---|
| 119 | REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: sxc1, syc1, sxxc1, syyc1, sxyc1 !: for heat content of 1st ice layer |
---|
| 120 | REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: sxc2, syc2, sxxc2, syyc2, sxyc2 !: for heat content of 2nd ice layer |
---|
| 121 | REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: sxst, syst, sxxst, syyst, sxyst !: for heat content of brine pockets |
---|
[3] | 122 | |
---|
| 123 | #else |
---|
| 124 | !!---------------------------------------------------------------------- |
---|
[821] | 125 | !! Default option Empty module NO LIM 2.0 sea-ice model |
---|
[3] | 126 | !!---------------------------------------------------------------------- |
---|
| 127 | #endif |
---|
| 128 | |
---|
| 129 | !!====================================================================== |
---|
[821] | 130 | END MODULE ice_2 |
---|