Changeset 14072 for NEMO/trunk/src/OCE/TRA/trazdf.F90
- Timestamp:
- 2020-12-04T08:48:38+01:00 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/src/OCE/TRA/trazdf.F90
r14010 r14072 17 17 USE phycst ! physical constant 18 18 USE zdf_oce ! ocean vertical physics variables 19 USE zdfmfc ! Mass FLux Convection 19 USE zdfmfc ! Mass FLux Convection 20 20 USE sbc_oce ! surface boundary condition: ocean 21 21 USE ldftra ! lateral diffusion: eddy diffusivity 22 USE ldfslp ! lateral diffusion: iso-neutral slope 22 USE ldfslp ! lateral diffusion: iso-neutral slope 23 23 USE trd_oce ! trends: ocean variables 24 24 USE trdtra ! trends: tracer trend manager … … 77 77 ! 78 78 ! !* compute lateral mixing trend and add it to the general trend 79 CALL tra_zdf_imp( kt, nit000, 'TRA', rDt, Kbb, Kmm, Krhs, pts, Kaa, jpts ) 79 CALL tra_zdf_imp( kt, nit000, 'TRA', rDt, Kbb, Kmm, Krhs, pts, Kaa, jpts ) 80 80 81 81 !!gm WHY here ! and I don't like that ! … … 113 113 END SUBROUTINE tra_zdf 114 114 115 116 SUBROUTINE tra_zdf_imp( kt, kit000, cdtype, p2dt, Kbb, Kmm, Krhs, pt, Kaa, kjpt ) 115 116 SUBROUTINE tra_zdf_imp( kt, kit000, cdtype, p2dt, Kbb, Kmm, Krhs, pt, Kaa, kjpt ) 117 117 !!---------------------------------------------------------------------- 118 118 !! *** ROUTINE tra_zdf_imp *** 119 119 !! 120 120 !! ** Purpose : Compute the after tracer through a implicit computation 121 !! of the vertical tracer diffusion (including the vertical component 122 !! of lateral mixing (only for 2nd order operator, for fourth order 123 !! it is already computed and add to the general trend in traldf) 121 !! of the vertical tracer diffusion (including the vertical component 122 !! of lateral mixing (only for 2nd order operator, for fourth order 123 !! it is already computed and add to the general trend in traldf) 124 124 !! 125 125 !! ** Method : The vertical diffusion of a tracer ,t , is given by: … … 169 169 zwt(:,:,1) = 0._wp 170 170 ! 171 IF( l_ldfslp ) THEN ! isoneutral diffusion: add the contribution 172 IF( ln_traldf_msc ) THEN ! MSC iso-neutral operator 171 IF( l_ldfslp ) THEN ! isoneutral diffusion: add the contribution 172 IF( ln_traldf_msc ) THEN ! MSC iso-neutral operator 173 173 DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 174 zwt(ji,jj,jk) = zwt(ji,jj,jk) + akz(ji,jj,jk) 174 zwt(ji,jj,jk) = zwt(ji,jj,jk) + akz(ji,jj,jk) 175 175 END_3D 176 176 ELSE ! standard or triad iso-neutral operator … … 220 220 ! The solution will be in the 4d array pta. 221 221 ! The 3d array zwt is used as a work space array. 222 ! En route to the solution pt(:,:,:,:,Kaa) is used a to evaluate the rhs and then 222 ! En route to the solution pt(:,:,:,:,Kaa) is used a to evaluate the rhs and then 223 223 ! used as a work space array: its value is modified. 224 224 ! … … 230 230 END_3D 231 231 ! 232 ENDIF 233 ! 232 ENDIF 233 ! 234 234 ! Modification of rhs to add MF scheme 235 235 IF ( ln_zdfmfc ) THEN … … 239 239 DO_2D( 0, 0, 0, 0 ) !* 2nd recurrence: Zk = Yk - Ik / Tk-1 Zk-1 240 240 pt(ji,jj,1,jn,Kaa) = e3t(ji,jj,1,Kbb) * pt(ji,jj,1,jn,Kbb) & 241 & + p2dt * e3t(ji,jj,1,Kmm) * pt(ji,jj,1,jn,Krhs) 241 & + p2dt * e3t(ji,jj,1,Kmm) * pt(ji,jj,1,jn,Krhs) 242 242 END_2D 243 243 DO_3D( 0, 0, 0, 0, 2, jpkm1 )
Note: See TracChangeset
for help on using the changeset viewer.