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 10267 for NEMO/branches/2018/dev_r9947_SI3_advection/src/ICE/icedyn.F90 – NEMO

Ignore:
Timestamp:
2018-10-31T19:09:43+01:00 (5 years ago)
Author:
clem
Message:

improve ice thickness after advection (advection of H using u*a from advection of concentration)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2018/dev_r9947_SI3_advection/src/ICE/icedyn.F90

    r9604 r10267  
    7171      INTEGER, INTENT(in) ::   kt     ! ice time step 
    7272      !! 
    73       INTEGER ::   ji, jj, jl         ! dummy loop indices 
    74       REAL(wp), DIMENSION(jpi,jpj,jpl) ::   zhmax 
     73      INTEGER  ::   ji, jj, jl        ! dummy loop indices 
     74      REAL(wp) ::   zcoefu, zcoefv 
     75      REAL(wp),              DIMENSION(jpi,jpj,jpl) ::   zhmax 
     76      REAL(wp), ALLOCATABLE, DIMENSION(:,:)         ::   zdivu_i 
    7577      !!-------------------------------------------------------------------- 
    7678      ! 
     
    118120 
    119121      CASE ( np_dynADV )           !==  pure advection ==!   (prescribed velocities) 
     122         ALLOCATE( zdivu_i(jpi,jpj) ) 
     123 
    120124         u_ice(:,:) = rn_uice * umask(:,:,1) 
    121125         v_ice(:,:) = rn_vice * vmask(:,:,1) 
    122          !!CALL RANDOM_NUMBER(u_ice(:,:)) 
    123          !!CALL RANDOM_NUMBER(v_ice(:,:)) 
     126         !CALL RANDOM_NUMBER(u_ice(:,:)) ; u_ice(:,:) = u_ice(:,:) * 0.1 + rn_uice * 0.9 * umask(:,:,1) 
     127         !CALL RANDOM_NUMBER(v_ice(:,:)) ; v_ice(:,:) = v_ice(:,:) * 0.1 + rn_vice * 0.9 * vmask(:,:,1) 
     128         ! --- monotonicity test from Lipscomb et al 2004 --- ! 
     129         ! CFL = 0.5 at a distance from the bound of 1/6 of the basin length 
     130         ! Then for dx = 2m and dt = 1s => rn_uice = u (1/6th) = 1m/s  
     131         !DO jj = 1, jpj 
     132         !   DO ji = 1, jpi 
     133         !      zcoefu = ( REAL(jpiglo+1)*0.5 - REAL(ji+nimpp-1) ) / ( REAL(jpiglo+1)*0.5 - 1. ) 
     134         !      zcoefv = ( REAL(jpjglo+1)*0.5 - REAL(jj+njmpp-1) ) / ( REAL(jpjglo+1)*0.5 - 1. ) 
     135         !      u_ice(ji,jj) = rn_uice * 1.5 * SIGN( 1., zcoefu ) * ABS( zcoefu ) * umask(ji,jj,1) 
     136         !      v_ice(ji,jj) = rn_vice * 1.5 * SIGN( 1., zcoefv ) * ABS( zcoefv ) * vmask(ji,jj,1) 
     137         !   END DO 
     138         !END DO 
     139         ! --- 
    124140         CALL ice_dyn_adv   ( kt )                            ! -- advection of ice 
     141 
     142         ! diagnostics: divergence at T points  
     143         DO jj = 2, jpjm1 
     144            DO ji = 2, jpim1 
     145               zdivu_i(ji,jj) = ( e2u(ji,jj) * u_ice(ji,jj) - e2u(ji-1,jj) * u_ice(ji-1,jj)   & 
     146                  &             + e1v(ji,jj) * v_ice(ji,jj) - e1v(ji,jj-1) * v_ice(ji,jj-1) ) * r1_e1e2t(ji,jj) 
     147            END DO 
     148         END DO 
     149         CALL lbc_lnk( zdivu_i, 'T', 1. ) 
     150         IF( iom_use('icediv') )   CALL iom_put( "icediv" , zdivu_i(:,:) ) 
     151 
     152         DEALLOCATE( zdivu_i ) 
    125153 
    126154      END SELECT 
Note: See TracChangeset for help on using the changeset viewer.