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/iceitd.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/iceitd.F90

    r8500 r8505  
    3434   PRIVATE 
    3535 
     36   PUBLIC   ice_itd_init  ! called in icestp 
    3637   PUBLIC   ice_itd_rem   ! called in icethd 
    3738   PUBLIC   ice_itd_reb   ! called in iceerr 
     39 
     40   ! ** ice-thickness distribution namelist (namiceitd) ** 
     41   REAL(wp) ::   rn_himean        ! mean thickness of the domain (used to compute the distribution) 
    3842 
    3943   !!---------------------------------------------------------------------- 
     
    181185      ENDIF 
    182186    
    183  
    184187      !----------------------------------------------------------------------------------------------- 
    185188      !  4) Compute g(h)  
     
    636639   END SUBROUTINE ice_itd_reb 
    637640 
     641   SUBROUTINE ice_itd_init 
     642      !!------------------------------------------------------------------ 
     643      !!                ***  ROUTINE ice_itd_init *** 
     644      !! 
     645      !! ** Purpose :   Initializes the ice thickness distribution 
     646      !! ** Method  :   ... 
     647      !! ** input   :   Namelist namiceitd 
     648      !!------------------------------------------------------------------- 
     649      INTEGER  ::   jl    ! dummy loop index 
     650      INTEGER  ::   ios   ! Local integer output status for namelist read 
     651      REAL(wp) ::   zhmax, znum, zden, zalpha   !   -      - 
     652      !! 
     653      NAMELIST/namiceitd/ rn_himean 
     654      !!------------------------------------------------------------------ 
     655      ! 
     656      REWIND( numnam_ice_ref )      ! Namelist namiceitd in reference namelist : Parameters for ice 
     657      READ  ( numnam_ice_ref, namiceitd, IOSTAT = ios, ERR = 901) 
     658901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namiceitd in reference namelist', lwp ) 
     659 
     660      REWIND( numnam_ice_cfg )      ! Namelist namiceitd in configuration namelist : Parameters for ice 
     661      READ  ( numnam_ice_cfg, namiceitd, IOSTAT = ios, ERR = 902 ) 
     662902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namiceitd in configuration namelist', lwp ) 
     663      IF(lwm) WRITE ( numoni, namiceitd ) 
     664      ! 
     665      IF(lwp) THEN                  ! control print 
     666         WRITE(numout,*) 
     667         WRITE(numout,*) 'ice_itd_init : Initialization of ice cat distribution ' 
     668         WRITE(numout,*) '~~~~~~~~~~~~' 
     669         WRITE(numout,*) '   Namelist namicerun : ' 
     670         WRITE(numout,*) '      mean ice thickness in the domain               rn_himean = ', rn_himean 
     671      ENDIF 
     672      ! 
     673      !-----------------------------------! 
     674      !  Thickness categories boundaries  ! 
     675      !-----------------------------------! 
     676      ! 
     677      zalpha = 0.05_wp              ! max of each category (from h^(-alpha) function) 
     678      zhmax  = 3._wp * rn_himean 
     679      DO jl = 1, jpl 
     680         znum = jpl * ( zhmax+1 )**zalpha 
     681         zden = REAL( jpl-jl , wp ) * ( zhmax + 1._wp )**zalpha + REAL( jl , wp ) 
     682         hi_max(jl) = ( znum / zden )**(1./zalpha) - 1 
     683      END DO 
     684      ! 
     685      DO jl = 1, jpl                ! mean thickness by category 
     686         hi_mean(jl) = ( hi_max(jl) + hi_max(jl-1) ) * 0.5_wp 
     687      END DO 
     688      ! 
     689      hi_max(jpl) = 99._wp          ! set to a big value to ensure that all ice is thinner than hi_max(jpl) 
     690      ! 
     691      IF(lwp) WRITE(numout,*) 
     692      IF(lwp) WRITE(numout,*) '   ===>>>   resulting thickness category boundaries :' 
     693      IF(lwp) WRITE(numout,*) '            hi_max(:)= ', hi_max(0:jpl) 
     694      ! 
     695   END SUBROUTINE ice_itd_init 
     696 
    638697#else 
    639698   !!---------------------------------------------------------------------- 
Note: See TracChangeset for help on using the changeset viewer.