Changeset 21 for trunk/NEMO/OPA_SRC
- Timestamp:
- 2004-02-17T09:46:39+01:00 (20 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/OPA_SRC/TRA/trabbl_adv.h90
r3 r21 71 71 zahu, zahv ! " " 72 72 REAL(wp), DIMENSION(jpi,jpj) :: & ! temporary workspace arrays 73 zalphax, zalphay, zwu, zwv,& ! " "74 z unb, zvnb, zind,& ! " "73 zalphax, zwu, zunb, & ! " " 74 zalphay, zwv, zvnb, & ! " " 75 75 zwx, zwy, zww, zwz ! " " 76 76 REAL(wp), DIMENSION(jpi,jpj,jpk) :: & 77 77 zhdivn ! temporary workspace arrays 78 78 REAL(wp) :: & 79 zfui, zfvj, zbt, zsigna, & ! temporary scalars 80 zcofi , zupsut, zupsus, & ! " " 81 zcofj , zupsvt, zupsvs, & ! " " 82 zcenut, zcenus, & ! " " 83 zcenvt, zcenvs ! " " 79 zfui, zfvj, zbt, zsigna ! temporary scalars 84 80 REAL(wp) :: & 85 fsalbt, pft, pfs, pfh, & ! statement function 86 fsx, fsy, pfx1, pfx2, & ! " " 87 pfu, pfv, pfy1, pfy2 ! " " 81 fsalbt, pft, pfs, pfh ! statement function 88 82 !!---------------------------------------------------------------------- 89 83 ! ratio alpha/beta … … 106 100 +( 0.791325e-08 * pft - 0.933746e-06 ) * pft & 107 101 + 0.380374e-04 ) * pfh 108 ! Up Stream Advection Scheme109 ! ==========================110 ! fsx: along i-direction111 ! fsy: along j-direction112 113 fsx( pfx1, pfx2, pfu ) = ( ( pfu + abs(pfu) ) * pfx1 &114 +( pfu - abs(pfu) ) * pfx2 ) * 0.5115 fsy( pfy1, pfy2, pfv ) = ( ( pfv + abs(pfv) ) * pfy1 &116 +( pfv - abs(pfv) ) * pfy2 ) * 0.5117 102 !!---------------------------------------------------------------------- 118 103 … … 142 127 #endif 143 128 END DO 144 # 145 j = 1129 #if defined key_vectopt_loop && ! defined key_autotasking 130 jj = 1 146 131 DO ji = 1, jpij-jpi ! vector opt. (forced unrolling) 147 132 zunb(ji,jj) = un(ji,jj,mbku(ji,jj)) * umask(ji,jj,1) 148 133 zvnb(ji,jj) = vn(ji,jj,mbkv(ji,jj)) * vmask(ji,jj,1) ! retirer le mask en u, v et t ! 149 134 END DO 150 # 135 #else 151 136 DO jj = 1, jpjm1 152 137 DO ji = 1, jpim1 … … 178 163 zahu(ji,jj) = atrbbl*e2u(ji,jj)*fse3u(ji,jj,iku)/e1u(ji,jj) * umask(ji,jj,1) 179 164 zahv(ji,jj) = atrbbl*e1v(ji,jj)*fse3v(ji,jj,ikv)/e2v(ji,jj) * vmask(ji,jj,1) 180 # if ! defined key_vectopt_loop || defined key_autotasking181 END DO 182 # endif165 # if ! defined key_vectopt_loop || defined key_autotasking 166 END DO 167 # endif 183 168 END DO 184 169 #endif … … 259 244 END SELECT 260 245 261 262 246 ! lateral boundary conditions on zalphax and zalphay (unchanged sign) 263 247 CALL lbc_lnk( zalphax, 'U', 1. ) ; CALL lbc_lnk( zalphay, 'V', 1. ) 264 #endif 248 265 249 266 250 ! 3. Velocities that are exchanged between ajacent bottom boxes. … … 288 272 END DO 289 273 290 ! lateral boundary conditions on u zbbl and vzbbl (changed sign)291 CALL lbc_lnk( u zbbl, 'U', -1. ) ; CALL lbc_lnk( vzbbl, 'V', -1. )274 ! lateral boundary conditions on u_bbl and v_bbl (changed sign) 275 CALL lbc_lnk( u_bbl, 'U', -1. ) ; CALL lbc_lnk( v_bbl, 'V', -1. ) 292 276 293 277 … … 384 368 ! zwz(ji,jj) = 0.5* zfvj * ( zsnb(ji,jj) + zsnb(ji,jj+1) ) 385 369 ! upstream scheme 386 zwx(ji,jj) = fsx(ztbb(ji,jj),ztbb(ji+1,jj),zfui) 387 zwy(ji,jj) = fsy(ztbb(ji,jj),ztbb(ji,jj+1),zfvj) 388 zww(ji,jj) = fsx(zsbb(ji,jj),zsbb(ji+1,jj),zfui) 389 zwz(ji,jj) = fsy(zsbb(ji,jj),zsbb(ji,jj+1),zfvj) 370 zwx(ji,jj) = ( ( zfui + ABS( zfui ) ) * ztbb(ji ,jj ) & 371 & +( zfui - ABS( zfui ) ) * ztbb(ji+1,jj ) ) * 0.5 372 zwy(ji,jj) = ( ( zfui + ABS( zfvj ) ) * ztbb(ji ,jj ) & 373 & +( zfui - ABS( zfvj ) ) * ztbb(ji ,jj+1) ) * 0.5 374 zww(ji,jj) = ( ( zfui + ABS( zfui ) ) * zsbb(ji ,jj ) & 375 & +( zfui - ABS( zfui ) ) * zsbb(ji+1,jj ) ) * 0.5 376 zwz(ji,jj) = ( ( zfui + ABS( zfvj ) ) * zsbb(ji ,jj ) & 377 & +( zfui - ABS( zfvj ) ) * zsbb(ji ,jj+1) ) * 0.5 390 378 #if ! defined key_vectopt_loop || defined key_autotasking 391 379 END DO
Note: See TracChangeset
for help on using the changeset viewer.