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 12928 for NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser/src/ICE/icedyn.F90 – NEMO

Ignore:
Timestamp:
2020-05-14T21:46:00+02:00 (4 years ago)
Author:
smueller
Message:

Synchronizing with /NEMO/trunk@12925 (ticket #2170)

Location:
NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser

    • Property svn:externals
      •  

        old new  
        66^/vendors/FCM@HEAD            ext/FCM 
        77^/vendors/IOIPSL@HEAD         ext/IOIPSL 
         8 
         9# SETTE 
         10^/utils/CI/sette@HEAD         sette 
  • NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser/src/ICE/icedyn.F90

    r12178 r12928  
    5252    
    5353   !! * Substitutions 
    54 #  include "vectopt_loop_substitute.h90" 
     54#  include "do_loop_substitute.h90" 
    5555   !!---------------------------------------------------------------------- 
    5656   !! NEMO/ICE 4.0 , NEMO Consortium (2018) 
     
    6060CONTAINS 
    6161 
    62    SUBROUTINE ice_dyn( kt ) 
     62   SUBROUTINE ice_dyn( kt, Kmm ) 
    6363      !!------------------------------------------------------------------- 
    6464      !!               ***  ROUTINE ice_dyn  *** 
     
    7373      !!-------------------------------------------------------------------- 
    7474      INTEGER, INTENT(in) ::   kt     ! ice time step 
     75      INTEGER, INTENT(in) ::   Kmm    ! ocean time level index 
    7576      !! 
    7677      INTEGER  ::   ji, jj        ! dummy loop indices 
     
    108109      CASE ( np_dynALL )           !==  all dynamical processes  ==! 
    109110         ! 
    110          CALL ice_dyn_rhg   ( kt )                                          ! -- rheology   
     111         CALL ice_dyn_rhg   ( kt, Kmm )                                     ! -- rheology   
    111112         CALL ice_dyn_adv   ( kt )                                          ! -- advection of ice 
    112113         CALL ice_dyn_rdgrft( kt )                                          ! -- ridging/rafting  
     
    115116      CASE ( np_dynRHGADV  )       !==  no ridge/raft & no corrections ==! 
    116117         ! 
    117          CALL ice_dyn_rhg   ( kt )                                          ! -- rheology   
     118         CALL ice_dyn_rhg   ( kt, Kmm )                                     ! -- rheology   
    118119         CALL ice_dyn_adv   ( kt )                                          ! -- advection of ice 
    119120         CALL Hpiling                                                       ! -- simple pile-up (replaces ridging/rafting) 
     
    125126         ! CFL = 0.5 at a distance from the bound of 1/6 of the basin length 
    126127         ! Then for dx = 2m and dt = 1s => rn_uice = u (1/6th) = 1m/s  
    127          DO jj = 1, jpj 
    128             DO ji = 1, jpi 
    129                zcoefu = ( REAL(jpiglo+1)*0.5 - REAL(ji+nimpp-1) ) / ( REAL(jpiglo+1)*0.5 - 1. ) 
    130                zcoefv = ( REAL(jpjglo+1)*0.5 - REAL(jj+njmpp-1) ) / ( REAL(jpjglo+1)*0.5 - 1. ) 
    131                u_ice(ji,jj) = rn_uice * 1.5 * SIGN( 1., zcoefu ) * ABS( zcoefu ) * umask(ji,jj,1) 
    132                v_ice(ji,jj) = rn_vice * 1.5 * SIGN( 1., zcoefv ) * ABS( zcoefv ) * vmask(ji,jj,1) 
    133             END DO 
    134          END DO 
     128         DO_2D_11_11 
     129            zcoefu = ( REAL(jpiglo+1)*0.5 - REAL(ji+nimpp-1) ) / ( REAL(jpiglo+1)*0.5 - 1. ) 
     130            zcoefv = ( REAL(jpjglo+1)*0.5 - REAL(jj+njmpp-1) ) / ( REAL(jpjglo+1)*0.5 - 1. ) 
     131            u_ice(ji,jj) = rn_uice * 1.5 * SIGN( 1., zcoefu ) * ABS( zcoefu ) * umask(ji,jj,1) 
     132            v_ice(ji,jj) = rn_vice * 1.5 * SIGN( 1., zcoefv ) * ABS( zcoefv ) * vmask(ji,jj,1) 
     133         END_2D 
    135134         ! --- 
    136135         CALL ice_dyn_adv   ( kt )                                          ! -- advection of ice 
     
    156155 
    157156            ALLOCATE( zdivu_i(jpi,jpj) ) 
    158             DO jj = 2, jpjm1 
    159                DO ji = 2, jpim1 
    160                   zdivu_i(ji,jj) = ( e2u(ji,jj) * u_ice(ji,jj) - e2u(ji-1,jj) * u_ice(ji-1,jj)   & 
    161                      &             + e1v(ji,jj) * v_ice(ji,jj) - e1v(ji,jj-1) * v_ice(ji,jj-1) ) * r1_e1e2t(ji,jj) 
    162                END DO 
    163             END DO 
     157            DO_2D_00_00 
     158               zdivu_i(ji,jj) = ( e2u(ji,jj) * u_ice(ji,jj) - e2u(ji-1,jj) * u_ice(ji-1,jj)   & 
     159                  &             + e1v(ji,jj) * v_ice(ji,jj) - e1v(ji,jj-1) * v_ice(ji,jj-1) ) * r1_e1e2t(ji,jj) 
     160            END_2D 
    164161            CALL lbc_lnk( 'icedyn', zdivu_i, 'T', 1. ) 
    165162            ! output 
     
    224221      !!------------------------------------------------------------------- 
    225222      ! 
    226       REWIND( numnam_ice_ref )         ! Namelist namdyn in reference namelist : Ice dynamics 
    227223      READ  ( numnam_ice_ref, namdyn, IOSTAT = ios, ERR = 901) 
    228224901   IF( ios /= 0 )   CALL ctl_nam ( ios , 'namdyn in reference namelist' ) 
    229       REWIND( numnam_ice_cfg )         ! Namelist namdyn in configuration namelist : Ice dynamics 
    230225      READ  ( numnam_ice_cfg, namdyn, IOSTAT = ios, ERR = 902 ) 
    231226902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namdyn in configuration namelist' ) 
Note: See TracChangeset for help on using the changeset viewer.