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 5134 for trunk/NEMOGCM/NEMO/LIM_SRC_3/limupdate2.F90 – NEMO

Ignore:
Timestamp:
2015-03-09T18:27:34+01:00 (9 years ago)
Author:
clem
Message:

LIM3: changes to constrain ice thickness after advection. Ice volume and concentration are advected while ice thickness is deduced. This could result in overly high thicknesses associated with very low concentrations (in the 5th category)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/NEMO/LIM_SRC_3/limupdate2.F90

    r5128 r5134  
    5656      INTEGER, INTENT(in) ::   kt    ! number of iteration 
    5757      INTEGER  ::   ji, jj, jk, jl   ! dummy loop indices 
    58       REAL(wp) ::   zh, zsal 
     58      REAL(wp) ::   zsal 
    5959      REAL(wp) ::   zvi_b, zsmv_b, zei_b, zfs_b, zfw_b, zft_b  
    6060      !!------------------------------------------------------------------- 
     
    6969      IF( ln_limdiahsb ) CALL lim_cons_hsm(0, 'limupdate2', zvi_b, zsmv_b, zei_b, zfw_b, zfs_b, zft_b) 
    7070 
    71       !----------------- 
    72       ! zap small values 
    73       !----------------- 
    74       CALL lim_var_agg( 1 ) 
    75       CALL lim_var_zapsmall 
    76       CALL lim_var_glo2eqv 
    77  
    78       !---------------------------------------------------- 
    79       ! Rebin categories with thickness out of bounds 
    80       !---------------------------------------------------- 
    81       IF ( jpl > 1 )   CALL lim_itd_th_reb(1, jpl) 
    82  
    8371      !---------------------------------------------------------------------- 
    8472      ! Constrain the thickness of the smallest category above himin 
    8573      !---------------------------------------------------------------------- 
     74      CALL lim_var_glo2eqv 
    8675      DO jj = 1, jpj  
    8776         DO ji = 1, jpi 
    8877            IF( v_i(ji,jj,1) > 0._wp .AND. ht_i(ji,jj,1) < rn_himin ) THEN 
    89                zh             = rn_himin / ht_i(ji,jj,1) 
    90                ht_s(ji,jj,1) = ht_s(ji,jj,1) * zh 
    91                ht_i(ji,jj,1) = ht_i(ji,jj,1) * zh 
    92                a_i (ji,jj,1) = a_i(ji,jj,1)  / zh 
     78               a_i (ji,jj,1) = a_i(ji,jj,1) * ht_i(ji,jj,1) / rn_himin 
    9379            ENDIF 
    9480         END DO 
     
    10894               IF( at_i(ji,jj) > rn_amax .AND. a_i(ji,jj,jl) > 0._wp ) THEN 
    10995                  a_i(ji,jj,jl)  = a_i(ji,jj,jl) * ( 1._wp - ( 1._wp - rn_amax / at_i(ji,jj) ) ) 
    110                   ht_i(ji,jj,jl) = v_i(ji,jj,jl) / a_i(ji,jj,jl) 
    11196               ENDIF 
    11297            END DO 
     
    11499      END DO 
    115100 
    116       at_i(:,:) = 0.0 
    117       DO jl = 1, jpl 
    118          at_i(:,:) = a_i(:,:,jl) + at_i(:,:) 
    119       END DO 
    120  
    121       ! -------------------------------------- 
    122       ! Final thickness distribution rebinning 
    123       ! -------------------------------------- 
     101      !---------------------------------------------------- 
     102      ! Rebin categories with thickness out of bounds 
     103      !---------------------------------------------------- 
    124104      IF ( jpl > 1 ) CALL lim_itd_th_reb( 1, jpl ) 
    125105 
     
    140120                  ! salinity stays in bounds 
    141121                  rswitch         = 1._wp - MAX( 0._wp, SIGN( 1._wp, - v_i(ji,jj,jl) ) ) 
    142                   smv_i(ji,jj,jl) = rswitch * MAX( MIN( rn_simax * v_i(ji,jj,jl), smv_i(ji,jj,jl) ), rn_simin * v_i(ji,jj,jl) ) !+ rn_simin * ( 1._wp - rswitch ) * v_i(ji,jj,jl) 
     122                  smv_i(ji,jj,jl) = rswitch * MAX( MIN( rn_simax * v_i(ji,jj,jl), smv_i(ji,jj,jl) ), rn_simin * v_i(ji,jj,jl) ) 
    143123                  ! associated salt flux 
    144124                  sfx_res(ji,jj) = sfx_res(ji,jj) - ( smv_i(ji,jj,jl) - zsal ) * rhoic * r1_rdtice 
    145                END DO ! ji 
    146             END DO ! jj 
    147          END DO !jl 
     125               END DO 
     126            END DO 
     127         END DO 
    148128      ENDIF 
    149129 
Note: See TracChangeset for help on using the changeset viewer.