Changeset 10980 for NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/TRA/traldf_lap_blp.F90
- Timestamp:
- 2019-05-15T13:34:04+02:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/TRA/traldf_lap_blp.F90
r10954 r10980 45 45 CONTAINS 46 46 47 SUBROUTINE tra_ldf_lap( kt, kit000, cdtype, pahu, pahv, pgu , pgv ,&48 & 49 & ptb , pta , kjpt, kpass, Kmm)47 SUBROUTINE tra_ldf_lap( kt, Kmm, kit000, cdtype, pahu, pahv , & 48 & pgu , pgv , pgui, pgvi, & 49 & pt , pt_rhs, kjpt, kpass ) 50 50 !!---------------------------------------------------------------------- 51 51 !! *** ROUTINE tra_ldf_lap *** … … 59 59 !! difft = 1/(e1e2t*e3t) { di-1[ pahu e2u*e3u/e1u di(tb) ] 60 60 !! + dj-1[ pahv e1v*e3v/e2v dj(tb) ] } 61 !! Add this trend to the general tracer trend pt a:62 !! pt a = pta+ difft63 !! 64 !! ** Action : - Update pt aarrays with the before iso-level61 !! Add this trend to the general tracer trend pt_rhs : 62 !! pt_rhs = pt_rhs + difft 63 !! 64 !! ** Action : - Update pt_rhs arrays with the before iso-level 65 65 !! harmonic mixing trend. 66 66 !!---------------------------------------------------------------------- … … 74 74 REAL(wp), DIMENSION(jpi,jpj ,kjpt), INTENT(in ) :: pgu, pgv ! tracer gradient at pstep levels 75 75 REAL(wp), DIMENSION(jpi,jpj, kjpt), INTENT(in ) :: pgui, pgvi ! tracer gradient at top levels 76 REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(in ) :: pt b ! before and nowtracer fields77 REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(inout) :: pt a! tracer trend76 REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(in ) :: pt ! before tracer fields 77 REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(inout) :: pt_rhs ! tracer trend 78 78 ! 79 79 INTEGER :: ji, jj, jk, jn ! dummy loop indices … … 114 114 DO jj = 1, jpjm1 115 115 DO ji = 1, fs_jpim1 116 ztu(ji,jj,jk) = zaheeu(ji,jj,jk) * ( pt b(ji+1,jj ,jk,jn) - ptb(ji,jj,jk,jn) )117 ztv(ji,jj,jk) = zaheev(ji,jj,jk) * ( pt b(ji ,jj+1,jk,jn) - ptb(ji,jj,jk,jn) )116 ztu(ji,jj,jk) = zaheeu(ji,jj,jk) * ( pt(ji+1,jj ,jk,jn) - pt(ji,jj,jk,jn) ) 117 ztv(ji,jj,jk) = zaheev(ji,jj,jk) * ( pt(ji ,jj+1,jk,jn) - pt(ji,jj,jk,jn) ) 118 118 END DO 119 119 END DO … … 139 139 DO jj = 2, jpjm1 140 140 DO ji = fs_2, fs_jpim1 141 pt a(ji,jj,jk,jn) = pta(ji,jj,jk,jn) + ( ztu(ji,jj,jk) - ztu(ji-1,jj,jk) &142 & +ztv(ji,jj,jk) - ztv(ji,jj-1,jk) ) &143 & / ( e1e2t(ji,jj) * e3t(ji,jj,jk,Kmm) )141 pt_rhs(ji,jj,jk,jn) = pt_rhs(ji,jj,jk,jn) + ( ztu(ji,jj,jk) - ztu(ji-1,jj,jk) & 142 & + ztv(ji,jj,jk) - ztv(ji,jj-1,jk) ) & 143 & / ( e1e2t(ji,jj) * e3t(ji,jj,jk,Kmm) ) 144 144 END DO 145 145 END DO … … 160 160 161 161 162 SUBROUTINE tra_ldf_blp( kt, kit000, cdtype, pahu, pahv, pgu , pgv ,&163 & pgui, pgvi,&164 & ptb , pta , kjpt, kldf, Kmm)162 SUBROUTINE tra_ldf_blp( kt, Kmm, kit000, cdtype, pahu, pahv , & 163 & pgu , pgv , pgui, pgvi, & 164 & pt , pt_rhs, kjpt, kldf ) 165 165 !!---------------------------------------------------------------------- 166 166 !! *** ROUTINE tra_ldf_blp *** … … 184 184 REAL(wp), DIMENSION(jpi,jpj ,kjpt), INTENT(in ) :: pgu, pgv ! tracer gradient at pstep levels 185 185 REAL(wp), DIMENSION(jpi,jpj, kjpt), INTENT(in ) :: pgui, pgvi ! tracer gradient at top levels 186 REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(in ) :: pt b! before and now tracer fields187 REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(inout) :: pt a! tracer trend186 REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(in ) :: pt ! before and now tracer fields 187 REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(inout) :: pt_rhs ! tracer trend 188 188 ! 189 189 INTEGER :: ji, jj, jk, jn ! dummy loop indices … … 205 205 zlap(:,:,:,:) = 0._wp 206 206 ! 207 SELECT CASE ( kldf ) !== 1st laplacian applied to pt b(output in zlap) ==!207 SELECT CASE ( kldf ) !== 1st laplacian applied to pt (output in zlap) ==! 208 208 ! 209 209 CASE ( np_blp ) ! iso-level bilaplacian 210 CALL tra_ldf_lap ( kt, kit000, cdtype, pahu, pahv, pgu, pgv, pgui, pgvi, ptb, zlap, kjpt, 1, Kmm)210 CALL tra_ldf_lap ( kt, Kmm, kit000, cdtype, pahu, pahv, pgu, pgv, pgui, pgvi, pt, zlap, kjpt, 1 ) 211 211 CASE ( np_blp_i ) ! rotated bilaplacian : standard operator (Madec) 212 CALL tra_ldf_iso ( kt, kit000, cdtype, pahu, pahv, pgu, pgv, pgui, pgvi, ptb, ptb, zlap, kjpt, 1, Kmm)212 CALL tra_ldf_iso ( kt, Kmm, kit000, cdtype, pahu, pahv, pgu, pgv, pgui, pgvi, pt, pt, zlap, kjpt, 1 ) 213 213 CASE ( np_blp_it ) ! rotated bilaplacian : triad operator (griffies) 214 CALL tra_ldf_triad( kt, kit000, cdtype, pahu, pahv, pgu, pgv, pgui, pgvi, ptb, ptb, zlap, kjpt, 1, Kmm)214 CALL tra_ldf_triad( kt, Kmm, kit000, cdtype, pahu, pahv, pgu, pgv, pgui, pgvi, pt, pt, zlap, kjpt, 1 ) 215 215 END SELECT 216 216 ! … … 221 221 ENDIF 222 222 ! 223 SELECT CASE ( kldf ) !== 2nd laplacian applied to zlap (output in pt a) ==!223 SELECT CASE ( kldf ) !== 2nd laplacian applied to zlap (output in pt_rhs) ==! 224 224 ! 225 225 CASE ( np_blp ) ! iso-level bilaplacian 226 CALL tra_ldf_lap ( kt, kit000, cdtype, pahu, pahv, zglu, zglv, zgui, zgvi, zlap, pta, kjpt, 2, Kmm)226 CALL tra_ldf_lap ( kt, Kmm, kit000, cdtype, pahu, pahv, zglu, zglv, zgui, zgvi, zlap, pt_rhs, kjpt, 2 ) 227 227 CASE ( np_blp_i ) ! rotated bilaplacian : standard operator (Madec) 228 CALL tra_ldf_iso ( kt, kit000, cdtype, pahu, pahv, zglu, zglv, zgui, zgvi, zlap, ptb, pta, kjpt, 2, Kmm)228 CALL tra_ldf_iso ( kt, Kmm, kit000, cdtype, pahu, pahv, zglu, zglv, zgui, zgvi, zlap, pt , pt_rhs, kjpt, 2 ) 229 229 CASE ( np_blp_it ) ! rotated bilaplacian : triad operator (griffies) 230 CALL tra_ldf_triad( kt, kit000, cdtype, pahu, pahv, zglu, zglv, zgui, zgvi, zlap, ptb, pta, kjpt, 2, Kmm)230 CALL tra_ldf_triad( kt, Kmm, kit000, cdtype, pahu, pahv, zglu, zglv, zgui, zgvi, zlap, pt , pt_rhs, kjpt, 2 ) 231 231 END SELECT 232 232 !
Note: See TracChangeset
for help on using the changeset viewer.