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

Ignore:
Timestamp:
2014-11-18T18:03:00+01:00 (9 years ago)
Author:
clem
Message:

LIM3: replacing old_ by _b

File:
1 edited

Legend:

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

    r4869 r4872  
    166166      REAL(wp), POINTER, DIMENSION(:,:,:) ::   hL          ! left boundary for the ITD for each thickness 
    167167      REAL(wp), POINTER, DIMENSION(:,:,:) ::   hR          ! left boundary for the ITD for each thickness 
    168       REAL(wp), POINTER, DIMENSION(:,:,:) ::   zht_i_o     ! old ice thickness 
     168      REAL(wp), POINTER, DIMENSION(:,:,:) ::   zht_i_b     ! old ice thickness 
    169169      REAL(wp), POINTER, DIMENSION(:,:,:) ::   dummy_es 
    170170      REAL(wp), POINTER, DIMENSION(:,:,:) ::   zdaice, zdvice          ! local increment of ice area and volume 
     
    184184      CALL wrk_alloc( jpi,jpj, zremap_flag )    ! integer 
    185185      CALL wrk_alloc( jpi,jpj,jpl-1, zdonor )   ! integer 
    186       CALL wrk_alloc( jpi,jpj,jpl, zdhice, g0, g1, hL, hR, zht_i_o, dummy_es ) 
     186      CALL wrk_alloc( jpi,jpj,jpl, zdhice, g0, g1, hL, hR, zht_i_b, dummy_es ) 
    187187      CALL wrk_alloc( jpi,jpj,jpl-1, zdaice, zdvice )    
    188188      CALL wrk_alloc( jpi,jpj,jpl+1, zhbnew, kkstart = 0 )    
     
    221221               zindb             = 1.0 - MAX( 0.0, SIGN( 1.0, - a_i(ji,jj,jl) + epsi10 ) )     !0 if no ice and 1 if yes 
    222222               ht_i(ji,jj,jl)    = v_i(ji,jj,jl) / MAX( a_i(ji,jj,jl), epsi10 ) * zindb 
    223                zindb             = 1.0 - MAX( 0.0, SIGN( 1.0, - old_a_i(ji,jj,jl) + epsi10) ) !0 if no ice and 1 if yes 
    224                zht_i_o(ji,jj,jl) = old_v_i(ji,jj,jl) / MAX( old_a_i(ji,jj,jl), epsi10 ) * zindb 
    225                IF( a_i(ji,jj,jl) > epsi10 )   zdhice(ji,jj,jl) = ht_i(ji,jj,jl) - zht_i_o(ji,jj,jl)  
     223               zindb             = 1.0 - MAX( 0.0, SIGN( 1.0, - a_i_b(ji,jj,jl) + epsi10) ) !0 if no ice and 1 if yes 
     224               zht_i_b(ji,jj,jl) = v_i_b(ji,jj,jl) / MAX( a_i_b(ji,jj,jl), epsi10 ) * zindb 
     225               IF( a_i(ji,jj,jl) > epsi10 )   zdhice(ji,jj,jl) = ht_i(ji,jj,jl) - zht_i_b(ji,jj,jl)  
    226226            END DO 
    227227         END DO 
     
    268268            ! 
    269269            zhbnew(ii,ij,jl) = hi_max(jl) 
    270             IF ( old_a_i(ii,ij,jl) > epsi10 .AND. old_a_i(ii,ij,jl+1) > epsi10 ) THEN 
     270            IF ( a_i_b(ii,ij,jl) > epsi10 .AND. a_i_b(ii,ij,jl+1) > epsi10 ) THEN 
    271271               !interpolate between adjacent category growth rates 
    272                zslope           = ( zdhice(ii,ij,jl+1) - zdhice(ii,ij,jl) ) / ( zht_i_o(ii,ij,jl+1) - zht_i_o(ii,ij,jl) ) 
    273                zhbnew(ii,ij,jl) = hi_max(jl) + zdhice(ii,ij,jl) + zslope * ( hi_max(jl) - zht_i_o(ii,ij,jl) ) 
    274             ELSEIF ( old_a_i(ii,ij,jl) > epsi10) THEN 
     272               zslope           = ( zdhice(ii,ij,jl+1) - zdhice(ii,ij,jl) ) / ( zht_i_b(ii,ij,jl+1) - zht_i_b(ii,ij,jl) ) 
     273               zhbnew(ii,ij,jl) = hi_max(jl) + zdhice(ii,ij,jl) + zslope * ( hi_max(jl) - zht_i_b(ii,ij,jl) ) 
     274            ELSEIF ( a_i_b(ii,ij,jl) > epsi10) THEN 
    275275               zhbnew(ii,ij,jl) = hi_max(jl) + zdhice(ii,ij,jl) 
    276             ELSEIF ( old_a_i(ii,ij,jl+1) > epsi10) THEN 
     276            ELSEIF ( a_i_b(ii,ij,jl+1) > epsi10) THEN 
    277277               zhbnew(ii,ij,jl) = hi_max(jl) + zdhice(ii,ij,jl+1) 
    278278            ENDIF 
     
    337337      !----------------------------------------------------------------------------------------------- 
    338338      !- 7.1 g(h) for category 1 at start of time step 
    339       CALL lim_itd_fitline( klbnd, zhb0, zhb1, zht_i_o(:,:,klbnd),         & 
     339      CALL lim_itd_fitline( klbnd, zhb0, zhb1, zht_i_b(:,:,klbnd),         & 
    340340         &                  g0(:,:,klbnd), g1(:,:,klbnd), hL(:,:,klbnd),   & 
    341341         &                  hR(:,:,klbnd), zremap_flag ) 
     
    362362                  ! Constrain new thickness <= ht_i 
    363363                  zdamax = a_i(ii,ij,klbnd) * &  
    364                      (1.0 - ht_i(ii,ij,klbnd)/zht_i_o(ii,ij,klbnd)) ! zdamax > 0 
     364                     (1.0 - ht_i(ii,ij,klbnd)/zht_i_b(ii,ij,klbnd)) ! zdamax > 0 
    365365                  !ice area lost due to melting of thin ice 
    366366                  zda0   = MIN(zda0, zdamax) 
     
    484484      CALL wrk_dealloc( jpi,jpj, zremap_flag )    ! integer 
    485485      CALL wrk_dealloc( jpi,jpj,jpl-1, zdonor )   ! integer 
    486       CALL wrk_dealloc( jpi,jpj,jpl, zdhice, g0, g1, hL, hR, zht_i_o, dummy_es ) 
     486      CALL wrk_dealloc( jpi,jpj,jpl, zdhice, g0, g1, hL, hR, zht_i_b, dummy_es ) 
    487487      CALL wrk_dealloc( jpi,jpj,jpl-1, zdaice, zdvice )    
    488488      CALL wrk_dealloc( jpi,jpj,jpl+1, zhbnew, kkstart = 0 )    
Note: See TracChangeset for help on using the changeset viewer.