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 8993 for branches/2017/dev_METO_MERCATOR_2017/NEMOGCM/NEMO/OPA_SRC/DYN/dynnxt.F90 – NEMO

Ignore:
Timestamp:
2017-12-12T16:42:29+01:00 (6 years ago)
Author:
timgraham
Message:

Merged Mercator branch in

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_METO_MERCATOR_2017/NEMOGCM/NEMO/OPA_SRC/DYN/dynnxt.F90

    r8992 r8993  
    133133            ! so that asselin contribution is removed at the same time  
    134134            DO jk = 1, jpkm1 
    135                un(:,:,jk) = ( un(:,:,jk) - un_adv(:,:) + un_b(:,:) )*umask(:,:,jk) 
    136                vn(:,:,jk) = ( vn(:,:,jk) - vn_adv(:,:) + vn_b(:,:) )*vmask(:,:,jk) 
     135               un(:,:,jk) = ( un(:,:,jk) - un_adv(:,:)*r1_hu_n(:,:) + un_b(:,:) )*umask(:,:,jk) 
     136               vn(:,:,jk) = ( vn(:,:,jk) - vn_adv(:,:)*r1_hv_n(:,:) + vn_b(:,:) )*vmask(:,:,jk) 
    137137            END DO   
    138138         ENDIF 
     
    210210            ! (used as a now filtered scale factor until the swap) 
    211211            ! ---------------------------------------------------- 
    212             IF( ln_dynspg_ts .AND. ln_bt_fw ) THEN    ! No asselin filtering on thicknesses if forward time splitting 
    213                e3t_b(:,:,1:jpkm1) = e3t_n(:,:,1:jpkm1) 
    214             ELSE 
    215                DO jk = 1, jpkm1 
    216                   e3t_b(:,:,jk) = e3t_n(:,:,jk) + atfp * ( e3t_b(:,:,jk) - 2._wp * e3t_n(:,:,jk) + e3t_a(:,:,jk) ) 
     212            DO jk = 1, jpkm1 
     213               e3t_b(:,:,jk) = e3t_n(:,:,jk) + atfp * ( e3t_b(:,:,jk) - 2._wp * e3t_n(:,:,jk) + e3t_a(:,:,jk) ) 
     214            END DO 
     215            ! Add volume filter correction: compatibility with tracer advection scheme 
     216            ! => time filter + conservation correction (only at the first level) 
     217            zcoef = atfp * rdt * r1_rau0 
     218            IF ( .NOT. ln_isf ) THEN   ! if no ice shelf melting 
     219               e3t_b(:,:,1) = e3t_b(:,:,1) - zcoef * ( emp_b(:,:) - emp(:,:) & 
     220                              &                      - rnf_b(:,:) + rnf(:,:) ) * tmask(:,:,1) 
     221            ELSE                     ! if ice shelf melting 
     222               DO jj = 1, jpj 
     223                  DO ji = 1, jpi 
     224                     ikt = mikt(ji,jj) 
     225                     e3t_b(ji,jj,ikt) = e3t_b(ji,jj,ikt) - zcoef * (  emp_b   (ji,jj) - emp   (ji,jj)  & 
     226                        &                                           - rnf_b   (ji,jj) + rnf   (ji,jj)  & 
     227                        &                                           + fwfisf_b(ji,jj) - fwfisf(ji,jj)  ) * tmask(ji,jj,ikt) 
     228                  END DO 
    217229               END DO 
    218230               ! Add volume filter correction: compatibility with tracer advection scheme 
     
    245257                  END DO 
    246258               END IF 
    247             ENDIF 
     259            END IF 
    248260            ! 
    249261            IF( ln_dynadv_vec ) THEN      ! Asselin filter applied on velocity 
Note: See TracChangeset for help on using the changeset viewer.