Changeset 15073
- Timestamp:
- 2021-07-02T16:20:14+02:00 (3 years ago)
- Location:
- NEMO/trunk/src
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/src/OCE/DOM/domqco.F90
r15067 r15073 125 125 ! dom_qco_r3c defines over [nn_hls, nn_hls-1, nn_hls, nn_hls-1] 126 126 IF( nn_hls == 2 ) CALL lbc_lnk( 'dom_qco_zgr', r3u(:,:,Kbb), 'U', 1._wp, r3v(:,:,Kbb), 'V', 1._wp, & 127 & r3u(:,:,Kmm), 'U', 1._wp, r3v(:,:,Kmm), 'V', 1._wp )128 ! 127 & r3u(:,:,Kmm), 'U', 1._wp, r3v(:,:,Kmm), 'V', 1._wp, r3f(:,:), 'F', 1._wp ) 128 ! ! r3f is needed for agrif 129 129 END SUBROUTINE dom_qco_zgr 130 130 -
NEMO/trunk/src/OCE/TRA/traadv.F90
r15060 r15073 175 175 ! 176 176 CASE ( np_CEN ) ! Centered scheme : 2nd / 4th order 177 CALL tra_adv_cen ( kt, nit000, 'TRA', zuu, zvv, zww, Kmm, pts, jpts, Krhs, nn_cen_h, nn_cen_v)177 CALL tra_adv_cen ( kt, nit000, 'TRA', zuu, zvv, zww, Kmm, pts, jpts, Krhs, nn_cen_h, nn_cen_v ) 178 178 CASE ( np_FCT ) ! FCT scheme : 2nd / 4th order 179 CALL tra_adv_fct 179 CALL tra_adv_fct ( kt, nit000, 'TRA', rDt, zuu, zvv, zww, Kbb, Kmm, pts, jpts, Krhs, nn_fct_h, nn_fct_v ) 180 180 CASE ( np_MUS ) ! MUSCL 181 CALL tra_adv_mus ( kt, nit000, 'TRA', rDt, zuu, zvv, zww, Kbb, Kmm, pts, jpts, Krhs, ln_mus_ups)181 CALL tra_adv_mus( kt, nit000, 'TRA', rDt, zuu, zvv, zww, Kbb, Kmm, pts, jpts, Krhs, ln_mus_ups ) 182 182 CASE ( np_UBS ) ! UBS 183 CALL tra_adv_ubs ( kt, nit000, 'TRA', rDt, zuu, zvv, zww, Kbb, Kmm, pts, jpts, Krhs, nn_ubs_v )183 CALL tra_adv_ubs ( kt, nit000, 'TRA', rDt, zuu, zvv, zww, Kbb, Kmm, pts, jpts, Krhs, nn_ubs_v ) 184 184 CASE ( np_QCK ) ! QUICKEST 185 CALL tra_adv_qck ( kt, nit000, 'TRA', rDt, zuu, zvv, zww, Kbb, Kmm, pts, jpts, Krhs )185 CALL tra_adv_qck ( kt, nit000, 'TRA', rDt, zuu, zvv, zww, Kbb, Kmm, pts, jpts, Krhs ) 186 186 ! 187 187 END SELECT -
NEMO/trunk/src/TOP/TRP/trcadv.F90
r14834 r15073 60 60 INTEGER, PARAMETER :: np_QCK = 5 ! QUICK scheme 61 61 62 !! * Substitutions 63 # include "do_loop_substitute.h90" 62 64 # include "domzgr_substitute.h90" 63 65 !!---------------------------------------------------------------------- … … 80 82 REAL(wp), DIMENSION(jpi,jpj,jpk,jptra,jpt), INTENT(inout) :: ptr ! passive tracers and RHS of tracer equation 81 83 ! 82 INTEGER :: j k ! dummy loop index84 INTEGER :: ji, jj, jk ! dummy loop index 83 85 CHARACTER (len=22) :: charout 84 86 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zuu, zvv, zww ! effective velocity … … 89 91 ! !== effective transport ==! 90 92 IF( l_offline ) THEN 91 zuu(:,:,:) = uu(:,:,:,Kmm) ! already in (uu(Kmm),vv(Kmm),ww) 92 zvv(:,:,:) = vv(:,:,:,Kmm) 93 zww(:,:,:) = ww(:,:,:) 93 DO_3D( nn_hls, nn_hls-1, nn_hls, nn_hls-1, 1, jpk ) 94 zuu(ji,jj,jk) = uu(ji,jj,jk,Kmm) ! already in (uu(Kmm),vv(Kmm),ww) 95 zvv(ji,jj,jk) = vv(ji,jj,jk,Kmm) 96 END_3D 97 DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 1, jpk ) 98 zww(ji,jj,jk) = ww(ji,jj,jk) 99 END_3D 94 100 ELSE ! build the effective transport 95 zuu(:,:,jpk) = 0._wp 96 zvv(:,:,jpk) = 0._wp 97 zww(:,:,jpk) = 0._wp 101 DO_2D( nn_hls, nn_hls-1, nn_hls, nn_hls-1 ) 102 zuu(ji,jj,jpk) = 0._wp 103 zvv(ji,jj,jpk) = 0._wp 104 END_2D 105 DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 106 zww(ji,jj,jpk) = 0._wp 107 END_2D 98 108 IF( ln_wave .AND. ln_sdw ) THEN 99 DO jk = 1, jpkm1 ! eulerian transport + Stokes Drift 100 zuu(:,:,jk) = e2u (:,:) * e3u(:,:,jk,Kmm) * ( uu(:,:,jk,Kmm) + usd(:,:,jk) ) 101 zvv(:,:,jk) = e1v (:,:) * e3v(:,:,jk,Kmm) * ( vv(:,:,jk,Kmm) + vsd(:,:,jk) ) 102 zww(:,:,jk) = e1e2t(:,:) * ( ww(:,:,jk) + wsd(:,:,jk) ) 103 END DO 109 DO_3D( nn_hls, nn_hls-1, nn_hls, nn_hls-1, 1, jpkm1 ) ! eulerian transport + Stokes Drift 110 zuu(ji,jj,jk) = e2u (ji,jj) * e3u(ji,jj,jk,Kmm) * ( uu(ji,jj,jk,Kmm) + usd(ji,jj,jk) ) 111 zvv(ji,jj,jk) = e1v (ji,jj) * e3v(ji,jj,jk,Kmm) * ( vv(ji,jj,jk,Kmm) + vsd(ji,jj,jk) ) 112 END_3D 113 DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 1, jpkm1 ) 114 zww(ji,jj,jk) = e1e2t(ji,jj) * ( ww(ji,jj,jk) + wsd(ji,jj,jk) ) 115 END_3D 104 116 ELSE 105 DO jk = 1, jpkm1 106 zuu(:,:,jk) = e2u (:,:) * e3u(:,:,jk,Kmm) * uu(:,:,jk,Kmm) ! eulerian transport 107 zvv(:,:,jk) = e1v (:,:) * e3v(:,:,jk,Kmm) * vv(:,:,jk,Kmm) 108 zww(:,:,jk) = e1e2t(:,:) * ww(:,:,jk) 109 END DO 117 DO_3D( nn_hls, nn_hls-1, nn_hls, nn_hls-1, 1, jpkm1 ) 118 zuu(ji,jj,jk) = e2u (ji,jj) * e3u(ji,jj,jk,Kmm) * uu(ji,jj,jk,Kmm) ! eulerian transport 119 zvv(ji,jj,jk) = e1v (ji,jj) * e3v(ji,jj,jk,Kmm) * vv(ji,jj,jk,Kmm) 120 END_3D 121 DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 1, jpkm1 ) 122 zww(ji,jj,jk) = e1e2t(ji,jj) * ww(ji,jj,jk) 123 END_3D 110 124 ENDIF 111 125 ! 112 IF( ln_vvl_ztilde .OR. ln_vvl_layer ) THEN ! add z-tilde and/or vvl corrections 113 zuu(:,:,:) = zuu(:,:,:) + un_td(:,:,:) 114 zvv(:,:,:) = zvv(:,:,:) + vn_td(:,:,:) 126 IF( ln_vvl_ztilde .OR. ln_vvl_layer ) THEN ! add z-tilde and/or vvl corrections 127 DO_3D( nn_hls, nn_hls-1, nn_hls, nn_hls-1, 1, jpkm1 ) 128 zuu(ji,jj,jk) = zuu(ji,jj,jk) + un_td(ji,jj,jk) 129 zvv(ji,jj,jk) = zvv(ji,jj,jk) + vn_td(ji,jj,jk) 130 END_3D 115 131 ENDIF 116 132 ! … … 125 141 ! 126 142 CASE ( np_CEN ) ! Centered : 2nd / 4th order 127 CALL tra_adv_cen ( kt, nittrc000,'TRC', zuu, zvv, zww, Kmm, ptr, jptra, Krhs, nn_cen_h, nn_cen_v )143 CALL tra_adv_cen ( kt, nittrc000,'TRC', zuu, zvv, zww, Kmm, ptr, jptra, Krhs, nn_cen_h, nn_cen_v ) 128 144 CASE ( np_FCT ) ! FCT : 2nd / 4th order 129 145 CALL tra_adv_fct( kt, nittrc000,'TRC', rDt_trc, zuu, zvv, zww, Kbb, Kmm, ptr, jptra, Krhs, nn_fct_h, nn_fct_v ) 130 146 CASE ( np_MUS ) ! MUSCL 131 CALL tra_adv_mus( kt, nittrc000,'TRC', rDt_trc, zuu, zvv, zww, Kbb, Kmm, ptr, jptra, Krhs, ln_mus_ups )147 CALL tra_adv_mus( kt, nittrc000,'TRC', rDt_trc, zuu, zvv, zww, Kbb, Kmm, ptr, jptra, Krhs, ln_mus_ups ) 132 148 CASE ( np_UBS ) ! UBS 133 CALL tra_adv_ubs ( kt, nittrc000,'TRC', rDt_trc, zuu, zvv, zww, Kbb, Kmm, ptr, jptra, Krhs, nn_ubs_v )149 CALL tra_adv_ubs ( kt, nittrc000,'TRC', rDt_trc, zuu, zvv, zww, Kbb, Kmm, ptr, jptra, Krhs, nn_ubs_v ) 134 150 CASE ( np_QCK ) ! QUICKEST 135 CALL tra_adv_qck ( kt, nittrc000,'TRC', rDt_trc, zuu, zvv, zww, Kbb, Kmm, ptr, jptra, Krhs )151 CALL tra_adv_qck ( kt, nittrc000,'TRC', rDt_trc, zuu, zvv, zww, Kbb, Kmm, ptr, jptra, Krhs ) 136 152 ! 137 153 END SELECT
Note: See TracChangeset
for help on using the changeset viewer.