Changeset 12
- Timestamp:
- 2004-02-17T07:56:53+01:00 (20 years ago)
- Location:
- trunk/NEMO/LIM_SRC
- Files:
-
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/LIM_SRC/dom_ice.F90
r3 r12 1 1 MODULE dom_ice 2 2 !!====================================================================== 3 !! *** MODULE dom_ice ***4 !! Sea Ice Domain3 !! *** MODULE dom_ice *** 4 !! LIM Sea Ice : Domain variables 5 5 !!====================================================================== 6 !!7 !! ** Purpose :8 !! - Define in memory coefficients of Sea Ice model9 !!10 6 !! History : 11 7 !! 2.0 ! 03-08 (C. Ethe) Free form and module 8 !!---------------------------------------------------------------------- 9 !! LIM 2.0, UCL-LODYC-IPSL (2002) 10 !!---------------------------------------------------------------------- 12 11 !! * Modules used 13 12 USE par_ice 14 13 15 14 IMPLICIT NONE 15 PUBLIC 16 16 17 !!---------------------------------------------------------------------- 18 !! LIM 2.0, UCL-LODYC-IPSL (2002) 19 !!---------------------------------------------------------------------- 17 REAL(wp) :: & !: 18 dz !: depht of the 1st ocean level 20 19 21 REAL(wp),DIMENSION(jpi,jpj) :: & 22 area ! Surface of a grid square 23 20 REAL(wp),DIMENSION(jpi,jpj) :: & !: 21 area !: Surface of a grid square 24 22 25 REAL(wp),DIMENSION(jpi,jpj,2,2) :: & 26 wght , & ! weight of the 4 neighbours to compute averages27 akappa , & ! first group of metric coefficients28 bkappa ! third group of metric coefficients23 REAL(wp),DIMENSION(jpi,jpj,2,2) :: & !: 24 wght , & !: weight of the 4 neighbours to compute averages 25 akappa , & !: first group of metric coefficients 26 bkappa !: third group of metric coefficients 29 27 30 REAL(wp),DIMENSION(jpi,jpj) :: & 31 tms ,tmu !masks arrays28 REAL(wp),DIMENSION(jpi,jpj) :: & !: 29 tms , tmu !: masks arrays 32 30 33 REAL(wp),DIMENSION(jpi,jpj,2,2,2,2) :: & 34 alambd ! second group of metric coefficients31 REAL(wp),DIMENSION(jpi,jpj,2,2,2,2) :: & !: 32 alambd !: second group of metric coefficients 35 33 36 REAL(wp) :: & 37 dz ! depht of the 1st ocean level 34 REAL(wp),DIMENSION(jpi,jpj) :: & !: 35 fs2cor , & !: coriolis factor 36 fcor , & !: coriolis coefficient 37 covrai , & !: sine of geographic latitude 38 aire !: total area 38 39 39 REAL(wp),DIMENSION(jpi,jpj) :: & 40 fs2cor , & ! coriolis factor 41 fcor , & ! coriolis coefficient 42 covrai , & ! sine of geographic latitude 43 aire ! total area 44 45 INTEGER :: & 46 jeq , jeqm1 40 INTEGER :: & !: 41 jeq , jeqm1 !: 47 42 48 43 !!====================================================================== -
trunk/NEMO/LIM_SRC/ice.F90
r3 r12 8 8 !! 'key_ice_lim' : LIM sea-ice model 9 9 !!---------------------------------------------------------------------- 10 !!11 !! ** Purpose : Define in memory diagnostics Sea Ice variables12 !!13 10 !! History : 14 11 !! 2.0 ! 03-08 (C. Ethe) F90: Free form and module … … 20 17 21 18 IMPLICIT NONE 22 P UBLIC19 PRIVATE 23 20 24 21 !! * Share Module variables 25 INTEGER , PUBLIC :: & !!! ** ice-dynamic namelist (namicedyn) ** 26 nlminn = 103 , & ! minimum index for computation of ice drift(NH) 27 nlmaxs = 45 , & ! maximum index for computation of ice drift(SH) 28 nbiter = 1 , & ! number of sub-time steps for relaxation 29 nbitdr = 250 ! maximum number of iterations for relaxation 22 INTEGER , PUBLIC :: & !!: ** ice-dynamic namelist (namicedyn) ** 23 nbiter = 1 , & !: number of sub-time steps for relaxation 24 nbitdr = 250 !: maximum number of iterations for relaxation 30 25 31 REAL(wp), PUBLIC :: & !! !** ice-dynamic namelist (namicedyn) **32 epsd = 1.0e-20, & !tolerance parameter for dynamic33 alpha = 0.5 , & !coefficient for semi-implicit coriolis34 dm = 0.6e+03, & !diffusion constant for dynamics35 om = 0.5 , & !relaxation constant36 resl = 5.0e-05, & !maximum value for the residual of relaxation37 cw = 5.0e-03, & !drag coefficient for oceanic stress38 angvg = 0.0 , & !turning angle for oceanic stress39 pstar = 1.0e+04, & !first bulk-rheology parameter40 c_rhg = 20.0 , & !second bulk-rhelogy parameter41 etamn = 0.0e+07, & !minimun value for viscosity42 creepl = 2.0e-08, & !creep limit43 ecc = 2.0 , & !eccentricity of the elliptical yield curve44 ahi0 = 350.e0 !sea-ice hor. eddy diffusivity coeff. (m2/s)26 REAL(wp), PUBLIC :: & !!: ** ice-dynamic namelist (namicedyn) ** 27 epsd = 1.0e-20, & !: tolerance parameter for dynamic 28 alpha = 0.5 , & !: coefficient for semi-implicit coriolis 29 dm = 0.6e+03, & !: diffusion constant for dynamics 30 om = 0.5 , & !: relaxation constant 31 resl = 5.0e-05, & !: maximum value for the residual of relaxation 32 cw = 5.0e-03, & !: drag coefficient for oceanic stress 33 angvg = 0.0 , & !: turning angle for oceanic stress 34 pstar = 1.0e+04, & !: first bulk-rheology parameter 35 c_rhg = 20.0 , & !: second bulk-rhelogy parameter 36 etamn = 0.0e+07, & !: minimun value for viscosity 37 creepl = 2.0e-08, & !: creep limit 38 ecc = 2.0 , & !: eccentricity of the elliptical yield curve 39 ahi0 = 350.e0 !: sea-ice hor. eddy diffusivity coeff. (m2/s) 45 40 46 INTEGER , PUBLIC :: & 47 nlmaxn = jpjm1 , & ! maximum index for computation of ice drift(NH) 48 #if defined key_mpp 49 nlmins = 2 ! minimum index for computation of ice drift(SH) 50 #else 51 nlmins = 3 ! minimum index for computation of ice drift(SH) 52 #endif 41 REAL(wp), PUBLIC :: & !: 42 usecc2 , & !: = 1.0 / ( ecc * ecc ) 43 rhoco , & !: = rau0 * cw 44 sangvg, cangvg , & !: sin and cos of the turning angle for ocean stress 45 pstarh !: pstar / 2.0 53 46 54 REAL(wp), PUBLIC :: & 55 usecc2 , & ! = 1.0 / ( ecc * ecc ) 56 rhoco , & ! = rau0 * cw 57 sangvg, cangvg , & ! sin and cos of the turning angle for ocean stress 58 pstarh ! pstar / 2.0 59 60 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: & 61 u_oce, v_oce, & ! surface ocean velocity used in ice dynamics 62 ahiu , ahiv , & ! hor. diffusivity coeff. at ocean U- and V-points (m2/s) 63 pahu , pahv , & ! ice hor. eddy diffusivity coef. at ocean U- and V-points 64 hsnm , hicm , & ! mean snow and ice thicknesses 65 ust2s ! friction velocity 47 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: & !: 48 u_oce, v_oce, & !: surface ocean velocity used in ice dynamics 49 ahiu , ahiv , & !: hor. diffusivity coeff. at ocean U- and V-points (m2/s) 50 pahu , pahv , & !: ice hor. eddy diffusivity coef. at ocean U- and V-points 51 hsnm , hicm , & !: mean snow and ice thicknesses 52 ust2s !: friction velocity 66 53 67 54 68 REAL(wp), DIMENSION(jpi,jpj) :: &69 firic , & ! IR flux over the ice (only used for outputs)70 fcsic , & ! Sensible heat flux over the ice (only used for outputs)71 fleic , & ! Latent heat flux over the ice (only used for outputs)72 qlatic , & ! latent flux73 rdvosif, & ! Variation of volume at surface (only used for outputs)74 rdvobif, & ! Variation of ice volume at the bottom ice (only used for outputs)75 fdvolif, & ! Total variation of ice volume (only used for outputs)76 rdvonif, & ! Lateral Variation of ice volume (only used for outputs)77 sist , & ! Sea-Ice Surface Temperature (Kelvin ??? degree ??? I don't know)78 tfu , & ! Melting point temperature of sea water79 hsnif , & ! Snow thickness80 hicif , & ! Ice thickness81 hicifp , & ! Ice production/melting82 frld , & ! Leads fraction = 1-a/totalarea83 phicif , & ! ice thickness at previous time84 pfrld , & ! Leads fraction at previous time85 qstoif , & ! Energy stored in the brine pockets86 fbif , & ! Heat flux at the ice base87 rdmsnif, & ! Variation of snow mass88 rdmicif, & ! Variation of ice mass89 qldif , & ! heat balance of the lead (or of the open ocean)90 qcmif , & ! Energy needed to bring the ocean surface layer until its freezing91 fdtcn , & ! net downward heat flux from the ice to the ocean92 qdtcn , & ! energy from the ice to the ocean93 !point (at a factor 2)94 thcm , & ! part of the solar energy used in the lead heat budget95 fstric , & ! Solar flux transmitted trough the ice96 ffltbif, & ! Array linked with the max heat contained in brine pockets (?)97 fscmbq , & ! Linked with the solar flux below the ice (?)98 fsbbq , & ! Also linked with the solar flux below the ice (?)99 qfvbq , & ! Array used to store energy in case of toral lateral ablation (?)100 dmgwi ! Variation of the mass of snow ice55 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: & !: 56 firic , & !: IR flux over the ice (only used for outputs) 57 fcsic , & !: Sensible heat flux over the ice (only used for outputs) 58 fleic , & !: Latent heat flux over the ice (only used for outputs) 59 qlatic , & !: latent flux 60 rdvosif, & !: Variation of volume at surface (only used for outputs) 61 rdvobif, & !: Variation of ice volume at the bottom ice (only used for outputs) 62 fdvolif, & !: Total variation of ice volume (only used for outputs) 63 rdvonif, & !: Lateral Variation of ice volume (only used for outputs) 64 sist , & !: Sea-Ice Surface Temperature (Kelvin ??? degree ??? I don't know) 65 tfu , & !: Melting point temperature of sea water 66 hsnif , & !: Snow thickness 67 hicif , & !: Ice thickness 68 hicifp , & !: Ice production/melting 69 frld , & !: Leads fraction = 1-a/totalarea 70 phicif , & !: ice thickness at previous time 71 pfrld , & !: Leads fraction at previous time 72 qstoif , & !: Energy stored in the brine pockets 73 fbif , & !: Heat flux at the ice base 74 rdmsnif, & !: Variation of snow mass 75 rdmicif, & !: Variation of ice mass 76 qldif , & !: heat balance of the lead (or of the open ocean) 77 qcmif , & !: Energy needed to bring the ocean surface layer until its freezing 78 fdtcn , & !: net downward heat flux from the ice to the ocean 79 qdtcn , & !: energy from the ice to the ocean 80 ! ! point (at a factor 2) 81 thcm , & !: part of the solar energy used in the lead heat budget 82 fstric , & !: Solar flux transmitted trough the ice 83 ffltbif, & !: Array linked with the max heat contained in brine pockets (?) 84 fscmbq , & !: Linked with the solar flux below the ice (?) 85 fsbbq , & !: Also linked with the solar flux below the ice (?) 86 qfvbq , & !: Array used to store energy in case of toral lateral ablation (?) 87 dmgwi !: Variation of the mass of snow ice 101 88 102 REAL(wp), DIMENSION(jpi,jpj) :: &103 albege , & ! Albedo of the snow or ice (only for outputs)104 albecn , & ! Albedo of the ocean (only for outputs)105 tauc , & ! Cloud optical depth106 sdvt ! u*^2/(Stress/density)89 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: & !: 90 albege , & !: Albedo of the snow or ice (only for outputs) 91 albecn , & !: Albedo of the ocean (only for outputs) 92 tauc , & !: Cloud optical depth 93 sdvt !: u*^2/(Stress/density) 107 94 108 95 109 REAL(wp), DIMENSION(jpi,jpj) :: &110 u_ice, v_ice, & ! two components of the ice velocity (m/s)111 tio_u, tio_v ! two components of the ice-ocean stress (N/m2)96 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: & !: 97 u_ice, v_ice, & !: two components of the ice velocity (m/s) 98 tio_u, tio_v !: two components of the ice-ocean stress (N/m2) 112 99 113 REAL(wp), DIMENSION(jpi,jpj,nsmax) :: &114 scal0 100 REAL(wp), PUBLIC, DIMENSION(jpi,jpj,nsmax) :: & !: 101 scal0 !: ??? 115 102 116 REAL(wp), DIMENSION(jpi,jpj,nlayersp1) :: &117 tbif ! Temperature inside the ice/snow layer103 REAL(wp), PUBLIC, DIMENSION(jpi,jpj,nlayersp1) :: & !: 104 tbif !: Temperature inside the ice/snow layer 118 105 119 REAL(wp), DIMENSION(jpi,jpj,0:kmax+1) :: & 120 reslum ! Relative absorption of solar radiation in each ocean level106 REAL(wp), DIMENSION(jpi,jpj,0:kmax+1) :: & !: 107 reslum !: Relative absorption of solar radiation in each ocean level 121 108 122 REAL(wp), DIMENSION(jpi,jpj) :: &123 sxice, syice, sxxice, syyice, sxyice, & ! moments for advection124 sxsn, sysn, sxxsn, syysn, sxysn, & 125 sxa, sya, sxxa, syya, sxya, & 126 sxc0, syc0, sxxc0, syyc0, sxyc0, & 127 sxc1, syc1, sxxc1, syyc1, sxyc1, & 128 sxc2, syc2, sxxc2, syyc2, sxyc2, & 129 sxst, syst, sxxst, syyst, sxyst 109 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: & !: 110 sxice, syice, sxxice, syyice, sxyice, & !: moments for advection 111 sxsn, sysn, sxxsn, syysn, sxysn, & !: 112 sxa, sya, sxxa, syya, sxya, & !: 113 sxc0, syc0, sxxc0, syyc0, sxyc0, & !: 114 sxc1, syc1, sxxc1, syyc1, sxyc1, & !: 115 sxc2, syc2, sxxc2, syyc2, sxyc2, & !: 116 sxst, syst, sxxst, syyst, sxyst !: 130 117 131 118 #else -
trunk/NEMO/LIM_SRC/iceini.F90
r3 r12 28 28 29 29 !! * Share Module variables 30 LOGICAL , PUBLIC :: & !!! ** init namelist (namicerun) ** 31 ldyn = .TRUE. ! flag for ice dynamics (T) or not (F) 32 33 REAL(wp), PUBLIC :: & 34 hsndif = 0.0 , & ! computation of temp. in snow (0) or not (9999) 35 hicdif = 0.0 ! computation of temp. in ice (0) or not (9999) 36 37 !! * Module variables 38 REAL(wp), PUBLIC, DIMENSION(2) :: & 39 acrit = (/ 1.0e-06 , 1.0e-06 /) ! minimum fraction for leads in 40 ! ! north and south hemisphere 41 42 INTEGER, PUBLIC :: & 43 nstart , & ! iteration number of the begining of the run 44 nlast , & ! iteration number of the end of the run 45 nitrun , & ! number of iteration 46 numit ! iteration number 47 48 REAL(wp), PUBLIC :: & 49 tpstot ! time of the run in seconds 30 LOGICAL , PUBLIC :: & !!! ** init namelist (namicerun) ** 31 ldyn = .TRUE. !: flag for ice dynamics (T) or not (F) 32 INTEGER , PUBLIC :: & !: 33 nstart , & !: iteration number of the begining of the run 34 nlast , & !: iteration number of the end of the run 35 nitrun , & !: number of iteration 36 numit !: iteration number 37 REAL(wp), PUBLIC :: & !: 38 hsndif = 0.0 , & !: computation of temp. in snow (0) or not (9999) 39 hicdif = 0.0 , & !: computation of temp. in ice (0) or not (9999) 40 tpstot !: time of the run in seconds 41 REAL(wp), PUBLIC, DIMENSION(2) :: & !: 42 acrit = (/ 1.0e-06 , 1.0e-06 /) !: minimum fraction for leads in 43 ! ! north and south hemisphere 50 44 !!---------------------------------------------------------------------- 51 45 !! LIM 2.0 UCL-LODYC-IPSL (2003) -
trunk/NEMO/LIM_SRC/limdia.F90
r3 r12 27 27 PUBLIC lim_dia ! called by ice_step 28 28 29 !! * Shared module variables 30 INTEGER, PUBLIC :: & 31 ntmoy = 1 , & !: instantaneous values of ice evolution or averaging ntmoy 32 ninfo = 1 !: frequency of ouputs on file ice_evolu in case of averaging 33 29 34 !! * Module variables 30 INTEGER, PUBLIC :: &31 ntmoy = 1 , & ! instantaneous values of ice evolution or averaging ntmoy32 ninfo = 1 ! frequency of ouputs on file ice_evolu in case of averaging33 34 35 INTEGER :: & 35 36 nfrinf = 4 ! number of variables written in one line … … 48 49 49 50 CHARACTER(len=30) :: & 50 fmtw , & ! 51 fmtr , & ! 52 fmtitr ! 51 fmtw , & ! formats 52 fmtr , & ! ??? 53 fmtitr ! ??? 53 54 54 55 CHARACTER(len=nchsep), DIMENSION(ninfmx) :: & … … 78 79 !!------------------------------------------------------------------- 79 80 !! * Local variables 80 INTEGER :: jv,ji, jj! dummy loop indices81 INTEGER :: nv! indice of variable81 INTEGER :: jv,ji, jj ! dummy loop indices 82 INTEGER :: nv ! indice of variable 82 83 REAL(wp), DIMENSION(ninfmx) :: & 83 vinfor ! temporary working space84 REAL(wp) 85 area , & ! sea ice area86 ldarea , & ! leads area87 extent15, & ! sea ice extent (15%)88 extent85, & ! sea ice extent (85%)89 icevol , & ! sea ice volume90 snwvol , & ! snow volume over sea ice91 icespd ! sea ice velocity84 vinfor ! temporary working space 85 REAL(wp) :: & 86 zarea , & ! sea ice area 87 zldarea , & ! leads area 88 zextent15, & ! sea ice extent (15%) 89 zextent85, & ! sea ice extent (85%) 90 zicevol , & ! sea ice volume 91 zsnwvol , & ! snow volume over sea ice 92 zicespd ! sea ice velocity 92 93 !!------------------------------------------------------------------- 93 94 … … 101 102 vinfor(nv) = nyear 102 103 103 DO 104 DO jv = nbvt + 1, nvinfo 104 105 vinfor(jv) = 0.0 105 106 END DO 106 107 107 extent15 = 0.e0108 extent85 = 0.e0108 zextent15 = 0.e0 109 zextent85 = 0.e0 109 110 ! variables in northern Hemis 110 DO jj = jeq, jpjm1111 DO ji = fs_2 , fs_jpim1111 DO jj = jeq, jpjm1 112 DO ji = fs_2, fs_jpim1 ! vector opt. 112 113 IF( tms(ji,jj) == 1 ) THEN 113 area = ( 1.0 - frld(ji,jj) ) * aire(ji,jj)114 IF (frld(ji,jj) <= 0.15 ) extent15 = aire(ji,jj)115 IF (frld(ji,jj) <= 0.85 ) extent85 = aire(ji,jj)116 ldarea =area / MAX( ( 1 - frld(ji,jj) ) , epsi06 )117 icevol =area * hicif(ji,jj)118 snwvol =area * hsnif(ji,jj)119 icespd = icevol * ( u_ice(ji,jj) * u_ice(ji,jj) + v_ice(ji,jj) * v_ice(ji,jj) )120 121 vinfor(nv + 1) = vinfor(nv + 1) +area122 vinfor(nv + 3) = vinfor(nv + 3) +extent15123 vinfor(nv + 5) = vinfor(nv + 5) +extent85124 vinfor(nv + 7) = vinfor(nv + 7) +ldarea125 vinfor(nv + 9) = vinfor(nv + 9) +icevol126 vinfor(nv + 11) = vinfor(nv + 11) +snwvol127 vinfor(nv + 13) = vinfor(nv + 13) +icespd114 zarea = ( 1.0 - frld(ji,jj) ) * aire(ji,jj) 115 IF (frld(ji,jj) <= 0.15 ) zextent15 = aire(ji,jj) 116 IF (frld(ji,jj) <= 0.85 ) zextent85 = aire(ji,jj) 117 zldarea = zarea / MAX( ( 1 - frld(ji,jj) ) , epsi06 ) 118 zicevol = zarea * hicif(ji,jj) 119 zsnwvol = zarea * hsnif(ji,jj) 120 zicespd = zicevol * ( u_ice(ji,jj) * u_ice(ji,jj) & 121 & + v_ice(ji,jj) * v_ice(ji,jj) ) 122 vinfor(nv+ 1) = vinfor(nv+ 1) + zarea 123 vinfor(nv+ 3) = vinfor(nv+ 3) + zextent15 124 vinfor(nv+ 5) = vinfor(nv+ 5) + zextent85 125 vinfor(nv+ 7) = vinfor(nv+ 7) + zldarea 126 vinfor(nv+ 9) = vinfor(nv+ 9) + zicevol 127 vinfor(nv+11) = vinfor(nv+11) + zsnwvol 128 vinfor(nv+13) = vinfor(nv+13) + zicespd 128 129 ENDIF 129 130 END DO 130 131 END DO 131 vinfor(nv + 13) = SQRT( vinfor(nv + 13) / MAX( vinfor(nv + 9) , epsi06 ) )132 vinfor(nv+13) = SQRT( vinfor(nv+13) / MAX( vinfor(nv+9) , epsi06 ) ) 132 133 133 134 134 135 ! variables in southern Hemis 135 136 nv = nv + 1 136 DO jj = 2, jeqm1137 DO ji = fs_2 , fs_jpim1137 DO jj = 2, jeqm1 138 DO ji = fs_2, fs_jpim1 ! vector opt. 138 139 IF( tms(ji,jj) == 1 ) THEN 139 area = ( 1.0 - frld(ji,jj) ) * aire(ji,jj)140 IF (frld(ji,jj) <= 0.15 ) extent15 = aire(ji,jj)141 IF (frld(ji,jj) <= 0.85 ) extent85 = aire(ji,jj)142 ldarea =area / MAX( ( 1 - frld(ji,jj) ) , epsi06 )143 icevol =area * hicif(ji,jj)144 snwvol =area * hsnif(ji,jj)145 icespd = icevol * ( u_ice(ji,jj) * u_ice(ji,jj) + v_ice(ji,jj) * v_ice(ji,jj) )146 147 vinfor(nv + 1) = vinfor(nv + 1) +area148 vinfor(nv + 3) = vinfor(nv + 3) +extent15149 vinfor(nv + 5) = vinfor(nv + 5) +extent85150 vinfor(nv + 7) = vinfor(nv + 7) +ldarea151 vinfor(nv + 9) = vinfor(nv + 9) +icevol152 vinfor(nv + 11) = vinfor(nv + 11) +snwvol153 vinfor(nv + 13) = vinfor(nv + 13) +icespd140 zarea = ( 1.0 - frld(ji,jj) ) * aire(ji,jj) 141 IF (frld(ji,jj) <= 0.15 ) zextent15 = aire(ji,jj) 142 IF (frld(ji,jj) <= 0.85 ) zextent85 = aire(ji,jj) 143 zldarea = zarea / MAX( ( 1 - frld(ji,jj) ) , epsi06 ) 144 zicevol = zarea * hicif(ji,jj) 145 zsnwvol = zarea * hsnif(ji,jj) 146 zicespd = zicevol * ( u_ice(ji,jj) * u_ice(ji,jj) & 147 & + v_ice(ji,jj) * v_ice(ji,jj) ) 148 vinfor(nv+ 1) = vinfor(nv+ 1) + zarea 149 vinfor(nv+ 3) = vinfor(nv+ 3) + zextent15 150 vinfor(nv+ 5) = vinfor(nv+ 5) + zextent85 151 vinfor(nv+ 7) = vinfor(nv+ 7) + zldarea 152 vinfor(nv+ 9) = vinfor(nv+ 9) + zicevol 153 vinfor(nv+11) = vinfor(nv+11) + zsnwvol 154 vinfor(nv+13) = vinfor(nv+13) + zicespd 154 155 ENDIF 155 156 END DO 156 157 END DO 157 vinfor(nv + 13) = SQRT( vinfor(nv + 13) / MAX( vinfor(nv + 9) , epsi06 ) )158 vinfor(nv+13) = SQRT( vinfor(nv+13) / MAX( vinfor(nv+9) , epsi06 ) ) 158 159 159 160 ! Accumulation before averaging 160 DO jv = 1 161 DO jv = 1, nvinfo 161 162 vinfom(jv) = vinfom(jv) + vinfor(jv) 162 163 END DO … … 167 168 WRITE(90,fmtw) ( titvar(jv), vinfom(jv)/naveg, jv = 1, nvinfo ) 168 169 naveg = 0 169 DO 170 DO jv = 1, nvinfo 170 171 vinfom(jv)=0.0 171 172 END DO -
trunk/NEMO/LIM_SRC/limdyn.F90
r3 r12 204 204 !! 8.5 ! 03-08 (C. Ethe) original code 205 205 !!------------------------------------------------------------------- 206 NAMELIST/namicedyn/ epsd, nlminn, nlmaxs,alpha, &206 NAMELIST/namicedyn/ epsd, alpha, & 207 207 & dm, nbiter, nbitdr, om, resl, cw, angvg, pstar, & 208 208 & c_rhg, etamn, creepl, ecc, ahi0 … … 220 220 WRITE(numout,*) '~~~~~~~~~~~~' 221 221 WRITE(numout,*) ' tolerance parameter epsd = ', epsd 222 WRITE(numout,*) ' northern minimum index for ice drift nlminn = ', nlminn223 WRITE(numout,*) ' southern minimum index for ice drift nlmaxs = ', nlmaxs224 222 WRITE(numout,*) ' coefficient for semi-implicit coriolis alpha = ', alpha 225 223 WRITE(numout,*) ' diffusion constant for dynamics dm = ', dm -
trunk/NEMO/LIM_SRC/limhdf.F90
r3 r12 16 16 ! USE limdyn 17 17 USE lbclnk 18 USE lib_mpp 18 19 19 20 IMPLICIT NONE … … 83 84 zdiv0(:, 1 ) = 0.e0 84 85 zdiv0(:,jpj) = 0.e0 85 #if ! defined key_vectopt_loop 86 zflu (jpi,:) = 0.e087 zflv (jpi,:) = 0.e088 zdiv0(1, :) = 0.e089 zdiv0(jpi,:) = 0.e090 #endif 86 IF( .NOT.lk_vopt_loop ) THEN 87 zflu (jpi,:) = 0.e0 88 zflv (jpi,:) = 0.e0 89 zdiv0(1, :) = 0.e0 90 zdiv0(jpi,:) = 0.e0 91 ENDIF 91 92 92 93 ! Metric coefficient (compute at the first call and saved in … … 149 150 END DO 150 151 END DO 151 #if defined key_mpp 152 CALL mpp_max( zconv ) 153 #endif 152 IF( lk_mpp ) CALL mpp_max( zconv ) ! max over the global domain 153 154 154 DO jj = 2, jpjm1 155 155 DO ji = 2 , jpim1 -
trunk/NEMO/LIM_SRC/limmsh.F90
r3 r12 3 3 !!====================================================================== 4 4 !! *** MODULE limmsh *** 5 !! definition of the ice mesh5 !! LIM ice model : definition of the ice mesh parameters 6 6 !!====================================================================== 7 7 … … 45 45 !!--------------------------------------------------------------------- 46 46 !! * Local variables 47 INTEGER :: ji, jj ! dummy loop indices47 INTEGER :: ji, jj ! dummy loop indices 48 48 49 49 REAL(wp), DIMENSION(jpi,jpj) :: & 50 zd2d1 , zd1d2 ! Derivative of zh2 (resp. zh1) in the x direction (defined at the center)51 50 zd2d1 , zd1d2 ! Derivative of zh2 (resp. zh1) in the x direction 51 ! ! (resp. y direction) (defined at the center) 52 52 REAL(wp) :: & 53 zh1p , zh2p , & ! Idem zh1, zh2 for the bottom left corner of the grid 54 zd2d1p, zd1d2p, & ! Idem zd2d1, zd1d2 for the bottom left corner of the grid 55 zusden, zusden2, zaire4 ! tempory scalars 53 zh1p , zh2p , & ! Idem zh1, zh2 for the bottom left corner of the grid 54 zd2d1p, zd1d2p, & ! Idem zd2d1, zd1d2 for the bottom left corner of the grid 55 zusden, zusden2, & ! temporary scalars 56 zaire4 ! " " 56 57 !!--------------------------------------------------------------------- 57 58 !! LIM 2.0, UCL-LODYC-IPSL (2002) … … 83 84 ! metric coefficients for sea ice dynamic 84 85 !---------------------------------------- 85 86 86 ! ! akappa 87 DO jj = 2 88 DO ji = 1 87 DO jj = 2, jpj 88 DO ji = 1, jpi 89 89 zd1d2(ji,jj) = e1v(ji,jj) - e1v(ji,jj-1) 90 90 END DO 91 91 END DO 92 CALL lbc_lnk( zd1d2 93 94 DO jj = 1 95 DO ji = 2 92 CALL lbc_lnk( zd1d2, 'T', -1. ) 93 94 DO jj = 1, jpj 95 DO ji = 2, jpi 96 96 zd2d1(ji,jj) = e2u(ji,jj) - e2u(ji-1,jj) 97 97 END DO 98 98 END DO 99 CALL lbc_lnk( zd2d1 100 101 DO jj = 1 102 DO ji = 1 99 CALL lbc_lnk( zd2d1, 'T', -1. ) 100 101 DO jj = 1, jpj 102 DO ji = 1, jpi 103 103 zaire4 = 4.0 * e1t(ji,jj) * e2t(ji,jj) 104 104 akappa(ji,jj,1,1) = 1.0 / ( 2.0 * e1t(ji,jj) ) … … 110 110 111 111 ! ! weights (wght) 112 DO jj = 2 113 DO ji = 2 112 DO jj = 2, jpj 113 DO ji = 2, jpi 114 114 zusden = 1. / ( ( e1t(ji,jj) + e1t(ji-1,jj ) ) & 115 115 & * ( e2t(ji,jj) + e2t(ji ,jj-1) ) ) … … 128 128 !------------------------------------------------- 129 129 130 DO jj = 2, jpj131 DO ji = 2 130 DO jj = 2, jpj 131 DO ji = 2, jpi 132 132 zh1p = e1t(ji ,jj ) * wght(ji,jj,2,2) & 133 133 & + e1t(ji-1,jj ) * wght(ji,jj,1,2) & … … 211 211 tmu(1,:) = 0.e0 212 212 DO jj = 2, jpj ! ice U.V-point: computed from ice T-point mask 213 DO ji = 2 213 DO ji = 2, jpim1 214 214 tmu(ji,jj) = tms(ji,jj) * tms(ji-1,jj) * tms(ji,jj-1) * tms(ji-1,jj-1) 215 215 END DO -
trunk/NEMO/LIM_SRC/limrhg.F90
r3 r12 35 35 SUBROUTINE lim_rhg( khemi ) 36 36 !!------------------------------------------------------------------- 37 !! 38 !! This routine determines the velocity field of sea ice 39 !! by using atmospheric (wind stress) and oceanic (water 40 !! stress and surface tilt) forcings. Ice-ice interaction 41 !! is described by a non-linear viscous-plastic law inclu- 42 !! ding shear strength and a bulk rheology. 37 !! *** SUBROUTINR lim_rhg *** 38 !! ** purpose : determines the velocity field of sea ice by using 39 !! atmospheric (wind stress) and oceanic (water stress and surface 40 !! tilt) forcings. Ice-ice interaction is described by a non-linear 41 !! viscous-plastic law including shear strength and a bulk rheology. 43 42 !! 44 43 !! ** Action : - compute u_ice, v_ice the sea-ice velocity … … 53 52 54 53 ! * Local variables 55 INTEGER :: ji, jj, & ! dummy loop indices 56 iim1, ijm1, iip1, ijp1, & ! ??? 57 njmin, njmax, njmm1, & 58 iter, jter 59 54 INTEGER :: ji, jj ! dummy loop indices 55 56 INTEGER :: & 57 i_j1, i_j2, i_jpj, i_jpjm1, & ! ???? 58 iim1, ijm1, iip1 , ijp1 , & ! temporary integers 59 iter, jter ! " " 60 61 REAL(wp) :: & 62 ze11 , ze12 , ze22 , ze21 , & ! temporary scalars 63 zt11 , zt12 , zt21 , zt22 , & ! " " 64 zvis11, zvis21, zvis12, zvis22, & ! " " 65 zgphsx, ztagnx, zusw , & ! " " 66 zgphsy, ztagny ! " " 67 REAL(wp) :: & 68 zresm, zunw, zvnw, zur, zvr, zmod, za, zac, & 69 zmpzas, zstms, zindu, zindu1, zusdtp, zmassdt, zcorlal, & 70 ztrace2, zdeter, zdelta, zsang, zmask, zdgp, zdgi, zdiag 71 REAL(wp),DIMENSION(jpj) :: & 72 zind ! i-averaged indicator of sea-ice 60 73 REAL(wp),DIMENSION(jpi,jpj) :: & 61 74 zpresh, zfrld, zmass, zcorl, & … … 63 76 zc1u, zc1v, zc2u, zc2v, za1ct, za2ct, za1, za2, zb1, zb2, & 64 77 zc1, zc2, zd1, zd2, zden, zu_ice, zv_ice, zresr 65 66 78 REAL(wp),DIMENSION(jpi,jpj,2,2) :: & 67 79 zsigm11, zsigm12, zsigm22, zsigm21 68 69 REAL(wp) :: &70 ze11, ze12, ze22, ze21, &71 zvis11, zvis21, zvis12, zvis22 , &72 zgphsx, zgphsy, zusw, ztagnx, ztagny, &73 zt11, zt12, zt21, zt2274 75 REAL(wp) :: &76 zresm, zunw, zvnw, zur, zvr, zmod, za, zac, &77 zmpzas, zstms, zindu, zindu1, zusdtp, zmassdt, zcorlal, &78 ztrace2, zdeter, zdelta, zsang, zmask, zdgp, zdgi, zdiag, &79 zind80 INTEGER :: &81 i_j1, i_j2, i_jpj, i_jpjm182 80 !!------------------------------------------------------------------- 83 81 84 85 ! Numerical characteristics.86 ! --------------------------87 88 ! Define the limits where ice dynamics is computed89 IF( khemi == 1 ) THEN ! Northern hemisphere90 njmin = nlminn91 njmax = nlmaxn92 ELSE ! Southern hemisphere93 njmin = nlmins94 njmax = nlmaxs95 ENDIF96 njmm1 = njmin - 197 98 82 ! Store initial velocities. 99 83 zu0(:,:) = u_ice(:,:) 100 84 zv0(:,:) = v_ice(:,:) 101 85 102 IF( l_ctl .AND. lwp ) WRITE(numout,*) 'lim_rhg : njmin = ', njmin, ' njmax = ', njmax 103 !i essai control zone de calcul 104 IF( l_ctl .AND. lwp ) THEN 86 ! Numerical characteristics. 87 ! -------------------------- 88 89 ! Define the j-limits where ice dynamics is computed 90 ! --------------------------------------------------- 91 92 DO jj = 1, jpj 93 zind(jj) = SUM( frld(:,jj) ) ! = FLOAT(jpj) if ocean everwhere on a j-line 94 END DO 95 105 96 IF( khemi == 1 ) THEN ! Northern hemisphere 106 i_j1 = jeq 107 i_jpj = jpj 108 DO jj = jpj, jeq, -1 109 zind = INT( SUM( frld(:,jj) ) ) 110 IF( zind < jpi ) i_j1 = jj 111 END DO 112 WRITE(numout,*) 'lim_rhg : NH i_j1 = ', i_j1, ' ij_pj = ', i_jpj 113 i_j1 = MAX( 1, i_j1-2) 114 ! njmin = nlminn 115 ! njmax = nlmaxn 97 i_j1 = jeq 98 i_jpj = jpj 99 DO jj = jpj, jeq, -1 100 IF( zind(jj) < FLOAT(jpi) ) i_j1 = jj 101 END DO 102 i_j1 = MAX( 1, i_j1-1) 103 IF( l_ctl .AND. lwp ) WRITE(numout,*) 'lim_rhg : NH i_j1 = ', i_j1, ' ij_pj = ', i_jpj 116 104 ELSE ! Southern hemisphere 117 i_j1 = 2 118 i_jpj = jpj 119 DO jj = 1, jeq 120 zind = INT( SUM( frld(:,jj) ) ) 121 IF( zind < jpi ) i_jpj = jj 122 END DO 123 WRITE(numout,*) 'lim_rhg : SH i_j1 = ', i_j1, ' ij_pj = ', i_jpj 124 i_j1 = MAX( jpj, i_jpj+2) 125 ! njmin = nlmins 126 ! njmax = nlmaxs 105 i_j1 = 2 106 i_jpj = jpj 107 DO jj = 1, jeq 108 IF( zind(jj) < FLOAT(jpi) ) i_jpj = jj 109 END DO 110 i_jpj = MIN( jpj, i_jpj+2) 111 IF( l_ctl .AND. lwp ) WRITE(numout,*) 'lim_rhg : SH i_j1 = ', i_j1, ' ij_pj = ', i_jpj 127 112 ENDIF 128 i_j2 = i_j1 + 1 113 i_j2 = i_j1 + 1 ! inner domain indices 129 114 i_jpjm1 = i_jpj - 1 130 ENDIF 115 131 116 132 117 ! 2) Sign of turning angle for oceanic drag. | … … 140 125 !----------------------------------------------------------------------- 141 126 142 DO jj = njmm1 , njmax127 DO jj = i_j1 , i_jpjm1 143 128 DO ji = 1 , jpi 144 129 za1(ji,jj) = tms(ji,jj) * ( rhosn * hsnm(ji,jj) + rhoic * hicm(ji,jj) ) … … 160 145 !--------------------------------------------------------------------------- 161 146 162 DO jj = njmin, njmax147 DO jj = i_j2, i_jpjm1 163 148 DO ji = 2, jpi 164 149 zstms = tms(ji,jj ) * wght(ji,jj,2,2) + tms(ji-1,jj ) * wght(ji,jj,1,2) & … … 226 211 ! Computation of free drift field for free slip boundary conditions. 227 212 228 DO jj = njmm1, njmax213 DO jj = i_j1, i_jpjm1 229 214 DO ji = 1, jpim1 230 215 !- Rate of strain tensor. … … 257 242 258 243 !- Determination of zc1u, zc2u, zc1v and zc2v. 259 DO jj = njmin, njmax244 DO jj = i_j2, i_jpjm1 260 245 DO ji = 2, jpim1 261 246 ze11 = akappa(ji-1,jj-1,1,1) … … 321 306 END DO 322 307 323 DO jj = njmin, njmax308 DO jj = i_j2, i_jpjm1 324 309 DO ji = 2, jpim1 325 310 zc1u(ji,jj) = alambd(ji,jj,2,2,2,1) * zsigm11(ji,jj,2,1) + alambd(ji,jj,2,2,2,2) * zsigm11(ji,jj,2,2) & … … 343 328 END DO 344 329 345 DO jj = njmin, njmax330 DO jj = i_j2, i_jpjm1 346 331 DO ji = 2, jpim1 347 332 ! zc1v , zc2v. … … 409 394 END DO 410 395 411 DO jj = njmin, njmax396 DO jj = i_j2, i_jpjm1 412 397 DO ji = 2, jpim1 413 398 zc1v(ji,jj) = alambd(ji,jj,2,2,2,1) * zsigm11(ji,jj,2,1) + alambd(ji,jj,2,2,2,2) * zsigm11(ji,jj,2,2) & … … 435 420 436 421 ! Store previous drift field. 437 DO jj = njmm1, njmax422 DO jj = i_j1, i_jpjm1 438 423 zu_ice(:,jj) = u_ice(:,jj) 439 424 zv_ice(:,jj) = v_ice(:,jj) 440 425 END DO 441 426 442 DO jj = njmin, njmax427 DO jj = i_j2, i_jpjm1 443 428 DO ji = 2, jpim1 444 429 zur = u_ice(ji,jj) - u_oce(ji,jj) … … 471 456 ! Terms that do not involve already up-dated velocities. 472 457 473 DO jj = njmin, njmax458 DO jj = i_j2, i_jpjm1 474 459 DO ji = 2, jpim1 475 460 iim1 = ji … … 544 529 ! Using arrays u and v in the computation of the terms ze leads to GAUSS-SEIDEL method. 545 530 546 DO jj = njmin, njmax531 DO jj = i_j2, i_jpjm1 547 532 DO ji = 2, jpim1 548 533 iim1 = ji - 1 … … 613 598 !i END DO 614 599 615 !i DO jj = njmin, njmax600 !i DO jj = i_j2, i_jpjm1 616 601 !i DO ji = 2, jpim1 617 602 zd1(ji,jj) = alambd(ji,jj,2,2,2,1) * zsigm11(ji,jj,2,1) + alambd(ji,jj,2,2,2,2) * zsigm11(ji,jj,2,2) & … … 635 620 END DO 636 621 637 DO jj = njmin, njmax622 DO jj = i_j2, i_jpjm1 638 623 DO ji = 2, jpim1 639 624 zunw = ( ( za1(ji,jj) + zd1(ji,jj) ) * zc2(ji,jj) & … … 654 639 655 640 !--- 5.2.5.4. Convergence test. 656 DO jj = njmin , njmax641 DO jj = i_j2 , i_jpjm1 657 642 zresr(:,jj) = MAX( ABS( u_ice(:,jj) - zu_ice(:,jj) ) , ABS( v_ice(:,jj) - zv_ice(:,jj) ) ) 658 643 END DO 659 zresm = MAXVAL( zresr( 1:jpi , njmin:njmax) )644 zresm = MAXVAL( zresr( 1:jpi , i_j2:i_jpjm1 ) ) 660 645 661 646 IF ( zresm <= resl) EXIT iflag … … 664 649 665 650 zindu1 = 1.0 - zindu 666 DO jj = njmm1 , njmax651 DO jj = i_j1 , i_jpjm1 667 652 zu0(:,jj) = zindu * zu0(:,jj) + zindu1 * u_ice(:,jj) 668 653 zv0(:,jj) = zindu * zv0(:,jj) + zindu1 * v_ice(:,jj) -
trunk/NEMO/LIM_SRC/limthd_lac.F90
r3 r12 9 9 !! lim_lat_acr : lateral accretion of ice 10 10 !! * Modules used 11 USE par_oce ! ocean parameters 11 12 USE phycst 12 13 USE ice_oce ! ice variables … … 32 33 CONTAINS 33 34 34 SUBROUTINE lim_thd_lac( kideb , kiut)35 SUBROUTINE lim_thd_lac( kideb, kiut ) 35 36 !!------------------------------------------------------------------- 36 37 !! *** ROUTINE lim_thd_lac *** -
trunk/NEMO/LIM_SRC/limthd_zdf.F90
r3 r12 9 9 !! lim_thd_zdf : vertical accr./abl. and lateral ablation of sea ice 10 10 !! * Modules used 11 USE phycst 12 USE ice_oce ! ice variables 11 USE par_oce ! ocean parameters 12 USE phycst ! ??? 13 USE ice_oce ! ice variables 13 14 USE thd_ice 14 15 USE iceini -
trunk/NEMO/LIM_SRC/limtrp.F90
r3 r12 23 23 USE limadv 24 24 USE limhdf 25 ! USE limdyn26 25 USE lbclnk 27 26 … … 32 31 PUBLIC lim_trp ! called by ice_step 33 32 33 !! * Shared module variables 34 REAL(wp), PUBLIC :: & !: 35 bound = 0.0 !: boundary condit. (0.0 no-slip, 1.0 free-slip) 36 34 37 !! * Module variables 35 REAL(wp), PUBLIC :: &36 bound = 0.0 ! boundary condit. (0.0 no-slip, 1.0 free-slip)37 38 38 REAL(wp) :: & ! constant values 39 39 epsi06 = 1.e-06 , & -
trunk/NEMO/LIM_SRC/par_ice.F90
r3 r12 7 7 USE par_oce 8 8 9 INTEGER, PARAMETER :: & 10 kmax = 1 , & ! ???11 nsmax = 2 ! ???9 INTEGER, PARAMETER :: & !: 10 kmax = 1 , & !: ??? 11 nsmax = 2 !: ??? 12 12 13 13 !!-- Parameter providing the number of vertical ice layers 14 14 15 INTEGER , PARAMETER :: &16 nlayers = 2 , & ! ???17 nlayersp1 = nlayers + 1 ! ???15 INTEGER , PARAMETER :: & !: 16 nlayers = 2 , & !: ??? 17 nlayersp1 = nlayers + 1 !: ??? 18 18 19 19 ! maximum number of variable for output 20 INTEGER, PARAMETER :: & 21 noumax = 40 !???20 INTEGER, PARAMETER :: & !: 21 noumax = 40 !: ??? 22 22 23 23 ! Parameters for outputs to files "evolu" made by routine "informe" : ??? 24 INTEGER, PARAMETER :: & 25 ninfmx = 100 ! maximum number of key variables 26 INTEGER, PARAMETER :: & 27 nchinf = 5 ! ??? 28 INTEGER, PARAMETER :: & 29 nchsep = nchinf + 2 ! ??? 24 INTEGER, PARAMETER :: & !: 25 ninfmx = 100 , & !: maximum number of key variables 26 nchinf = 5 , & !: ??? 27 nchsep = nchinf + 2 !: ??? 30 28 31 29 !!====================================================================== -
trunk/NEMO/LIM_SRC/thd_ice.F90
r3 r12 4 4 !! LIM sea-ice : Ice thermodynamics in 1D 5 5 !!===================================================================== 6 !!7 !! ** Purpose : - Define in memory LIM thermodynamical variables in 1D8 !!9 6 !! History : 10 7 !! 2.0 ! 02-11 (C. Ethe) F90: Free form and module … … 15 12 USE par_ice 16 13 14 IMPLICIT NONE 15 PRIVATE 16 17 17 !! * Share Module variables 18 18 REAL(wp) , PUBLIC :: & !!! ** ice-thermo namelist (namicethd) ** 19 hmelt = -0.15 , & !maximum melting at the bottom20 hicmin = 0.2 , & !ice th. corr. to max. ener. in brine pocket21 hiclim = 0.05 , & !minimum ice thickness22 amax = 0.999 , & !maximum lead fraction23 swiqst = 1.0 , & !energy stored in brine pocket (1) or not (0)24 sbeta = 1.0 , & !numerical scheme for diffusion in ice25 parlat = 0.0 , & !percent. of energy used for lateral ablation26 hakspl = 0.5 , & !slope of distr. for Hakkinen-Mellro's lat. melt27 hibspl = 0.5 , & !slope of distribution for Hibler's lat. melt28 exld = 2.0 , & !exponent for leads-closure rate29 hakdif = 1.0 , & !coefficient for diffusions of ice and snow30 thth = 0.2 , & !thick. for comp. of eq. thermal conduct31 hnzst = 0.1 , & !thick. of the surf. layer in temp. comp.32 parsub = 1.0 , & !switch for snow sublimation or not33 alphs = 1.0 !coef. for snow density when snow-ice formation19 hmelt = -0.15 , & !: maximum melting at the bottom 20 hicmin = 0.2 , & !: ice th. corr. to max. ener. in brine pocket 21 hiclim = 0.05 , & !: minimum ice thickness 22 amax = 0.999 , & !: maximum lead fraction 23 swiqst = 1.0 , & !: energy stored in brine pocket (1) or not (0) 24 sbeta = 1.0 , & !: numerical scheme for diffusion in ice 25 parlat = 0.0 , & !: percent. of energy used for lateral ablation 26 hakspl = 0.5 , & !: slope of distr. for Hakkinen-Mellro's lat. melt 27 hibspl = 0.5 , & !: slope of distribution for Hibler's lat. melt 28 exld = 2.0 , & !: exponent for leads-closure rate 29 hakdif = 1.0 , & !: coefficient for diffusions of ice and snow 30 thth = 0.2 , & !: thick. for comp. of eq. thermal conduct 31 hnzst = 0.1 , & !: thick. of the surf. layer in temp. comp. 32 parsub = 1.0 , & !: switch for snow sublimation or not 33 alphs = 1.0 !: coef. for snow density when snow-ice formation 34 34 35 REAL(wp), PUBLIC, DIMENSION(2) :: & 36 hiccrit = (/0.3,0.3/) !ice th. for lateral accretion in the NH (SH) (m)35 REAL(wp), PUBLIC, DIMENSION(2) :: & !: 36 hiccrit = (/0.3,0.3/) !: ice th. for lateral accretion in the NH (SH) (m) 37 37 38 REAL(wp) , PUBLIC :: & 39 uscomi, & !inverse of minimum lead fraction40 cnscg !ratio rcpsn/rcpic38 REAL(wp) , PUBLIC :: & !: 39 uscomi, & !: inverse of minimum lead fraction 40 cnscg !: ratio rcpsn/rcpic 41 41 42 INTEGER , DIMENSION(jpij) :: &43 npb , & !number of points where computations has to be done44 npac !correspondance between the points42 INTEGER , PUBLIC, DIMENSION(jpij) :: & !: 43 npb , & !: number of points where computations has to be done 44 npac !: correspondance between the points 45 45 46 REAL(wp), DIMENSION(jpij) :: &47 qldif_1d , & ! corresponding to the 2D var qldif48 qcmif_1d , & ! corresponding to the 2D var qcmif49 thcm_1d , & ! " " thcm50 fstbif_1d , & ! " " fstric51 fltbif_1d , & ! " " ffltbif52 fscbq_1d , & ! " " fscmcbq53 qsr_ice_1d , & ! " " qsr_ice54 fr1_i0_1d , & ! " " fr1_i055 fr2_i0_1d , & ! " " fr2_i056 qnsr_ice_1d , & ! " " qns_ice57 qfvbq_1d , & ! " " qfvbq58 sist_1d , & ! " " sist59 tfu_1d , & ! " " tfu60 sprecip_1d , & ! " " sprecip61 h_snow_1d , & ! " " h_snow62 h_ice_1d , & ! " " h_ice63 frld_1d , & ! " " frld64 qstbif_1d , & ! " " qstoif65 fbif_1d , & ! " " fbif66 rdmicif_1d , & ! " " rdmicif67 rdmsnif_1d , & ! " " rdmsnif68 qlbbq_1d , & ! " " qlbsbq69 dmgwi_1d , & ! " " dmgwi70 dvsbq_1d , & ! " " rdvosif71 dvbbq_1d , & ! " " rdvobif72 dvlbq_1d , & ! " " rdvolif73 dvnbq_1d , & ! " " rdvolif74 dqns_ice_1d , & ! " " dqns_ice75 qla_ice_1d , & ! " " qla_ice76 dqla_ice_1d ! " " dqla_ice46 REAL(wp), PUBLIC, DIMENSION(jpij) :: & !: 47 qldif_1d , & !: corresponding to the 2D var qldif 48 qcmif_1d , & !: corresponding to the 2D var qcmif 49 thcm_1d , & !: " " thcm 50 fstbif_1d , & !: " " fstric 51 fltbif_1d , & !: " " ffltbif 52 fscbq_1d , & !: " " fscmcbq 53 qsr_ice_1d , & !: " " qsr_ice 54 fr1_i0_1d , & !: " " fr1_i0 55 fr2_i0_1d , & !: " " fr2_i0 56 qnsr_ice_1d , & !: " " qns_ice 57 qfvbq_1d , & !: " " qfvbq 58 sist_1d , & !: " " sist 59 tfu_1d , & !: " " tfu 60 sprecip_1d , & !: " " sprecip 61 h_snow_1d , & !: " " h_snow 62 h_ice_1d , & !: " " h_ice 63 frld_1d , & !: " " frld 64 qstbif_1d , & !: " " qstoif 65 fbif_1d , & !: " " fbif 66 rdmicif_1d , & !: " " rdmicif 67 rdmsnif_1d , & !: " " rdmsnif 68 qlbbq_1d , & !: " " qlbsbq 69 dmgwi_1d , & !: " " dmgwi 70 dvsbq_1d , & !: " " rdvosif 71 dvbbq_1d , & !: " " rdvobif 72 dvlbq_1d , & !: " " rdvolif 73 dvnbq_1d , & !: " " rdvolif 74 dqns_ice_1d , & !: " " dqns_ice 75 qla_ice_1d , & !: " " qla_ice 76 dqla_ice_1d !: " " dqla_ice 77 77 78 REAL(wp), DIMENSION(jpij,nlayersp1) :: &79 tbif_1d ! corresponding to the 2D var tbif78 REAL(wp), PUBLIC, DIMENSION(jpij,nlayersp1) :: & !: 79 tbif_1d !: corresponding to the 2D var tbif 80 80 81 81 !!======================================================================
Note: See TracChangeset
for help on using the changeset viewer.