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 15033 for NEMO/trunk/src/OCE/TRD/trdvor.F90 – NEMO

Ignore:
Timestamp:
2021-06-21T12:24:45+02:00 (3 years ago)
Author:
smasson
Message:

trunk: suppress jpim1 et jpjm1, #2699

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/src/OCE/TRD/trdvor.F90

    r14433 r15033  
    9595      !!---------------------------------------------------------------------- 
    9696 
     97      CALL lbc_lnk( 'trdvor', putrd, 'U', -1.0_wp , pvtrd, 'V', -1.0_wp )      ! lateral boundary condition 
     98 
    9799      SELECT CASE( ktrd )  
    98100      CASE( jpdyn_hpg )   ;   CALL trd_vor_zint( putrd, pvtrd, jpvor_prg, Kmm )   ! Hydrostatique Pressure Gradient  
     
    104106      CASE( jpdyn_spg )   ;   CALL trd_vor_zint( putrd, pvtrd, jpvor_spg, Kmm )   ! Surface Pressure Grad.  
    105107      CASE( jpdyn_zdf )                                                           ! Vertical Diffusion  
    106          ztswu(:,:) = 0.e0   ;   ztswv(:,:) = 0.e0 
    107          DO_2D( 0, 0, 0, 0 )                                                               ! wind stress trends 
     108         DO_2D( nn_hls, nn_hls, nn_hls, nn_hls )                                                               ! wind stress trends 
    108109            ztswu(ji,jj) = 0.5 * ( utau_b(ji,jj) + utau(ji,jj) ) / ( e3u(ji,jj,1,Kmm) * rho0 ) 
    109110            ztswv(ji,jj) = 0.5 * ( vtau_b(ji,jj) + vtau(ji,jj) ) / ( e3v(ji,jj,1,Kmm) * rho0 ) 
    110111         END_2D 
    111          ! 
    112112         CALL trd_vor_zint( putrd, pvtrd, jpvor_zdf, Kmm )                             ! zdf trend including surf./bot. stresses  
    113113         CALL trd_vor_zint( ztswu, ztswv, jpvor_swf, Kmm )                             ! surface wind stress  
     
    142142      !!                  vortrd (,, 9) = Beta V 
    143143      !!                  vortrd (,,10) = forcing term 
    144       !!                  vortrd (,,11) = bottom friction term 
     144      !!      vortrd (,,11) = bottom friction term 
    145145      !!                  rotot(,) : total cumulative trends over nn_write-1 time steps 
    146146      !!                  vor_avrtot(,) : first membre of vrticity equation 
     
    149149      !!      trends output in netCDF format using ioipsl 
    150150      !!---------------------------------------------------------------------- 
    151       INTEGER                     , INTENT(in   ) ::   ktrd       ! ocean trend index 
    152       INTEGER                     , INTENT(in   ) ::   Kmm        ! time level index 
    153       REAL(wp), DIMENSION(jpi,jpj), INTENT(inout) ::   putrdvor   ! u vorticity trend  
    154       REAL(wp), DIMENSION(jpi,jpj), INTENT(inout) ::   pvtrdvor   ! v vorticity trend 
     151      INTEGER                     , INTENT(in) ::   ktrd       ! ocean trend index 
     152      INTEGER                     , INTENT(in) ::   Kmm        ! time level index 
     153      REAL(wp), DIMENSION(jpi,jpj), INTENT(in) ::   putrdvor   ! u vorticity trend  
     154      REAL(wp), DIMENSION(jpi,jpj), INTENT(in) ::   pvtrdvor   ! v vorticity trend 
    155155      ! 
    156156      INTEGER ::   ji, jj       ! dummy loop indices 
     
    159159      !!---------------------------------------------------------------------- 
    160160 
    161       ! 
    162  
    163       zudpvor(:,:) = 0._wp                 ;   zvdpvor(:,:) = 0._wp                    ! Initialisation 
    164       CALL lbc_lnk( 'trdvor', putrdvor, 'U', -1.0_wp , pvtrdvor, 'V', -1.0_wp )      ! lateral boundary condition 
    165        
    166  
    167161      !  ===================================== 
    168162      !  I vertical integration of 2D trends 
     
    172166      ! 
    173167      CASE( jpvor_bfr )        ! bottom friction 
    174          DO_2D( 0, 0, 0, 0 ) 
     168         DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
    175169            ikbu = mbkv(ji,jj) 
    176170            ikbv = mbkv(ji,jj)             
     
    190184    
    191185      ! Curl 
    192       DO ji = 1, jpim1 
    193          DO jj = 1, jpjm1 
    194             vortrd(ji,jj,ktrd) = (    zvdpvor(ji+1,jj) - zvdpvor(ji,jj)       & 
    195                  &                - ( zudpvor(ji,jj+1) - zudpvor(ji,jj) )   ) & 
    196                  &                  / ( e1f(ji,jj) * e2f(ji,jj) ) 
    197          END DO 
    198       END DO 
    199       vortrd(:,:,ktrd) = vortrd(:,:,ktrd) * fmask(:,:,1)      ! Surface mask 
     186      DO_2D( 0, 0, 0, 0 ) 
     187         vortrd(ji,jj,ktrd) = (    zvdpvor(ji+1,jj) - zvdpvor(ji,jj)       & 
     188            &                  - ( zudpvor(ji,jj+1) - zudpvor(ji,jj) )   ) & 
     189            &                  / ( e1f(ji,jj) * e2f(ji,jj) ) * fmask(ji,jj,1) 
     190      END_2D 
    200191 
    201192      IF( ndebug /= 0 ) THEN 
     
    235226      !!---------------------------------------------------------------------- 
    236227      ! 
    237       INTEGER                         , INTENT(in   ) ::   ktrd       ! ocean trend index 
    238       INTEGER                         , INTENT(in   ) ::   Kmm        ! time level index 
    239       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   putrdvor   ! u vorticity trend  
    240       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pvtrdvor   ! v vorticity trend 
     228      INTEGER                         , INTENT(in) ::   ktrd       ! ocean trend index 
     229      INTEGER                         , INTENT(in) ::   Kmm        ! time level index 
     230      REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in) ::   putrdvor   ! u vorticity trend  
     231      REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in) ::   pvtrdvor   ! v vorticity trend 
    241232      ! 
    242233      INTEGER ::   ji, jj, jk   ! dummy loop indices 
    243       REAL(wp), DIMENSION(jpi,jpj) :: zubet  , zvbet    ! Beta.V    
    244234      REAL(wp), DIMENSION(jpi,jpj) :: zudpvor, zvdpvor  ! total cmulative trends 
    245235      !!---------------------------------------------------------------------- 
    246       
    247       ! Initialization 
    248       zubet  (:,:) = 0._wp 
    249       zvbet  (:,:) = 0._wp 
    250       zudpvor(:,:) = 0._wp 
    251       zvdpvor(:,:) = 0._wp 
    252       !                            ! lateral boundary condition on input momentum trends 
    253       CALL lbc_lnk( 'trdvor', putrdvor, 'U', -1.0_wp , pvtrdvor, 'V', -1.0_wp ) 
    254236 
    255237      !  ===================================== 
     
    265247      ! as Beta.V term need intergration, not average 
    266248      IF( ktrd == jpvor_pvo ) THEN  
    267          zubet(:,:) = zudpvor(:,:) 
    268          zvbet(:,:) = zvdpvor(:,:) 
    269          DO ji = 1, jpim1 
    270             DO jj = 1, jpjm1 
    271                vortrd(ji,jj,jpvor_bev) = (    zvbet(ji+1,jj) - zvbet(ji,jj)     & 
    272                   &                       - ( zubet(ji,jj+1) - zubet(ji,jj) ) ) & 
    273                   &                           / ( e1f(ji,jj) * e2f(ji,jj) ) 
    274             END DO 
    275          END DO 
    276          ! Average of the Curl and Surface mask 
    277          vortrd(:,:,jpvor_bev) = vortrd(:,:,jpvor_bev) * r1_hu(:,:,Kmm) * fmask(:,:,1) 
     249         DO_2D( 0, 0, 0, 0 ) 
     250            vortrd(ji,jj,jpvor_bev) = (    zvdpvor(ji+1,jj) - zvdpvor(ji,jj)     & 
     251               &                       - ( zudpvor(ji,jj+1) - zudpvor(ji,jj) ) ) & 
     252               &                           / ( e1f(ji,jj) * e2f(ji,jj) ) * r1_hu(ji,jj,Kmm) * fmask(ji,jj,1) 
     253         END_2D 
    278254      ENDIF 
    279255      ! 
     
    283259      ! 
    284260      ! Curl 
    285       DO ji=1,jpim1 
    286          DO jj=1,jpjm1 
    287             vortrd(ji,jj,ktrd) = (    zvdpvor(ji+1,jj) - zvdpvor(ji,jj)     & 
    288                &                  - ( zudpvor(ji,jj+1) - zudpvor(ji,jj) ) ) & 
    289                &                         / ( e1f(ji,jj) * e2f(ji,jj) ) 
    290          END DO 
    291       END DO 
    292       ! Surface mask 
    293       vortrd(:,:,ktrd) = vortrd(:,:,ktrd) * fmask(:,:,1) 
     261      DO_2D( 0, 0, 0, 0 ) 
     262         vortrd(ji,jj,ktrd) = (    zvdpvor(ji+1,jj) - zvdpvor(ji,jj)     & 
     263            &                  - ( zudpvor(ji,jj+1) - zudpvor(ji,jj) ) ) & 
     264            &                         / ( e1f(ji,jj) * e2f(ji,jj) ) * fmask(ji,jj,1) 
     265      END_2D 
    294266    
    295267      IF( ndebug /= 0 ) THEN 
     
    346318 
    347319      ! Curl 
    348       DO ji = 1, jpim1 
    349          DO jj = 1, jpjm1 
    350             vor_avr(ji,jj) = (  ( zvv(ji+1,jj) - zvv(ji,jj) )    & 
    351                &              - ( zuu(ji,jj+1) - zuu(ji,jj) ) )  & 
    352                &             / ( e1f(ji,jj) * e2f(ji,jj) ) * fmask(ji,jj,1) 
    353          END DO 
    354       END DO 
     320      DO_2D( 0, 0, 0, 0 ) 
     321         vor_avr(ji,jj) = (  ( zvv(ji+1,jj) - zvv(ji,jj) )    & 
     322            &              - ( zuu(ji,jj+1) - zuu(ji,jj) ) )  & 
     323            &             / ( e1f(ji,jj) * e2f(ji,jj) ) * fmask(ji,jj,1) 
     324      END_2D 
    355325       
    356326      !  ================================= 
Note: See TracChangeset for help on using the changeset viewer.