Changeset 834 for trunk/NEMO/LIM_SRC_3/iceini.F90
- Timestamp:
- 2008-03-07T18:11:35+01:00 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/LIM_SRC_3/iceini.F90
r830 r834 22 22 USE par_ice 23 23 USE limvar 24 USE limicepoints25 24 26 25 IMPLICIT NONE … … 51 50 !!---------------------------------------------------------------------- 52 51 !! LIM 2.0, UCL-LOCEAN-IPSL (2005) 52 !! LIM 3.0, UCL-ASTR-LOCEAN-IPSL (2008) 53 53 !! $Header: /home/opalod/NEMOCVSROOT/NEMO/LIM_SRC/iceini.F90,v 1.4 2005/03/27 18:34:41 opalod Exp $ 54 54 !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt … … 64 64 !! 65 65 !! History : 66 !! 8.5 ! 02-08 (G. Madec) F90: Free form and modules 66 !! 2.0 ! 02-08 (G. Madec) F90: Free form and modules 67 !! 3.0 ! 08-03 (M. Vancop) ITD, salinity, EVP-C 67 68 !!---------------------------------------------------------------------- 68 69 INTEGER :: ji,jj,jk,jl, index70 69 71 70 ! Open the namelist file … … 73 72 74 73 CALL ice_run ! read in namelist some run parameters 75 76 CALL lim_icepoints ! define specific checking ice points77 74 78 75 ! Louvain la Neuve Ice model … … 87 84 CALL lim_msh ! ice mesh initialization 88 85 89 CALL lim_itd_ini 86 CALL lim_itd_ini ! initialize the ice thickness 87 ! distribution 90 88 ! Initial sea-ice state 91 89 IF( .NOT.ln_rstart ) THEN 92 90 numit = 0 93 ! martin ajoute94 91 numit = nit000 - 1 95 92 CALL lim_istate ! start from rest: sea-ice deduced from sst 96 CALL lim_var_agg(1) 97 CALL lim_var_glo2eqv 93 CALL lim_var_agg(1) ! aggregate category variables in 94 ! bulk variables 95 CALL lim_var_glo2eqv ! convert global variables in equivalent 96 ! variables 98 97 ELSE 99 98 CALL lim_rst_read( numit ) ! start from a restart file 100 ! martin ajoute101 99 numit = nit000 - 1 102 CALL lim_var_agg(1) 103 CALL lim_var_glo2eqv 100 CALL lim_var_agg(1) ! aggregate ice variables 101 CALL lim_var_glo2eqv ! convert global var in equivalent variables 104 102 ENDIF 105 103 … … 130 128 !! history : 131 129 !! 2.0 ! 03-08 (C. Ethe) Original code 130 !! 3.0 ! 08-03 (M. Vancop) LIM3 132 131 !!------------------------------------------------------------------- 133 132 NAMELIST/namicerun/ ln_limdyn, acrit, hsndif, hicdif, cai, cao, ln_nicep … … 158 157 !! Initializes the ice thickness distribution 159 158 !! ** Method : 160 !! Very simple 159 !! Very simple. Currently there are no ice types in the 160 !! model... 161 161 !! 162 162 !! ** Arguments : … … 172 172 !! ** History : 173 173 !! (12-2005) Martin Vancoppenolle 174 !! Rien n'est jamais acquis175 !! A l'homme ni sa force176 !! Ni sa faiblesse ni son coeur177 !! Et quand il croit178 !! Ouvrir ses bras son ombre179 !! Est celle d'une croix180 174 !! 181 175 !!------------------------------------------------------------------ … … 183 177 184 178 !! * Local variables 185 INTEGER :: ji, & ! spatial dummy loop index 186 jl, & ! ice category dummy loop index 179 INTEGER :: jl, & ! ice category dummy loop index 187 180 jm ! ice types dummy loop index 188 181 … … 198 191 199 192 !!-- End of declarations 200 !!---------------------------------------------------------------------------------------------- 201 202 !--------------------------------------------------------------------------------------------------! 203 ! 1) Ice thickness distribution parameters initialization ! 204 !--------------------------------------------------------------------------------------------------! 205 206 !- Types boundaries in integer thickness space 207 !---------------------------------------------- 208 !- Type 1 (undeformed ice) Boundaries 193 !!------------------------------------------------------------------------------ 194 195 !------------------------------------------------------------------------------! 196 ! 1) Ice thickness distribution parameters initialization 197 !------------------------------------------------------------------------------! 198 199 !- Types boundaries (integer) 200 !---------------------------- 209 201 ice_cat_bounds(1,1) = 1 210 202 ice_cat_bounds(1,2) = jpl 211 ! !- Type 2 (ridged ice ) Boundaries212 ! ice_cat_bounds(2,1) = 4213 ! ice_cat_bounds(2,2) = 5214 ! !- Type 3 (rafted ice ) Boundaries215 ! ice_cat_bounds(3,1) = 6216 ! ice_cat_bounds(3,2) = 6217 203 218 204 !- Number of ice thickness categories in each ice type … … 223 209 !- Make the correspondence between thickness categories and ice types 224 210 !--------------------------------------------------------------------- 225 !- ice_types = 1 -> undeformed ice226 !- ice_types = 2 -> ridged ice227 !- ice_types = 3 -> rafted ice228 211 DO jm = 1, jpm !over types 229 212 DO jl = ice_cat_bounds(jm,1), ice_cat_bounds(jm,2) !over thickness categories … … 242 225 WRITE(numout,*) 243 226 244 !- Thickness categories boundaries in thickness space 245 !--------------------------------------------------------------------- 246 247 ! NEW DEFINITION 248 249 hi_max(:) = 0.0 250 hi_max_typ(:,:) = 0.0 251 252 ! new categories 253 ! !- Type 3 - rafted ice 254 ! hi_max(ice_cat_bounds(3,2)) = 5.0 255 256 ! !- Type 2 - ridged ice 257 ! zc1 = 3./REAL(ice_cat_bounds(2,2)-ice_cat_bounds(2,1)+1) 258 ! zc2 = 10.0*zc1 259 ! zc3 = 3.0 260 261 ! DO jl = ice_cat_bounds(2,1),ice_cat_bounds(2,2) 262 ! zx1 = REAL(jl-ice_cat_bounds(2,1)+1) / REAL(ice_cat_bounds(2,2)-ice_cat_bounds(2,1)+1) 263 ! hi_max(jl) = hi_max(jl-1) + zc1 + zc2 * (1.0 + TANH ( zc3 * (zx1 - 1.0 ) ) ) 264 ! END DO 265 266 ! ! force the thickness into the ice categories 267 ! hi_max(ice_cat_bounds(2,1)) = 15.0 268 ! hi_max(ice_cat_bounds(2,2)) = 25.0 227 !- Thickness categories boundaries 228 !---------------------------------- 229 hi_max(:) = 0.0 230 hi_max_typ(:,:) = 0.0 269 231 270 232 !- Type 1 - undeformed ice 271 272 273 274 275 276 277 278 233 zc1 = 3./REAL(ice_cat_bounds(1,2)-ice_cat_bounds(1,1)+1) 234 zc2 = 10.0*zc1 235 zc3 = 3.0 236 237 DO jl = ice_cat_bounds(1,1), ice_cat_bounds(1,2) 238 zx1 = REAL(jl-1) / REAL(ice_cat_bounds(1,2)-ice_cat_bounds(1,1)+1) 239 hi_max(jl) = hi_max(jl-1) + zc1 + zc2 * (1.0 + TANH ( zc3 * (zx1 - 1.0 ) ) ) 240 END DO 279 241 280 242 !- Fill in the hi_max_typ vector, useful in other circumstances 281 DO jl = ice_cat_bounds(1,1), ice_cat_bounds(1,2) 282 hi_max_typ(jl,1) = hi_max(jl) 283 END DO 284 ! DO jl = ice_cat_bounds(2,1), ice_cat_bounds(2,2) 285 ! hi_max_typ(jl-ice_cat_bounds(2,1)+1,2) = hi_max(jl) 286 ! END DO 287 ! DO jl = ice_cat_bounds(3,1), ice_cat_bounds(3,2) 288 ! hi_max_typ(jl-ice_cat_bounds(3,1)+1,3) = hi_max(jl) 289 ! END DO 290 291 WRITE(numout,*) ' Thickness category boundaries independently of ice type ' 292 WRITE(numout,*) ' hi_max ', hi_max(0:jpl) 293 294 WRITE(numout,*) ' Thickness category boundaries inside ice types ' 295 DO jm = 1, jpm 296 WRITE(numout,*) ' Type number ', jm 297 WRITE(numout,*) ' hi_max_typ : ', hi_max_typ(0:ice_ncat_types(jm),jm) 298 END DO 299 300 DO jl = 1, jpl 301 hi_mean(jl) = ( hi_max(jl) + hi_max(jl-1) ) / 2.0 302 END DO 303 304 tn_ice(:,:,:) = t_su(:,:,:) 243 DO jl = ice_cat_bounds(1,1), ice_cat_bounds(1,2) 244 hi_max_typ(jl,1) = hi_max(jl) 245 END DO 246 247 WRITE(numout,*) ' Thickness category boundaries independently of ice type ' 248 WRITE(numout,*) ' hi_max ', hi_max(0:jpl) 249 250 WRITE(numout,*) ' Thickness category boundaries inside ice types ' 251 DO jm = 1, jpm 252 WRITE(numout,*) ' Type number ', jm 253 WRITE(numout,*) ' hi_max_typ : ', hi_max_typ(0:ice_ncat_types(jm),jm) 254 END DO 255 256 DO jl = 1, jpl 257 hi_mean(jl) = ( hi_max(jl) + hi_max(jl-1) ) / 2.0 258 END DO 259 260 tn_ice(:,:,:) = t_su(:,:,:) 305 261 306 262 END SUBROUTINE lim_itd_ini
Note: See TracChangeset
for help on using the changeset viewer.