- Timestamp:
- 2021-08-13T15:18:24+02:00 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2021/dev_r14318_RK3_stage1/src/OCE/TRA/traadv.F90
r14381 r15193 10 10 !! - ! 2014-12 (G. Madec) suppression of cross land advection option 11 11 !! 3.6 ! 2015-06 (E. Clementi) Addition of Stokes drift in case of wave coupling 12 !! 4.5 ! 2021-04 (G. Madec, S. Techene) add advective velocities as optional arguments 12 13 !!---------------------------------------------------------------------- 13 14 … … 46 47 PRIVATE 47 48 48 PUBLIC tra_adv ! called by step.F90 49 PUBLIC tra_adv ! called by step.F90, stpmlf.F90 and stprk3_stg.F90 49 50 PUBLIC tra_adv_init ! called by nemogcm.F90 50 51 … … 86 87 !! ** Purpose : compute the ocean tracer advection trend. 87 88 !! 88 !! ** Method : - Update (uu(:,:,:,Krhs),vv(:,:,:,Krhs)) with the advection termfollowing nadv89 !! ** Method : - Update ts(Krhs) with the advective trend following nadv 89 90 !!---------------------------------------------------------------------- 90 91 INTEGER , INTENT(in ) :: kt ! ocean time-step index … … 156 157 ENDIF 157 158 ! 159 !!st the do loop below should be useless ==>> to be checked 158 160 DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 159 zuu(ji,jj,jpk) = 0._wp ! no transport trough the bottom 161 zuu(ji,jj,jpk) = 0._wp ! no transport trough the bottom 160 162 zvv(ji,jj,jpk) = 0._wp 161 163 zww(ji,jj,jpk) = 0._wp … … 192 194 ! 193 195 CASE ( np_CEN ) ! Centered scheme : 2nd / 4th order 194 IF (nn_hls.EQ.2) CALL lbc_lnk( 'traadv', pts(:,:,:,:,Kmm), 'T', 1.)196 IF( nn_hls == 2 ) CALL lbc_lnk( 'traadv', pts(:,:,:,:,Kmm), 'T', 1._wp ) 195 197 CALL tra_adv_cen ( kt, nit000, 'TRA', zuu, zvv, zww, Kmm, pts, jpts, Krhs, nn_cen_h, nn_cen_v ) 196 198 CASE ( np_FCT ) ! FCT scheme : 2nd / 4th order 197 IF (nn_hls.EQ.2) THEN198 CALL lbc_lnk_multi( 'traadv', pts(:,:,:,:,Kbb), 'T', 1. , pts(:,:,:,:,Kmm), 'T', 1.)199 CALL lbc_lnk_multi( 'traadv', zuu(:,:,:), 'U', -1. , zvv(:,:,:), 'V', -1., zww(:,:,:), 'W', 1.)199 IF( nn_hls == 2 ) THEN 200 CALL lbc_lnk_multi( 'traadv', pts(:,:,:,:,Kbb), 'T', 1._wp, pts(:,:,:,:,Kmm), 'T', 1._wp) 201 CALL lbc_lnk_multi( 'traadv', zuu(:,:,:), 'U', -1._wp, zvv(:,:,:), 'V', -1._wp, zww(:,:,:), 'W', 1._wp) 200 202 #if defined key_loop_fusion 201 203 CALL tra_adv_fct_lf ( kt, nit000, 'TRA', rDt, zuu, zvv, zww, Kbb, Kmm, pts, jpts, Krhs, nn_fct_h, nn_fct_v ) … … 207 209 END IF 208 210 CASE ( np_MUS ) ! MUSCL 209 IF (nn_hls.EQ.2) THEN210 CALL lbc_lnk( 'traadv', pts(:,:,:,:,Kbb), 'T', 1. )211 IF( nn_hls == 2 ) THEN 212 CALL lbc_lnk( 'traadv', pts(:,:,:,:,Kbb), 'T', 1._wp) 211 213 #if defined key_loop_fusion 212 214 CALL tra_adv_mus_lf ( kt, nit000, 'TRA', rDt, zuu, zvv, zww, Kbb, Kmm, pts, jpts, Krhs, ln_mus_ups ) … … 218 220 END IF 219 221 CASE ( np_UBS ) ! UBS 220 IF (nn_hls.EQ.2) CALL lbc_lnk( 'traadv', pts(:,:,:,:,Kbb), 'T', 1.)222 IF( nn_hls == 2) CALL lbc_lnk( 'traadv', pts(:,:,:,:,Kbb), 'T', 1._wp) 221 223 CALL tra_adv_ubs ( kt, nit000, 'TRA', rDt, zuu, zvv, zww, Kbb, Kmm, pts, jpts, Krhs, nn_ubs_v ) 222 224 CASE ( np_QCK ) ! QUICKEST 223 IF (nn_hls.EQ.2) THEN224 CALL lbc_lnk_multi( 'traadv', zuu(:,:,:), 'U', -1. , zvv(:,:,:), 'V', -1.)225 CALL lbc_lnk( 'traadv', pts(:,:,:,:,Kbb), 'T', 1. )225 IF( nn_hls == 2 ) THEN 226 CALL lbc_lnk_multi( 'traadv', zuu(:,:,:), 'U', -1._wp, zvv(:,:,:), 'V', -1._wp) 227 CALL lbc_lnk( 'traadv', pts(:,:,:,:,Kbb), 'T', 1._wp) 226 228 END IF 227 229 CALL tra_adv_qck ( kt, nit000, 'TRA', rDt, zuu, zvv, zww, Kbb, Kmm, pts, jpts, Krhs )
Note: See TracChangeset
for help on using the changeset viewer.