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 2319 for branches/nemo_v3_3_beta/NEMOGCM/NEMO/LIM_SRC_2/limdyn_2.F90 – NEMO

Ignore:
Timestamp:
2010-10-27T15:18:11+02:00 (14 years ago)
Author:
cbricaud
Message:

put new EVP rheology lost during the merge

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/nemo_v3_3_beta/NEMOGCM/NEMO/LIM_SRC_2/limdyn_2.F90

    r2287 r2319  
    2222   USE dom_ice_2      ! 
    2323   USE limistate_2    ! 
     24#if defined key_lim2_vp 
    2425   USE limrhg_2       ! ice rheology 
    25  
     26#else 
     27   USE limrhg         ! LIM : EVP ice rheology 
     28#endif 
    2629   USE lbclnk         ! 
    2730   USE lib_mpp        ! 
     
    8790            i_jpj = jpj 
    8891            IF(ln_ctl)   CALL prt_ctl_info( 'lim_dyn  :    i_j1 = ', ivar1=i_j1, clinfo2=' ij_jpj = ', ivar2=i_jpj ) 
    89             CALL lim_rhg_2( i_j1, i_jpj ) 
     92#if defined key_lim2_vp 
     93            CALL lim_rhg_2( i_j1, i_jpj )             !  VP rheology 
     94#else 
     95            CALL lim_rhg  ( i_j1, i_jpj )             ! EVP rheology 
     96#endif 
    9097            ! 
    9198         ELSE                                 ! optimization of the computational area 
     
    105112                  i_j1 = i_j1 + 1 
    106113               END DO 
     114#if defined key_lim2_vp 
    107115               i_j1 = MAX( 1, i_j1-1 ) 
    108116               IF(ln_ctl)   WRITE(numout,*) 'lim_dyn : NH i_j1 = ', i_j1, ' ij_jpj = ', i_jpj 
     
    110118               CALL lim_rhg_2( i_j1, i_jpj ) 
    111119               !  
     120#else 
     121               i_j1 = MAX( 1, i_j1-2 ) 
     122               IF(ln_ctl)   WRITE(numout,*) 'lim_dyn : NH i_j1 = ', i_j1, 'ij_jpj = ', i_jpj 
     123               CALL lim_rhg( i_j1, i_jpj ) 
     124               !  
     125#endif 
    112126               ! Southern hemisphere 
    113127               i_j1  =  1  
     
    116130                  i_jpj = i_jpj - 1 
    117131               END DO 
     132#if defined key_lim2_vp 
    118133               i_jpj = MIN( jpj, i_jpj+2 ) 
    119134               IF(ln_ctl)   WRITE(numout,*) 'lim_dyn : SH i_j1 = ', i_j1, ' ij_jpj = ', i_jpj 
     
    121136               CALL lim_rhg_2( i_j1, i_jpj ) 
    122137               !  
     138#else 
     139               i_jpj = MIN( jpj, i_jpj+1 ) 
     140               IF(ln_ctl)   WRITE(numout,*) 'lim_dyn : SH i_j1 = ', i_j1, 'ij_jpj = ', i_jpj 
     141               CALL lim_rhg( i_j1, i_jpj ) 
     142               !  
     143#endif 
     144 
    123145            ELSE                                 ! local domain extends over one hemisphere only 
    124146               !                                 ! Rheology is computed only over the ice cover 
     
    138160               IF(ln_ctl)   WRITE(numout,*) 'lim_dyn : one hemisphere: i_j1 = ', i_j1, ' ij_jpj = ', i_jpj 
    139161               !  
    140                CALL lim_rhg_2( i_j1, i_jpj ) 
     162#if defined key_lim2_vp 
     163               i_jpj = MIN( jpj, i_jpj+2) 
     164               CALL lim_rhg_2( i_j1, i_jpj )                !  VP rheology 
     165#else 
     166               i_j1 = MAX( 1, i_j1-2 ) 
     167               i_jpj = MIN( jpj, i_jpj+1) 
     168               CALL lim_rhg  ( i_j1, i_jpj )                ! EVP rheology 
     169#endif 
    141170               ! 
    142171            ENDIF 
     
    148177         ! computation of friction velocity 
    149178         ! -------------------------------- 
    150          ! ice-ocean velocity at U & V-points (u_ice v_ice at I-point ; ssu_m, ssv_m at U- & V-points) 
    151           
    152          DO jj = 1, jpjm1 
    153             DO ji = 1, jpim1   ! NO vector opt. 
    154                zu_io(ji,jj) = 0.5 * ( u_ice(ji+1,jj+1) + u_ice(ji+1,jj  ) ) - ssu_m(ji,jj) 
    155                zv_io(ji,jj) = 0.5 * ( v_ice(ji+1,jj+1) + v_ice(ji  ,jj+1) ) - ssv_m(ji,jj) 
    156             END DO 
    157          END DO 
     179         SELECT CASE( cl_grid ) 
     180         CASE( 'C' )       ! C-grid ice dynamics (EVP) 
     181                           ! ice-ocean & ice velocity at  ocean velocity points 
     182            zu_io(:,:) = u_ice(:,:) - ssu_m(:,:)   
     183            zv_io(:,:) = v_ice(:,:) - ssv_m(:,:) 
     184            ! 
     185         CASE( 'B' )       ! B-grid ice dynamics (VP)  
     186                           ! ice-ocean velocity at U & V-points (u_ice v_ice at I-point ; ssu_m, ssv_m at U- & V-points) 
     187            DO jj = 1, jpjm1 
     188               DO ji = 1, jpim1   ! NO vector opt. 
     189                  zu_io(ji,jj) = 0.5 * ( u_ice(ji+1,jj+1) + u_ice(ji+1,jj  ) ) - ssu_m(ji,jj) 
     190                  zv_io(ji,jj) = 0.5 * ( v_ice(ji+1,jj+1) + v_ice(ji  ,jj+1) ) - ssv_m(ji,jj) 
     191               END DO 
     192            END DO 
     193         END SELECT 
     194 
    158195         ! frictional velocity at T-point 
    159196         DO jj = 2, jpjm1 
     
    198235      NAMELIST/namicedyn/ epsd, alpha,     & 
    199236         &                dm, nbiter, nbitdr, om, resl, cw, angvg, pstar,   & 
    200          &                c_rhg, etamn, creepl, ecc, ahi0 
     237         &                c_rhg, etamn, creepl, ecc, ahi0                   & 
     238         &                nevp, telast,alphaevp 
    201239      !!------------------------------------------------------------------- 
    202240 
     
    223261         WRITE(numout,*) '       eccentricity of the elliptical yield curve       ecc    = ', ecc 
    224262         WRITE(numout,*) '       horizontal diffusivity coeff. for sea-ice        ahi0   = ', ahi0 
     263         WRITE(numout,*) '       number of iterations for subcycling nevp   = ', nevp 
     264         WRITE(numout,*) '       timescale for elastic waves telast = ', telast 
     265         WRITE(numout,*) '       coefficient for the solution of int. stresses alphaevp = ', alphaevp 
    225266      ENDIF 
    226267 
Note: See TracChangeset for help on using the changeset viewer.