- Timestamp:
- 2020-03-21T15:40:52+01:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/dev_r12377_KERNEL-06_techene_e3/src/OCE/DYN/dynatfLF.F90
r12581 r12583 116 116 ENDIF 117 117 118 IF ( ln_dynspg_ts ) THEN119 ! Ensure below that barotropic velocities match time splitting estimate120 ! Compute actual transport and replace it with ts estimate at "after" time step121 zue(:,:) = pe3u(:,:,1,Kaa) * puu(:,:,1,Kaa) * umask(:,:,1)122 zve(:,:) = pe3v(:,:,1,Kaa) * pvv(:,:,1,Kaa) * vmask(:,:,1)123 DO jk = 2, jpkm1124 zue(:,:) = zue(:,:) + pe3u(:,:,jk,Kaa) * puu(:,:,jk,Kaa) * umask(:,:,jk)125 zve(:,:) = zve(:,:) + pe3v(:,:,jk,Kaa) * pvv(:,:,jk,Kaa) * vmask(:,:,jk)126 END DO127 DO jk = 1, jpkm1128 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 DO131 !132 IF( .NOT.ln_bt_fw ) THEN133 ! Remove advective velocity from "now velocities"134 ! prior to asselin filtering135 ! In the forward case, this is done below after asselin filtering136 ! so that asselin contribution is removed at the same time137 DO jk = 1, jpkm1138 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 DO141 ENDIF142 ENDIF143 144 ! Update after velocity on domain lateral boundaries145 ! --------------------------------------------------146 # if defined key_agrif147 CALL Agrif_dyn( kt ) !* AGRIF zoom boundaries148 # endif149 !150 CALL lbc_lnk_multi( 'dynatfLF', puu(:,:,:,Kaa), 'U', -1., pvv(:,:,:,Kaa), 'V', -1. ) !* local domain boundaries151 !152 ! !* BDY open boundaries153 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. ) 155 155 156 156 !!$ Do we need a call to bdy_vol here??
Note: See TracChangeset
for help on using the changeset viewer.