New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 8505 for branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/icestp.F90 – NEMO

Ignore:
Timestamp:
2017-09-06T19:02:43+02:00 (7 years ago)
Author:
clem
Message:

changes in style - part5 - start changing init routines

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/icestp.F90

    r8500 r8505  
    5151   USE iceist         ! sea-ice: initial state 
    5252   USE icethd_sal     ! sea-ice: thermodynamics and salinity 
     53   USE iceitd         ! sea-ice: remapping thickness distribution 
     54   USE icealb         ! sea-ice: albedo 
    5355   ! 
    5456   USE bdy_oce , ONLY : ln_bdy   ! flag for bdy 
     
    285287      ! END MV MP 2016 
    286288 
    287       IF( ln_limdyn )   CALL ice_rdgrft_init             ! ice thickness distribution initialization for ridging/rafting 
     289      IF( ln_limdyn )   CALL ice_rdgrft_init  ! ice thickness distribution initialization for ridging/rafting 
    288290      !                                ! Initial sea-ice state 
    289291      IF( .NOT. ln_rstart ) THEN              ! start from rest: sea-ice deduced from sst 
     
    297299      CALL ice_update_init                 ! ice surface boundary condition 
    298300      ! 
    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 
    300304      ! 
    301305      fr_i  (:,:)   = at_i(:,:)         ! initialisation of sea-ice fraction 
     
    327331      NAMELIST/namicerun/ jpl, nlay_i, nlay_s, nn_monocat, rn_amax_n, rn_amax_s, cn_icerst_in, cn_icerst_indir,   & 
    328332         &                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, jiceprt   
    330333      !!------------------------------------------------------------------- 
    331334      ! 
     
    338341902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namicerun in configuration namelist', lwp ) 
    339342      IF(lwm) WRITE ( numoni, namicerun ) 
    340       ! 
    341       REWIND( numnam_ice_ref )      ! Namelist namicediag in reference namelist : Parameters for ice 
    342       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 ice 
    346       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 ) 
    349343      ! 
    350344      IF(lwp) THEN                  ! control print 
     
    366360         WRITE(numout,*) '            =0 advection only with prescribed velocity given by ' 
    367361         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_limdiachk 
    371          WRITE(numout,*) '      Output          heat/mass/salt budget      ln_limdiahsb = ', ln_limdiahsb 
    372          WRITE(numout,*) '      control prints for a given grid point         ln_limctl = ', ln_limctl 
    373          WRITE(numout,*) '         chosen grid point position         (iiceprt,jiceprt) = (', iiceprt,',', jiceprt,')' 
    374362      ENDIF 
    375363      ! 
     
    412400      ! 
    413401   END SUBROUTINE ice_run_init 
    414  
    415  
    416    SUBROUTINE ice_itd_init 
    417       !!------------------------------------------------------------------ 
    418       !!                ***  ROUTINE ice_itd_init *** 
    419       !! 
    420       !! ** Purpose :   Initializes the ice thickness distribution 
    421       !! ** Method  :   ... 
    422       !! ** input   :   Namelist namiceitd 
    423       !!------------------------------------------------------------------- 
    424       INTEGER  ::   jl    ! dummy loop index 
    425       INTEGER  ::   ios   ! Local integer output status for namelist read 
    426       REAL(wp) ::   zc1, zc2, zc3, zx1          ! local scalars 
    427       REAL(wp) ::   zhmax, znum, zden, zalpha   !   -      - 
    428       !! 
    429       NAMELIST/namiceitd/ rn_himean 
    430       !!------------------------------------------------------------------ 
    431       ! 
    432       REWIND( numnam_ice_ref )      ! Namelist namiceitd in reference namelist : Parameters for ice 
    433       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 ice 
    437       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 print 
    442          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_himean 
    447       ENDIF 
    448       ! 
    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_himean 
    455       DO jl = 1, jpl 
    456          znum = jpl * ( zhmax+1 )**zalpha 
    457          zden = REAL( jpl-jl , wp ) * ( zhmax + 1._wp )**zalpha + REAL( jl , wp ) 
    458          hi_max(jl) = ( znum / zden )**(1./zalpha) - 1 
    459       END DO 
    460       ! 
    461       DO jl = 1, jpl                ! mean thickness by category 
    462          hi_mean(jl) = ( hi_max(jl) + hi_max(jl-1) ) * 0.5_wp 
    463       END DO 
    464       ! 
    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_init 
    472402 
    473403 
Note: See TracChangeset for help on using the changeset viewer.