- Timestamp:
- 2017-09-06T19:02:43+02:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/icestp.F90
r8500 r8505 51 51 USE iceist ! sea-ice: initial state 52 52 USE icethd_sal ! sea-ice: thermodynamics and salinity 53 USE iceitd ! sea-ice: remapping thickness distribution 54 USE icealb ! sea-ice: albedo 53 55 ! 54 56 USE bdy_oce , ONLY : ln_bdy ! flag for bdy … … 285 287 ! END MV MP 2016 286 288 287 IF( ln_limdyn ) CALL ice_rdgrft_init 289 IF( ln_limdyn ) CALL ice_rdgrft_init ! ice thickness distribution initialization for ridging/rafting 288 290 ! ! Initial sea-ice state 289 291 IF( .NOT. ln_rstart ) THEN ! start from rest: sea-ice deduced from sst … … 297 299 CALL ice_update_init ! ice surface boundary condition 298 300 ! 299 IF( ln_limdiahsb) CALL ice_dia_init ! initialization for diags 301 CALL ice_alb_init ! ice surface albedo 302 ! 303 CALL ice_dia_init ! initialization for diags 300 304 ! 301 305 fr_i (:,:) = at_i(:,:) ! initialisation of sea-ice fraction … … 327 331 NAMELIST/namicerun/ jpl, nlay_i, nlay_s, nn_monocat, rn_amax_n, rn_amax_s, cn_icerst_in, cn_icerst_indir, & 328 332 & cn_icerst_out, cn_icerst_outdir, ln_limthd, ln_limdyn, nn_limdyn, rn_uice, rn_vice 329 NAMELIST/namicediag/ ln_limdiachk, ln_limdiahsb, ln_limctl, iiceprt, jiceprt330 333 !!------------------------------------------------------------------- 331 334 ! … … 338 341 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namicerun in configuration namelist', lwp ) 339 342 IF(lwm) WRITE ( numoni, namicerun ) 340 !341 REWIND( numnam_ice_ref ) ! Namelist namicediag in reference namelist : Parameters for ice342 READ ( numnam_ice_ref, namicediag, IOSTAT = ios, ERR = 903)343 903 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namicediag in reference namelist', lwp )344 345 REWIND( numnam_ice_cfg ) ! Namelist namicediag in configuration namelist : Parameters for ice346 READ ( numnam_ice_cfg, namicediag, IOSTAT = ios, ERR = 904 )347 904 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namicediag in configuration namelist', lwp )348 IF(lwm) WRITE ( numoni, namicediag )349 343 ! 350 344 IF(lwp) THEN ! control print … … 366 360 WRITE(numout,*) ' =0 advection only with prescribed velocity given by ' 367 361 WRITE(numout,*) ' a uniform field (u,v)_ice = (rn_uice,rn_vice) = (', rn_uice,',', rn_vice,')' 368 WRITE(numout,*)369 WRITE(numout,*) ' Namelist namicediag : '370 WRITE(numout,*) ' Diagnose online heat/mass/salt budget ln_limdiachk = ', ln_limdiachk371 WRITE(numout,*) ' Output heat/mass/salt budget ln_limdiahsb = ', ln_limdiahsb372 WRITE(numout,*) ' control prints for a given grid point ln_limctl = ', ln_limctl373 WRITE(numout,*) ' chosen grid point position (iiceprt,jiceprt) = (', iiceprt,',', jiceprt,')'374 362 ENDIF 375 363 ! … … 412 400 ! 413 401 END SUBROUTINE ice_run_init 414 415 416 SUBROUTINE ice_itd_init417 !!------------------------------------------------------------------418 !! *** ROUTINE ice_itd_init ***419 !!420 !! ** Purpose : Initializes the ice thickness distribution421 !! ** Method : ...422 !! ** input : Namelist namiceitd423 !!-------------------------------------------------------------------424 INTEGER :: jl ! dummy loop index425 INTEGER :: ios ! Local integer output status for namelist read426 REAL(wp) :: zc1, zc2, zc3, zx1 ! local scalars427 REAL(wp) :: zhmax, znum, zden, zalpha ! - -428 !!429 NAMELIST/namiceitd/ rn_himean430 !!------------------------------------------------------------------431 !432 REWIND( numnam_ice_ref ) ! Namelist namiceitd in reference namelist : Parameters for ice433 READ ( numnam_ice_ref, namiceitd, IOSTAT = ios, ERR = 905)434 905 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namiceitd in reference namelist', lwp )435 436 REWIND( numnam_ice_cfg ) ! Namelist namiceitd in configuration namelist : Parameters for ice437 READ ( numnam_ice_cfg, namiceitd, IOSTAT = ios, ERR = 906 )438 906 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namiceitd in configuration namelist', lwp )439 IF(lwm) WRITE ( numoni, namiceitd )440 !441 IF(lwp) THEN ! control print442 WRITE(numout,*)443 WRITE(numout,*) 'ice_itd_init : Initialization of ice cat distribution '444 WRITE(numout,*) '~~~~~~~~~~~~'445 WRITE(numout,*) ' Namelist namicerun : '446 WRITE(numout,*) ' mean ice thickness in the domain rn_himean = ', rn_himean447 ENDIF448 !449 !-----------------------------------!450 ! Thickness categories boundaries !451 !-----------------------------------!452 !453 zalpha = 0.05_wp ! max of each category (from h^(-alpha) function)454 zhmax = 3._wp * rn_himean455 DO jl = 1, jpl456 znum = jpl * ( zhmax+1 )**zalpha457 zden = REAL( jpl-jl , wp ) * ( zhmax + 1._wp )**zalpha + REAL( jl , wp )458 hi_max(jl) = ( znum / zden )**(1./zalpha) - 1459 END DO460 !461 DO jl = 1, jpl ! mean thickness by category462 hi_mean(jl) = ( hi_max(jl) + hi_max(jl-1) ) * 0.5_wp463 END DO464 !465 hi_max(jpl) = 99._wp ! set to a big value to ensure that all ice is thinner than hi_max(jpl)466 !467 IF(lwp) WRITE(numout,*)468 IF(lwp) WRITE(numout,*) ' ===>>> resulting thickness category boundaries :'469 IF(lwp) WRITE(numout,*) ' hi_max(:)= ', hi_max(0:jpl)470 !471 END SUBROUTINE ice_itd_init472 402 473 403
Note: See TracChangeset
for help on using the changeset viewer.