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 12279 for NEMO/trunk/src/OCE/DYN/dynnxt.F90 – NEMO

Ignore:
Timestamp:
2019-12-20T14:36:15+01:00 (4 years ago)
Author:
jchanut
Message:

#2317, changes for LFRA freshwater correction

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/src/OCE/DYN/dynnxt.F90

    r12026 r12279  
    225225            zcoef = atfp * rdt * r1_rau0 
    226226 
    227             e3t_b(:,:,1) = e3t_b(:,:,1) - zcoef * ( emp_b(:,:) - emp(:,:) ) * tmask(:,:,1) 
     227            DO jk = 1, jpkm1 
     228               e3t_b(:,:,jk) = e3t_b(:,:,jk) - zcoef * ( emp_b(:,:) - emp(:,:) ) * tmask(:,:,jk) &  
     229                             &                       * e3t_n(:,:,jk) /  ( ht_n(:,:) + 1._wp - ssmask(:,:) ) 
     230            END DO 
    228231 
    229232            IF ( ln_rnf ) THEN 
    230                IF( ln_rnf_depth ) THEN 
    231                   DO jk = 1, jpkm1 ! Deal with Rivers separetely, as can be through depth too 
    232                      DO jj = 1, jpj 
    233                         DO ji = 1, jpi 
    234                            IF( jk <=  nk_rnf(ji,jj)  ) THEN 
    235                                e3t_b(ji,jj,jk) =   e3t_b(ji,jj,jk) - zcoef *  ( - rnf_b(ji,jj) + rnf(ji,jj) ) & 
    236                                       &          * ( e3t_n(ji,jj,jk) / h_rnf(ji,jj) ) * tmask(ji,jj,jk) 
    237                            ENDIF 
    238                         ENDDO 
    239                      ENDDO 
    240                   ENDDO 
    241                ELSE 
    242                   e3t_b(:,:,1) = e3t_b(:,:,1) - zcoef *  ( -rnf_b(:,:) + rnf(:,:))*tmask(:,:,1) 
    243                ENDIF 
    244             END IF 
    245  
    246             IF ( ln_isf ) THEN   ! if ice shelf melting 
    247                DO jk = 1, jpkm1 ! Deal with isf separetely, as can be through depth too 
    248                   DO jj = 1, jpj 
    249                      DO ji = 1, jpi 
    250                         IF( misfkt(ji,jj) <=jk .and. jk < misfkb(ji,jj)  ) THEN 
    251                            e3t_b(ji,jj,jk) = e3t_b(ji,jj,jk) - zcoef * ( fwfisf_b(ji,jj) - fwfisf(ji,jj) ) & 
    252                                 &          * ( e3t_n(ji,jj,jk) * r1_hisf_tbl(ji,jj) ) * tmask(ji,jj,jk) 
    253                         ELSEIF ( jk==misfkb(ji,jj) ) THEN 
    254                            e3t_b(ji,jj,jk) = e3t_b(ji,jj,jk) - zcoef * ( fwfisf_b(ji,jj) - fwfisf(ji,jj) ) & 
    255                                 &          * ( e3t_n(ji,jj,jk) * r1_hisf_tbl(ji,jj) ) * ralpha(ji,jj) * tmask(ji,jj,jk) 
    256                         ENDIF 
    257                      END DO 
    258                   END DO 
    259                END DO 
    260             END IF 
     233               DO jk = 1, jpkm1 
     234                  e3t_b(:,:,jk) = e3t_b(:,:,jk) - zcoef * ( rnf_b(:,:) - rnf(:,:) ) * tmask(:,:,jk) &  
     235                                &                       * e3t_n(:,:,jk) /  ( ht_n(:,:) + 1._wp - ssmask(:,:) ) 
     236               END DO 
     237            ENDIF 
     238 
     239            IF ( ln_isf ) THEN 
     240               DO jk = 1, jpkm1 
     241                  e3t_b(:,:,jk) = e3t_b(:,:,jk) - zcoef * ( fwfisf_b(:,:) - fwfisf(:,:) ) * tmask(:,:,jk) &  
     242                                &                       * e3t_n(:,:,jk) /  ( ht_n(:,:) + 1._wp - ssmask(:,:) ) 
     243               END DO 
     244            ENDIF 
    261245            ! 
    262246            IF( ln_dynadv_vec ) THEN      ! Asselin filter applied on velocity 
Note: See TracChangeset for help on using the changeset viewer.