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 9169 for branches/2017/dev_merge_2017/NEMOGCM/NEMO/LIM_SRC_3/icethd_do.F90 – NEMO

Ignore:
Timestamp:
2017-12-26T17:32:56+01:00 (7 years ago)
Author:
gm
Message:

dev_merge_2017: all SRC: finalize the removal of useless warning when reading namelist_cfg + remove all nn_closea + nn_msh replaced by a logical

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/LIM_SRC_3/icethd_do.F90

    r9019 r9169  
    3939   PUBLIC   ice_thd_do_init   ! called by ice_stp 
    4040 
    41    ! ** namelist (namthd_do) ** 
    42    REAL(wp) ::   rn_hinew         ! thickness for new ice formation (m) 
    43    LOGICAL  ::   ln_frazil        ! use of frazil ice collection as function of wind (T) or not (F) 
    44    REAL(wp) ::   rn_maxfraz       ! maximum portion of frazil ice collecting at the ice bottom 
    45    REAL(wp) ::   rn_vfraz         ! threshold drift speed for collection of bottom frazil ice 
    46    REAL(wp) ::   rn_Cfraz         ! squeezing coefficient for collection of bottom frazil ice 
     41   !                          !!** namelist (namthd_do) ** 
     42   REAL(wp) ::   rn_hinew      ! thickness for new ice formation (m) 
     43   LOGICAL  ::   ln_frazil     ! use of frazil ice collection as function of wind (T) or not (F) 
     44   REAL(wp) ::   rn_maxfraz    ! maximum portion of frazil ice collecting at the ice bottom 
     45   REAL(wp) ::   rn_vfraz      ! threshold drift speed for collection of bottom frazil ice 
     46   REAL(wp) ::   rn_Cfraz      ! squeezing coefficient for collection of bottom frazil ice 
    4747 
    4848   !!---------------------------------------------------------------------- 
     
    7878      !!               update h_s_1d, h_i_1d       
    7979      !!------------------------------------------------------------------------ 
    80       INTEGER  ::   ji,jj,jk,jl      ! dummy loop indices 
     80      INTEGER  ::   ji, jj, jk, jl   ! dummy loop indices 
    8181      INTEGER  ::   iter     !   -       - 
    8282      REAL(wp) ::   ztmelts, zfrazb, zweight, zde                          ! local scalars 
    8383      REAL(wp) ::   zgamafr, zvfrx, zvgx, ztaux, ztwogp, zf                     !   -      - 
    8484      REAL(wp) ::   ztenagm, zvfry, zvgy, ztauy, zvrel2, zfp, zsqcd , zhicrit   !   -      - 
    85  
     85      ! 
    8686      REAL(wp) ::   zQm          ! enthalpy exchanged with the ocean (J/m2, >0 towards ocean) 
    8787      REAL(wp) ::   zEi          ! sea ice specific enthalpy (J/kg) 
    8888      REAL(wp) ::   zEw          ! seawater specific enthalpy (J/kg) 
    8989      REAL(wp) ::   zfmdt        ! mass flux x time step (kg/m2, >0 towards ocean) 
    90       
     90      ! 
    9191      REAL(wp) ::   zv_newfra 
    92    
     92      ! 
    9393      INTEGER , DIMENSION(jpij) ::   jcat        ! indexes of categories where new ice grows 
    9494      REAL(wp), DIMENSION(jpij) ::   zswinew     ! switch for new ice or not 
    95  
     95      ! 
    9696      REAL(wp), DIMENSION(jpij) ::   zv_newice   ! volume of accreted ice 
    9797      REAL(wp), DIMENSION(jpij) ::   za_newice   ! fractional area of accreted ice 
     
    104104      REAL(wp), DIMENSION(jpij) ::   zv_frazb    ! accretion of frazil ice at the ice bottom 
    105105      REAL(wp), DIMENSION(jpij) ::   zvrel_1d    ! relative ice / frazil velocity (1D vector) 
    106  
     106      ! 
    107107      REAL(wp), DIMENSION(jpij,jpl) ::   zv_b      ! old volume of ice in category jl 
    108108      REAL(wp), DIMENSION(jpij,jpl) ::   za_b      ! old area of ice in category jl 
    109  
     109      ! 
    110110      REAL(wp), DIMENSION(jpij,nlay_i,jpl) ::   ze_i_2d !: 1-D version of e_i 
    111  
     111      ! 
    112112      REAL(wp), DIMENSION(jpi,jpj) ::   zvrel     ! relative ice / frazil velocity 
    113  
     113      ! 
    114114      REAL(wp) :: zcai = 1.4e-3_wp                     ! ice-air drag (clem: should be dependent on coupling/forcing used) 
    115115      !!-----------------------------------------------------------------------! 
    116116 
    117       IF( ln_icediachk )   CALL ice_cons_hsm(0, 'icethd_do', rdiag_v, rdiag_s, rdiag_t, rdiag_fv, rdiag_fs, rdiag_ft) 
     117      IF( ln_icediachk )   CALL ice_cons_hsm( 0, 'icethd_do', rdiag_v, rdiag_s, rdiag_t, rdiag_fv, rdiag_fs, rdiag_ft ) 
    118118 
    119119      CALL ice_var_agg(1) 
     
    141141 
    142142      IF( ln_frazil ) THEN 
    143  
     143         ! 
    144144         !-------------------- 
    145145         ! Physical constants 
    146146         !-------------------- 
    147147         ht_i_new(:,:) = 0._wp 
    148  
     148         ! 
    149149         zhicrit = 0.04 ! frazil ice thickness 
    150150         ztwogp  = 2. * rau0 / ( grav * 0.3 * ( rau0 - rhoic ) ) ! reduced grav 
    151151         zsqcd   = 1.0 / SQRT( 1.3 * zcai ) ! 1/SQRT(airdensity*drag) 
    152152         zgamafr = 0.03 
    153  
     153         ! 
    154154         DO jj = 2, jpjm1 
    155155            DO ji = 2, jpim1 
     
    204204                     iter = iter + 1 
    205205                  END DO 
    206  
     206                  ! 
    207207               ENDIF ! end of selection of pixels where ice forms 
    208  
     208               ! 
    209209            END DO  
    210210         END DO  
     
    222222      !------------------------------------- 
    223223      ! This occurs if open water energy budget is negative (cooling) and there is no landfast ice 
    224       npti = 0 ; nptidx(:) = 0 
     224      npti = 0   ;  nptidx(:) = 0 
    225225      DO jj = 1, jpj 
    226226         DO ji = 1, jpi 
     
    431431               h_i_old (ji,nlay_i+1) = zv_newfra 
    432432               eh_i_old(ji,nlay_i+1) = ze_newice(ji) * zv_newfra 
    433             ENDDO 
     433            END DO 
    434434            ! --- Ice enthalpy remapping --- ! 
    435435            CALL ice_thd_ent( ze_i_2d(1:npti,:,jl) )  
    436          ENDDO 
     436         END DO 
    437437 
    438438         !----------------- 
     
    474474      ! 
    475475   END SUBROUTINE ice_thd_do 
     476 
    476477 
    477478   SUBROUTINE ice_thd_do_init 
     
    487488      !! ** input   :   Namelist namthd_do 
    488489      !!------------------------------------------------------------------- 
    489       INTEGER  ::   ios   ! Local integer output status for namelist read 
     490      INTEGER  ::   ios   ! Local integer  
    490491      !! 
    491492      NAMELIST/namthd_do/ rn_hinew, ln_frazil, rn_maxfraz, rn_vfraz, rn_Cfraz 
     
    494495      REWIND( numnam_ice_ref )              ! Namelist namthd_do in reference namelist : Ice thermodynamics 
    495496      READ  ( numnam_ice_ref, namthd_do, IOSTAT = ios, ERR = 901) 
    496 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namthd_do in reference namelist', lwp ) 
    497  
     497901   IF( ios /= 0 )   CALL ctl_nam ( ios , 'namthd_do in reference namelist', lwp ) 
    498498      REWIND( numnam_ice_cfg )              ! Namelist namthd_do in configuration namelist : Ice thermodynamics 
    499499      READ  ( numnam_ice_cfg, namthd_do, IOSTAT = ios, ERR = 902 ) 
    500 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namthd_do in configuration namelist', lwp ) 
    501       IF(lwm) WRITE ( numoni, namthd_do ) 
    502       ! 
     500902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namthd_do in configuration namelist', lwp ) 
     501      IF(lwm) WRITE( numoni, namthd_do ) 
    503502      ! 
    504503      IF(lwp) THEN                          ! control print 
     504         WRITE(numout,*) 
    505505         WRITE(numout,*) 'ice_thd_do_init: Ice growth in open water' 
    506506         WRITE(numout,*) '~~~~~~~~~~~~~~~' 
Note: See TracChangeset for help on using the changeset viewer.