Changeset 3787 for branches/2012/dev_MERGE_2012/NEMOGCM
- Timestamp:
- 2013-02-10T13:06:34+01:00 (12 years ago)
- Location:
- branches/2012/dev_MERGE_2012/NEMOGCM/NEMO/OPA_SRC/TRA
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2012/dev_MERGE_2012/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_eiv.F90
r3294 r3787 168 168 DO ji = fs_2, fs_jpim1 ! vector opt. 169 169 z2d(ji,jj) = z2d(ji,jj) + zztmp * u_eiv(ji,jj,jk) & 170 & * (tsn(ji,jj,jk,jp_tem)+tsn(ji+1,jj,jk,jp_tem)) * e 1u(ji,jj) * fse3u(ji,jj,jk)170 & * (tsn(ji,jj,jk,jp_tem)+tsn(ji+1,jj,jk,jp_tem)) * e2u(ji,jj) * fse3u(ji,jj,jk) 171 171 END DO 172 172 END DO … … 179 179 DO ji = fs_2, fs_jpim1 ! vector opt. 180 180 z2d(ji,jj) = z2d(ji,jj) + zztmp * v_eiv(ji,jj,jk) & 181 & * (tsn(ji,jj,jk,jp_tem)+tsn(ji,jj+1,jk,jp_tem)) * e 2v(ji,jj) * fse3v(ji,jj,jk)181 & * (tsn(ji,jj,jk,jp_tem)+tsn(ji,jj+1,jk,jp_tem)) * e1v(ji,jj) * fse3v(ji,jj,jk) 182 182 END DO 183 183 END DO -
branches/2012/dev_MERGE_2012/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_ubs.F90
r3625 r3787 51 51 !! and add it to the general trend of passive tracer equations. 52 52 !! 53 !! ** Method : The upstream biased third (UBS) is order scheme based54 !! on anupstream-biased parabolic interpolation (Shchepetkin and McWilliams 2005)53 !! ** Method : The upstream biased 3rd order scheme (UBS) is based on an 54 !! upstream-biased parabolic interpolation (Shchepetkin and McWilliams 2005) 55 55 !! It is only used in the horizontal direction. 56 56 !! For example the i-component of the advective fluxes are given by : 57 !! ! e 1u e3u un ( mi(Tn) - zltu(i ) ) if un(i) >= 057 !! ! e2u e3u un ( mi(Tn) - zltu(i ) ) if un(i) >= 0 58 58 !! zwx = ! or 59 !! ! e 1u e3u un ( mi(Tn) - zltu(i+1) ) if un(i) < 059 !! ! e2u e3u un ( mi(Tn) - zltu(i+1) ) if un(i) < 0 60 60 !! where zltu is the second derivative of the before temperature field: 61 61 !! zltu = 1/e3t di[ e2u e3u / e1u di[Tb] ] … … 68 68 !! of the scheme, is evaluated using the before velocity (forward in time). 69 69 !! Note that UBS is not positive. Do not use it on passive tracers. 70 !! On the vertical, the advection is evaluated using a TVD scheme, as71 !! the UBS have been found to be too diffusive.70 !! On the vertical, the advection is evaluated using a TVD scheme, 71 !! as the UBS have been found to be too diffusive. 72 72 !! 73 73 !! ** Action : - update (pta) with the now advective tracer trends … … 83 83 INTEGER , INTENT(in ) :: kjpt ! number of tracers 84 84 REAL(wp), DIMENSION( jpk ), INTENT(in ) :: p2dt ! vertical profile of tracer time-step 85 REAL(wp), DIMENSION(jpi,jpj,jpk ), INTENT(in ) :: pun, pvn, pwn ! 3 ocean velocitycomponents85 REAL(wp), DIMENSION(jpi,jpj,jpk ), INTENT(in ) :: pun, pvn, pwn ! 3 ocean transport components 86 86 REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(in ) :: ptb, ptn ! before and now tracer fields 87 87 REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(inout) :: pta ! tracer trend … … 142 142 DO jj = 1, jpjm1 143 143 DO ji = 1, fs_jpim1 ! vector opt. 144 ! upstream transport 144 ! upstream transport (x2) 145 145 zfp_ui = pun(ji,jj,jk) + ABS( pun(ji,jj,jk) ) 146 146 zfm_ui = pun(ji,jj,jk) - ABS( pun(ji,jj,jk) ) 147 147 zfp_vj = pvn(ji,jj,jk) + ABS( pvn(ji,jj,jk) ) 148 148 zfm_vj = pvn(ji,jj,jk) - ABS( pvn(ji,jj,jk) ) 149 ! centered scheme150 zcenut = 0.5 *pun(ji,jj,jk) * ( ptn(ji,jj,jk,jn) + ptn(ji+1,jj ,jk,jn) )151 zcenvt = 0.5 *pvn(ji,jj,jk) * ( ptn(ji,jj,jk,jn) + ptn(ji ,jj+1,jk,jn) )152 ! UBS scheme153 zwx(ji,jj,jk) = zcenut - zfp_ui * zltu(ji,jj,jk) - zfm_ui * zltu(ji+1,jj,jk)154 zwy(ji,jj,jk) = zcenvt - zfp_vj * zltv(ji,jj,jk) - zfm_vj * zltv(ji,jj+1,jk)149 ! 2nd order centered advective fluxes (x2) 150 zcenut = pun(ji,jj,jk) * ( ptn(ji,jj,jk,jn) + ptn(ji+1,jj ,jk,jn) ) 151 zcenvt = pvn(ji,jj,jk) * ( ptn(ji,jj,jk,jn) + ptn(ji ,jj+1,jk,jn) ) 152 ! UBS advective fluxes 153 zwx(ji,jj,jk) = 0.5 * ( zcenut - zfp_ui * zltu(ji,jj,jk) - zfm_ui * zltu(ji+1,jj,jk) ) 154 zwy(ji,jj,jk) = 0.5 * ( zcenvt - zfp_vj * zltv(ji,jj,jk) - zfm_vj * zltv(ji,jj+1,jk) ) 155 155 END DO 156 156 END DO
Note: See TracChangeset
for help on using the changeset viewer.