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 12150 for NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/DYN/dynatf.F90 – NEMO

Ignore:
Timestamp:
2019-12-10T15:16:33+01:00 (4 years ago)
Author:
davestorkey
Message:

2019/dev_r11943_MERGE_2019: Merge in UKMO_MERGE_2019.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/DYN/dynatf.F90

    r11949 r12150  
    3030   USE sbc_oce        ! Surface boundary condition: ocean fields 
    3131   USE sbcrnf         ! river runoffs 
    32    USE sbcisf         ! ice shelf 
    3332   USE phycst         ! physical constants 
    3433   USE dynadv         ! dynamics: vector invariant versus flux form 
     
    4241   USE trddyn         ! trend manager: dynamics 
    4342   USE trdken         ! trend manager: kinetic energy 
     43   USE isf_oce   , ONLY: ln_isf     ! ice shelf 
     44   USE isfdynatf , ONLY: isf_dynatf ! ice shelf volume filter correction subroutine  
    4445   ! 
    4546   USE in_out_manager ! I/O manager 
     
    145146# endif 
    146147      ! 
    147       CALL lbc_lnk_multi( 'dynnxt', puu(:,:,:,Kaa), 'U', -1., pvv(:,:,:,Kaa), 'V', -1. )     !* local domain boundaries 
     148      CALL lbc_lnk_multi( 'dynatf', puu(:,:,:,Kaa), 'U', -1., pvv(:,:,:,Kaa), 'V', -1. )     !* local domain boundaries 
    148149      ! 
    149150      !                                !* BDY open boundaries 
     
    218219               ENDIF 
    219220            END IF 
    220  
    221             IF ( ln_isf ) THEN   ! if ice shelf melting 
    222                DO jk = 1, jpkm1 ! Deal with isf separetely, as can be through depth too 
    223                   DO jj = 1, jpj 
    224                      DO ji = 1, jpi 
    225                         IF( misfkt(ji,jj) <=jk .and. jk < misfkb(ji,jj)  ) THEN 
    226                            ze3t_f(ji,jj,jk) = ze3t_f(ji,jj,jk) - zcoef * ( fwfisf_b(ji,jj) - fwfisf(ji,jj) ) & 
    227                                 &          * ( pe3t(ji,jj,jk,Kmm) * r1_hisf_tbl(ji,jj) ) * tmask(ji,jj,jk) 
    228                         ELSEIF ( jk==misfkb(ji,jj) ) THEN 
    229                            ze3t_f(ji,jj,jk) = ze3t_f(ji,jj,jk) - zcoef * ( fwfisf_b(ji,jj) - fwfisf(ji,jj) ) & 
    230                                 &          * ( pe3t(ji,jj,jk,Kmm) * r1_hisf_tbl(ji,jj) ) * ralpha(ji,jj) * tmask(ji,jj,jk) 
    231                         ENDIF 
    232                      END DO 
    233                   END DO 
    234                END DO 
    235             END IF 
     221            ! 
     222            ! ice shelf melting (deal separately as it can be in depth) 
     223            ! PM: we could probably define a generic subroutine to do the in depth correction 
     224            !     to manage rnf, isf and possibly in the futur icb, tide water glacier (...) 
     225            !     ...(kt, coef, ktop, kbot, hz, fwf_b, fwf) 
     226            IF ( ln_isf ) CALL isf_dynatf( kt, Kmm, ze3t_f, atfp * rdt ) 
    236227            ! 
    237228            pe3t(:,:,1:jpkm1,Kmm) = ze3t_f(:,:,1:jpkm1)        ! filtered scale factor at T-points 
Note: See TracChangeset for help on using the changeset viewer.