Changeset 4455


Ignore:
Timestamp:
2014-02-04T13:16:43+01:00 (7 years ago)
Author:
trackstand2
Message:

Add mbkmax to dyn_nxt

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/DYN/dynnxt.F90

    r4438 r4455  
    152152         END DO 
    153153      ELSE                                            ! applied on thickness weighted velocity 
     154 
     155#if defined key_z_first 
     156         DO jj = 1, jpj, 1 
     157            DO ji = 1, jpi, 1 
     158               DO jk = 1, mbkmax(ji,jj)-1 ! jpkm1 
     159                  ua(ji,jj,jk) = ( ub(ji,jj,jk) * fse3u_b(ji,jj,jk)      & 
     160               &           + z2dt * ua(ji,jj,jk) * fse3u_n(ji,jj,jk)  )   & 
     161               &         / fse3u_a(ji,jj,jk) * umask(ji,jj,jk) 
     162                  va(ji,jj,jk) = ( vb(ji,jj,jk) * fse3v_b(ji,jj,jk)      & 
     163               &           + z2dt * va(ji,jj,jk) * fse3v_n(ji,jj,jk)  )   & 
     164               &         / fse3v_a(ji,jj,jk) * vmask(ji,jj,jk) 
     165               END DO 
     166            END DO 
     167         END DO 
     168#else 
    154169         DO jk = 1, jpkm1 
    155170            ua(:,:,jk) = (          ub(:,:,jk) * fse3u_b(:,:,jk)      & 
     
    160175               &         / fse3v_a(:,:,jk) * vmask(:,:,jk) 
    161176         END DO 
     177#endif 
    162178      ENDIF 
    163179 
     
    238254         DO jj = 1, jpj 
    239255            DO ji = 1, jpi 
    240                DO jk = 1, jpkm1 
     256               DO jk = 1, mbkmax(ji,jj)-1 ! jpkm1 
    241257                  un(ji,jj,jk) = ua(ji,jj,jk)                ! un <-- ua 
    242258                  vn(ji,jj,jk) = va(ji,jj,jk) 
     
    257273            DO jj = 1, jpj 
    258274               DO ji = 1, jpi     
    259                   DO jk = 1, jpkm1                               
     275                  DO jk = 1, mbkmax(ji,jj)-1 ! jpkm1                               
    260276#else 
    261277            DO jk = 1, jpkm1                               
     
    278294            ! Before scale factor at t-points 
    279295            ! ------------------------------- 
     296#if defined key_z_first 
     297            DO jj = 1, jpj 
     298               DO ji = 1, jpi     
     299                  DO jk = 1, mbkmax(ji,jj)-1 ! jpkm1 
     300                     fse3t_b(ji,jj,jk) = fse3t_n(ji,jj,jk)                             & 
     301                  &              + atfp * (  fse3t_b(ji,jj,jk) + fse3t_a(ji,jj,jk)     & 
     302                  &                         - 2.e0 * fse3t_n(ji,jj,jk)            ) 
     303                  END DO 
     304               END DO 
     305            ENDDO 
     306#else 
    280307            DO jk = 1, jpkm1 
    281308               fse3t_b(:,:,jk) = fse3t_n(:,:,jk)                                   & 
     
    283310                  &                         - 2.e0 * fse3t_n(:,:,jk)            ) 
    284311            ENDDO 
     312#endif 
    285313            ! Add volume filter correction only at the first level of t-point scale factors 
    286314            zec = atfp * rdt / rau0 
     
    302330               DO jj = 1, jpjm1 
    303331                  DO ji = 1, jpim1 
    304                      DO jk = 1, jpkm1 
     332                     DO jk = 1, mbkmax(ji,jj)-1 ! jpkm1 
    305333#else 
    306334               DO jk = 1, jpkm1 
     
    320348               CALL lbc_lnk( fse3v_b(:,:,:), 'V', 1. ) 
    321349               ! Add initial scale factor to scale factor anomaly 
     350#if defined key_z_first 
     351               DO jj = 1, jpjm1 
     352                  DO ji = 1, jpim1 
     353                     DO jk = 1, mbkmax(ji,jj)-1 ! jpkm1 
     354                        fse3u_b(ji,jj,jk) = fse3u_b(ji,jj,jk) + fse3u_0(ji,jj,jk) 
     355                        fse3v_b(ji,jj,jk) = fse3v_b(ji,jj,jk) + fse3v_0(ji,jj,jk) 
     356                     END DO 
     357                  END DO 
     358               END DO 
     359#else 
    322360               fse3u_b(:,:,:) = fse3u_b(:,:,:) + fse3u_0(:,:,:) 
    323361               fse3v_b(:,:,:) = fse3v_b(:,:,:) + fse3v_0(:,:,:) 
     362#endif 
    324363               ! Leap-Frog - Asselin filter and swap: applied on velocity 
    325364               ! ----------------------------------- 
     
    327366               DO jj = 1, jpj 
    328367                  DO ji = 1, jpi 
    329                      DO jk = 1, jpkm1 
     368                     DO jk = 1, mbkmax(ji,jj)-1 ! jpkm1 
    330369#else 
    331370               DO jk = 1, jpkm1 
     
    351390               DO jj = 1, jpjm1 
    352391                  DO ji = 1, jpim1 
    353                      DO jk = 1, jpkm1 
     392                     DO jk = 1, mbkmax(ji,jj)-1 ! jpkm1 
    354393#else 
    355394               DO jk = 1, jpkm1 
     
    369408               CALL lbc_lnk( ze3v_f, 'V', 1. ) 
    370409               ! Add initial scale factor to scale factor anomaly 
     410#if defined key_z_first 
     411               DO jj = 1, jpjm1 
     412                  DO ji = 1, jpim1 
     413                     DO jk = 1, mbkmax(ji,jj)-1 ! jpkm1 
     414                        ze3u_f(ji,jj,jk) = ze3u_f(ji,jj,jk) + fse3u_0(ji,jj,jk) 
     415                        ze3v_f(ji,jj,jk) = ze3v_f(ji,jj,jk) + fse3v_0(ji,jj,jk) 
     416                     END DO 
     417                  END DO 
     418               END DO 
     419#else 
    371420               ze3u_f(:,:,:) = ze3u_f(:,:,:) + fse3u_0(:,:,:) 
    372421               ze3v_f(:,:,:) = ze3v_f(:,:,:) + fse3v_0(:,:,:) 
     422#endif 
    373423               ! Leap-Frog - Asselin filter and swap: applied on thickness weighted velocity 
    374424               ! -----------------------------------             =========================== 
     
    376426               DO jj = 1, jpj 
    377427                  DO ji = 1, jpim1 
    378                      DO jk = 1, jpkm1 
     428                     DO jk = 1, mbkmax(ji,jj)-1 ! jpkm1 
    379429#else 
    380430               DO jk = 1, jpkm1 
     
    399449                  END DO 
    400450               END DO 
     451#if defined key_z_first 
     452               DO jj = 1, jpj 
     453                  DO ji = 1, jpim1 
     454                     DO jk = 1, mbkmax(ji,jj)-1 ! jpkm1 
     455                        fse3u_b(ji,jj,jk) = ze3u_f(ji,jj,jk)                   ! e3u_b <-- filtered scale factor 
     456                        fse3v_b(ji,jj,jk) = ze3v_f(ji,jj,jk) 
     457                     END DO 
     458                  END DO 
     459               END DO 
     460#else 
    401461               fse3u_b(:,:,:) = ze3u_f(:,:,:)                   ! e3u_b <-- filtered scale factor 
    402462               fse3v_b(:,:,:) = ze3v_f(:,:,:) 
     463#endif 
    403464               CALL lbc_lnk( ub, 'U', -1. )                     ! lateral boundary conditions 
    404465               CALL lbc_lnk( vb, 'V', -1. ) 
Note: See TracChangeset for help on using the changeset viewer.