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 12583 for NEMO/branches/2020/dev_r12377_KERNEL-06_techene_e3/src/OCE/DYN/dynatfLF.F90 – NEMO

Ignore:
Timestamp:
2020-03-21T15:40:52+01:00 (4 years ago)
Author:
techene
Message:

OCE/DOM/domqe.F90: add gdep at time level Kbb in dom_qe_sf_update, OCE/DOM/domzgr_substitute.h90: create the substitute module, OCE/DYN/dynatfLF.F90, OCE/TRA/traatfLF.F90: move boundary condition management and agrif management from atf modules to OCE/steplf.F90, OCE/SBC/sbcice_cice.F90, ICE/iceistate.F90 : remove dom_vvl_interpol and replace by dom_vvl_zgr ?

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_r12377_KERNEL-06_techene_e3/src/OCE/DYN/dynatfLF.F90

    r12581 r12583  
    116116      ENDIF 
    117117 
    118       IF ( ln_dynspg_ts ) THEN 
    119          ! Ensure below that barotropic velocities match time splitting estimate 
    120          ! Compute actual transport and replace it with ts estimate at "after" time step 
    121          zue(:,:) = pe3u(:,:,1,Kaa) * puu(:,:,1,Kaa) * umask(:,:,1) 
    122          zve(:,:) = pe3v(:,:,1,Kaa) * pvv(:,:,1,Kaa) * vmask(:,:,1) 
    123          DO jk = 2, jpkm1 
    124             zue(:,:) = zue(:,:) + pe3u(:,:,jk,Kaa) * puu(:,:,jk,Kaa) * umask(:,:,jk) 
    125             zve(:,:) = zve(:,:) + pe3v(:,:,jk,Kaa) * pvv(:,:,jk,Kaa) * vmask(:,:,jk) 
    126          END DO 
    127          DO jk = 1, jpkm1 
    128             puu(:,:,jk,Kaa) = ( puu(:,:,jk,Kaa) - zue(:,:) * r1_hu(:,:,Kaa) + uu_b(:,:,Kaa) ) * umask(:,:,jk) 
    129             pvv(:,:,jk,Kaa) = ( pvv(:,:,jk,Kaa) - zve(:,:) * r1_hv(:,:,Kaa) + vv_b(:,:,Kaa) ) * vmask(:,:,jk) 
    130          END DO 
    131          ! 
    132          IF( .NOT.ln_bt_fw ) THEN 
    133             ! Remove advective velocity from "now velocities" 
    134             ! prior to asselin filtering 
    135             ! In the forward case, this is done below after asselin filtering 
    136             ! so that asselin contribution is removed at the same time 
    137             DO jk = 1, jpkm1 
    138                puu(:,:,jk,Kmm) = ( puu(:,:,jk,Kmm) - un_adv(:,:)*r1_hu(:,:,Kmm) + uu_b(:,:,Kmm) )*umask(:,:,jk) 
    139                pvv(:,:,jk,Kmm) = ( pvv(:,:,jk,Kmm) - vn_adv(:,:)*r1_hv(:,:,Kmm) + vv_b(:,:,Kmm) )*vmask(:,:,jk) 
    140             END DO 
    141          ENDIF 
    142       ENDIF 
    143  
    144       ! Update after velocity on domain lateral boundaries 
    145       ! -------------------------------------------------- 
    146 # if defined key_agrif 
    147       CALL Agrif_dyn( kt )             !* AGRIF zoom boundaries 
    148 # endif 
    149       ! 
    150       CALL lbc_lnk_multi( 'dynatfLF', puu(:,:,:,Kaa), 'U', -1., pvv(:,:,:,Kaa), 'V', -1. )     !* local domain boundaries 
    151       ! 
    152       !                                !* BDY open boundaries 
    153       IF( ln_bdy .AND. ln_dynspg_exp )   CALL bdy_dyn( kt, Kbb, puu, pvv, Kaa ) 
    154       IF( ln_bdy .AND. ln_dynspg_ts  )   CALL bdy_dyn( kt, Kbb, puu, pvv, Kaa, dyn3d_only=.true. ) 
     118!       IF ( ln_dynspg_ts ) THEN 
     119!          ! Ensure below that barotropic velocities match time splitting estimate 
     120!          ! Compute actual transport and replace it with ts estimate at "after" time step 
     121!          zue(:,:) = pe3u(:,:,1,Kaa) * puu(:,:,1,Kaa) * umask(:,:,1) 
     122!          zve(:,:) = pe3v(:,:,1,Kaa) * pvv(:,:,1,Kaa) * vmask(:,:,1) 
     123!          DO jk = 2, jpkm1 
     124!             zue(:,:) = zue(:,:) + pe3u(:,:,jk,Kaa) * puu(:,:,jk,Kaa) * umask(:,:,jk) 
     125!             zve(:,:) = zve(:,:) + pe3v(:,:,jk,Kaa) * pvv(:,:,jk,Kaa) * vmask(:,:,jk) 
     126!          END DO 
     127!          DO jk = 1, jpkm1 
     128!             puu(:,:,jk,Kaa) = ( puu(:,:,jk,Kaa) - zue(:,:) * r1_hu(:,:,Kaa) + uu_b(:,:,Kaa) ) * umask(:,:,jk) 
     129!             pvv(:,:,jk,Kaa) = ( pvv(:,:,jk,Kaa) - zve(:,:) * r1_hv(:,:,Kaa) + vv_b(:,:,Kaa) ) * vmask(:,:,jk) 
     130!          END DO 
     131!          ! 
     132!          IF( .NOT.ln_bt_fw ) THEN 
     133!             ! Remove advective velocity from "now velocities" 
     134!             ! prior to asselin filtering 
     135!             ! In the forward case, this is done below after asselin filtering 
     136!             ! so that asselin contribution is removed at the same time 
     137!             DO jk = 1, jpkm1 
     138!                puu(:,:,jk,Kmm) = ( puu(:,:,jk,Kmm) - un_adv(:,:)*r1_hu(:,:,Kmm) + uu_b(:,:,Kmm) )*umask(:,:,jk) 
     139!                pvv(:,:,jk,Kmm) = ( pvv(:,:,jk,Kmm) - vn_adv(:,:)*r1_hv(:,:,Kmm) + vv_b(:,:,Kmm) )*vmask(:,:,jk) 
     140!             END DO 
     141!          ENDIF 
     142!       ENDIF 
     143! 
     144!       ! Update after velocity on domain lateral boundaries 
     145!       ! -------------------------------------------------- 
     146! # if defined key_agrif 
     147!       CALL Agrif_dyn( kt )             !* AGRIF zoom boundaries 
     148! # endif 
     149!       ! 
     150!       CALL lbc_lnk_multi( 'dynatfLF', puu(:,:,:,Kaa), 'U', -1., pvv(:,:,:,Kaa), 'V', -1. )     !* local domain boundaries 
     151!       ! 
     152!       !                                !* BDY open boundaries 
     153!       IF( ln_bdy .AND. ln_dynspg_exp )   CALL bdy_dyn( kt, Kbb, puu, pvv, Kaa ) 
     154!       IF( ln_bdy .AND. ln_dynspg_ts  )   CALL bdy_dyn( kt, Kbb, puu, pvv, Kaa, dyn3d_only=.true. ) 
    155155 
    156156!!$   Do we need a call to bdy_vol here?? 
Note: See TracChangeset for help on using the changeset viewer.