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 10874 for NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/DYN/dynzad.F90 – NEMO

Ignore:
Timestamp:
2019-04-15T15:57:37+02:00 (5 years ago)
Author:
davestorkey
Message:

branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps : Revert all changes so far in preparation for implementation of new design.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/DYN/dynzad.F90

    r10789 r10874  
    3636CONTAINS 
    3737 
    38    SUBROUTINE dyn_zad ( kt, ktlev, pu_rhs, pv_rhs ) 
     38   SUBROUTINE dyn_zad ( kt ) 
    3939      !!---------------------------------------------------------------------- 
    4040      !!                  ***  ROUTINE dynzad  *** 
     
    4444      !! 
    4545      !! ** Method  :   The now vertical advection of momentum is given by: 
    46       !!         w dz(u) = pu_rhs + 1/(e1e2u*e3u) mk+1[ mi(e1e2t*ww) dk(uu(:,:,:,ktlev)) ] 
    47       !!         w dz(v) = pv_rhs + 1/(e1e2v*e3v) mk+1[ mj(e1e2t*ww) dk(vv(:,:,:,ktlev)) ] 
    48       !!      Add this trend to the general trend (pu_rhs,pv_rhs): 
    49       !!         (pu_rhs,pv_rhs) = (pu_rhs,pv_rhs) + w dz(u,v) 
     46      !!         w dz(u) = ua + 1/(e1e2u*e3u) mk+1[ mi(e1e2t*wn) dk(un) ] 
     47      !!         w dz(v) = va + 1/(e1e2v*e3v) mk+1[ mj(e1e2t*wn) dk(vn) ] 
     48      !!      Add this trend to the general trend (ua,va): 
     49      !!         (ua,va) = (ua,va) + w dz(u,v) 
    5050      !! 
    51       !! ** Action  : - Update (pu_rhs,pv_rhs) with the vert. momentum adv. trends 
     51      !! ** Action  : - Update (ua,va) with the vert. momentum adv. trends 
    5252      !!              - Send the trends to trddyn for diagnostics (l_trddyn=T) 
    5353      !!---------------------------------------------------------------------- 
    54       INTEGER, INTENT(in) ::   kt             ! ocean time-step index 
    55       INTEGER, INTENT(in) ::   ktlev          ! time level index for source terms 
    56       REAL(wp), INTENT(inout), DIMENSION(jpi,jpj,jpk) :: pu_rhs, pv_rhs ! momentum trends 
     54      INTEGER, INTENT(in) ::   kt   ! ocean time-step inedx 
    5755      ! 
    5856      INTEGER  ::   ji, jj, jk   ! dummy loop indices 
     
    7068      ENDIF 
    7169 
    72       IF( l_trddyn )   THEN         ! Save pu_rhs and pv_rhs trends 
     70      IF( l_trddyn )   THEN         ! Save ua and va trends 
    7371         ALLOCATE( ztrdu(jpi,jpj,jpk) , ztrdv(jpi,jpj,jpk) )  
    74          ztrdu(:,:,:) = pu_rhs(:,:,:)  
    75          ztrdv(:,:,:) = pv_rhs(:,:,:)  
     72         ztrdu(:,:,:) = ua(:,:,:)  
     73         ztrdv(:,:,:) = va(:,:,:)  
    7674      ENDIF 
    7775       
     
    7977         DO jj = 2, jpj                   ! vertical fluxes  
    8078            DO ji = fs_2, jpi             ! vector opt. 
    81                zww(ji,jj) = 0.25_wp * e1e2t(ji,jj) * ww(ji,jj,jk) 
     79               zww(ji,jj) = 0.25_wp * e1e2t(ji,jj) * wn(ji,jj,jk) 
    8280            END DO 
    8381         END DO 
    8482         DO jj = 2, jpjm1                 ! vertical momentum advection at w-point 
    8583            DO ji = fs_2, fs_jpim1        ! vector opt. 
    86                zwuw(ji,jj,jk) = ( zww(ji+1,jj  ) + zww(ji,jj) ) * ( uu(ji,jj,jk-1,ktlev) - uu(ji,jj,jk,ktlev) ) 
    87                zwvw(ji,jj,jk) = ( zww(ji  ,jj+1) + zww(ji,jj) ) * ( vv(ji,jj,jk-1,ktlev) - vv(ji,jj,jk,ktlev) ) 
     84               zwuw(ji,jj,jk) = ( zww(ji+1,jj  ) + zww(ji,jj) ) * ( un(ji,jj,jk-1) - un(ji,jj,jk) ) 
     85               zwvw(ji,jj,jk) = ( zww(ji  ,jj+1) + zww(ji,jj) ) * ( vn(ji,jj,jk-1) - vn(ji,jj,jk) ) 
    8886            END DO   
    8987         END DO    
     
    103101         DO jj = 2, jpjm1 
    104102            DO ji = fs_2, fs_jpim1       ! vector opt. 
    105                pu_rhs(ji,jj,jk) = pu_rhs(ji,jj,jk) - ( zwuw(ji,jj,jk) + zwuw(ji,jj,jk+1) ) * r1_e1e2u(ji,jj) / e3u(ji,jj,jk,ktlev) 
    106                pv_rhs(ji,jj,jk) = pv_rhs(ji,jj,jk) - ( zwvw(ji,jj,jk) + zwvw(ji,jj,jk+1) ) * r1_e1e2v(ji,jj) / e3v(ji,jj,jk,ktlev) 
     103               ua(ji,jj,jk) = ua(ji,jj,jk) - ( zwuw(ji,jj,jk) + zwuw(ji,jj,jk+1) ) * r1_e1e2u(ji,jj) / e3u_n(ji,jj,jk) 
     104               va(ji,jj,jk) = va(ji,jj,jk) - ( zwvw(ji,jj,jk) + zwvw(ji,jj,jk+1) ) * r1_e1e2v(ji,jj) / e3v_n(ji,jj,jk) 
    107105            END DO   
    108106         END DO   
     
    110108 
    111109      IF( l_trddyn ) THEN           ! save the vertical advection trends for diagnostic 
    112          ztrdu(:,:,:) = pu_rhs(:,:,:) - ztrdu(:,:,:) 
    113          ztrdv(:,:,:) = pv_rhs(:,:,:) - ztrdv(:,:,:) 
     110         ztrdu(:,:,:) = ua(:,:,:) - ztrdu(:,:,:) 
     111         ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 
    114112         CALL trd_dyn( ztrdu, ztrdv, jpdyn_zad, kt ) 
    115113         DEALLOCATE( ztrdu, ztrdv )  
Note: See TracChangeset for help on using the changeset viewer.