- Timestamp:
- 2015-10-31T08:40:45+01:00 (9 years ago)
- Location:
- branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/NST_SRC
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/NST_SRC/agrif_opa_interp.F90
r5656 r5845 46 46 # endif 47 47 48 # include "domzgr_substitute.h90"49 48 # include "vectopt_loop_substitute.h90" 50 49 !!---------------------------------------------------------------------- … … 76 75 !! *** ROUTINE Agrif_DYN *** 77 76 !!---------------------------------------------------------------------- 78 !!79 77 INTEGER, INTENT(in) :: kt 80 ! !78 ! 81 79 INTEGER :: ji,jj,jk, j1,j2, i1,i2 82 80 REAL(wp) :: timeref … … 137 135 DO jk=1,jpkm1 138 136 DO jj=1,jpj 139 spgu(2,jj)=spgu(2,jj)+ fse3u(2,jj,jk)*ua(2,jj,jk)137 spgu(2,jj)=spgu(2,jj)+e3u_n(2,jj,jk)*ua(2,jj,jk) 140 138 END DO 141 139 END DO … … 143 141 DO jj=1,jpj 144 142 IF (umask(2,jj,1).NE.0.) THEN 145 spgu(2,jj)=spgu(2,jj) /hu(2,jj)143 spgu(2,jj)=spgu(2,jj)*r1_hu_n(2,jj) 146 144 ENDIF 147 145 END DO … … 161 159 DO jk=1,jpkm1 162 160 DO jj=1,jpj 163 spgu1(2,jj)=spgu1(2,jj)+ fse3u(2,jj,jk)*ua(2,jj,jk)161 spgu1(2,jj)=spgu1(2,jj)+e3u_n(2,jj,jk)*ua(2,jj,jk) 164 162 END DO 165 163 END DO … … 167 165 DO jj=1,jpj 168 166 IF (umask(2,jj,1).NE.0.) THEN 169 spgu1(2,jj)=spgu1(2,jj) /hu(2,jj)167 spgu1(2,jj)=spgu1(2,jj)*r1_hu_n(2,jj) 170 168 ENDIF 171 169 END DO … … 182 180 DO jk=1,jpkm1 183 181 DO jj=1,jpj 184 spgv1(2,jj)=spgv1(2,jj)+ fse3v_a(2,jj,jk)*va(2,jj,jk)182 spgv1(2,jj)=spgv1(2,jj)+e3v_a(2,jj,jk)*va(2,jj,jk) 185 183 END DO 186 184 END DO 187 185 DO jj=1,jpj 188 spgv1(2,jj)=spgv1(2,jj)* hvr_a(2,jj)186 spgv1(2,jj)=spgv1(2,jj)*r1_hv_a(2,jj) 189 187 END DO 190 188 DO jk=1,jpkm1 … … 207 205 DO jk=1,jpkm1 208 206 DO jj=1,jpj 209 spgu(nlci-2,jj)=spgu(nlci-2,jj)+ fse3u(nlci-2,jj,jk)*ua(nlci-2,jj,jk)207 spgu(nlci-2,jj)=spgu(nlci-2,jj)+e3u_n(nlci-2,jj,jk)*ua(nlci-2,jj,jk) 210 208 ENDDO 211 209 ENDDO 212 210 DO jj=1,jpj 213 211 IF (umask(nlci-2,jj,1).NE.0.) THEN 214 spgu(nlci-2,jj)=spgu(nlci-2,jj) /hu(nlci-2,jj)212 spgu(nlci-2,jj)=spgu(nlci-2,jj)*r1_hu_n(nlci-2,jj) 215 213 ENDIF 216 214 END DO … … 229 227 DO jk=1,jpkm1 230 228 DO jj=1,jpj 231 spgu1(nlci-2,jj)=spgu1(nlci-2,jj)+ fse3u(nlci-2,jj,jk)*ua(nlci-2,jj,jk)*umask(nlci-2,jj,jk)229 spgu1(nlci-2,jj)=spgu1(nlci-2,jj)+e3u_n(nlci-2,jj,jk)*ua(nlci-2,jj,jk)*umask(nlci-2,jj,jk) 232 230 END DO 233 231 END DO 234 232 DO jj=1,jpj 235 233 IF (umask(nlci-2,jj,1).NE.0.) THEN 236 spgu1(nlci-2,jj)=spgu1(nlci-2,jj) /hu(nlci-2,jj)234 spgu1(nlci-2,jj)=spgu1(nlci-2,jj)*r1_hu_n(nlci-2,jj) 237 235 ENDIF 238 236 END DO … … 248 246 DO jk=1,jpkm1 249 247 DO jj=1,jpj 250 spgv1(nlci-1,jj)=spgv1(nlci-1,jj)+ fse3v_a(nlci-1,jj,jk)*va(nlci-1,jj,jk)*vmask(nlci-1,jj,jk)248 spgv1(nlci-1,jj)=spgv1(nlci-1,jj)+e3v_a(nlci-1,jj,jk)*va(nlci-1,jj,jk)*vmask(nlci-1,jj,jk) 251 249 END DO 252 250 END DO 253 251 254 252 DO jj=1,jpj 255 spgv1(nlci-1,jj)=spgv1(nlci-1,jj)* hvr_a(nlci-1,jj)253 spgv1(nlci-1,jj)=spgv1(nlci-1,jj)*r1_hv_a(nlci-1,jj) 256 254 END DO 257 255 … … 278 276 DO jk=1,jpkm1 279 277 DO ji=1,jpi 280 spgv(ji,2)=spgv(ji,2)+ fse3v(ji,2,jk)*va(ji,2,jk)278 spgv(ji,2)=spgv(ji,2)+e3v_n(ji,2,jk)*va(ji,2,jk) 281 279 END DO 282 280 END DO … … 284 282 DO ji=1,jpi 285 283 IF (vmask(ji,2,1).NE.0.) THEN 286 spgv(ji,2)=spgv(ji,2) /hv(ji,2)284 spgv(ji,2)=spgv(ji,2)* r1_hv_n(ji,2) 287 285 ENDIF 288 286 END DO … … 302 300 DO jk=1,jpkm1 303 301 DO ji=1,jpi 304 spgv1(ji,2)=spgv1(ji,2)+ fse3v(ji,2,jk)*va(ji,2,jk)*vmask(ji,2,jk)302 spgv1(ji,2)=spgv1(ji,2)+e3v_n(ji,2,jk)*va(ji,2,jk)*vmask(ji,2,jk) 305 303 END DO 306 304 END DO … … 308 306 DO ji=1,jpi 309 307 IF (vmask(ji,2,1).NE.0.) THEN 310 spgv1(ji,2)=spgv1(ji,2) /hv(ji,2)308 spgv1(ji,2)=spgv1(ji,2)*r1_hv_n(ji,2) 311 309 ENDIF 312 310 END DO … … 323 321 DO jk=1,jpkm1 324 322 DO ji=1,jpi 325 spgu1(ji,2)=spgu1(ji,2)+ fse3u_a(ji,2,jk)*ua(ji,2,jk)*umask(ji,2,jk)323 spgu1(ji,2)=spgu1(ji,2)+e3u_a(ji,2,jk)*ua(ji,2,jk)*umask(ji,2,jk) 326 324 END DO 327 325 END DO 328 326 329 327 DO ji=1,jpi 330 spgu1(ji,2)=spgu1(ji,2)* hur_a(ji,2)328 spgu1(ji,2)=spgu1(ji,2)*r1_hu_a(ji,2) 331 329 END DO 332 330 … … 353 351 DO jk=1,jpkm1 354 352 DO ji=1,jpi 355 spgv(ji,nlcj-2)=spgv(ji,nlcj-2)+ fse3v(ji,nlcj-2,jk)*va(ji,nlcj-2,jk)353 spgv(ji,nlcj-2)=spgv(ji,nlcj-2)+e3v_n(ji,nlcj-2,jk)*va(ji,nlcj-2,jk) 356 354 END DO 357 355 END DO … … 359 357 DO ji=1,jpi 360 358 IF (vmask(ji,nlcj-2,1).NE.0.) THEN 361 spgv(ji,nlcj-2)=spgv(ji,nlcj-2) /hv(ji,nlcj-2)359 spgv(ji,nlcj-2)=spgv(ji,nlcj-2)*r1_hv_n(ji,nlcj-2) 362 360 ENDIF 363 361 END DO … … 378 376 DO jk=1,jpkm1 379 377 DO ji=1,jpi 380 spgv1(ji,nlcj-2)=spgv1(ji,nlcj-2)+ fse3v(ji,nlcj-2,jk)*va(ji,nlcj-2,jk)378 spgv1(ji,nlcj-2)=spgv1(ji,nlcj-2)+e3v_n(ji,nlcj-2,jk)*va(ji,nlcj-2,jk) 381 379 END DO 382 380 END DO … … 384 382 DO ji=1,jpi 385 383 IF (vmask(ji,nlcj-2,1).NE.0.) THEN 386 spgv1(ji,nlcj-2)=spgv1(ji,nlcj-2) /hv(ji,nlcj-2)384 spgv1(ji,nlcj-2)=spgv1(ji,nlcj-2)*r1_hv_n(ji,nlcj-2) 387 385 ENDIF 388 386 END DO … … 399 397 DO jk=1,jpkm1 400 398 DO ji=1,jpi 401 spgu1(ji,nlcj-1)=spgu1(ji,nlcj-1)+ fse3u_a(ji,nlcj-1,jk)*ua(ji,nlcj-1,jk)399 spgu1(ji,nlcj-1)=spgu1(ji,nlcj-1)+e3u_a(ji,nlcj-1,jk)*ua(ji,nlcj-1,jk) 402 400 END DO 403 401 END DO 404 402 405 403 DO ji=1,jpi 406 spgu1(ji,nlcj-1)=spgu1(ji,nlcj-1)* hur_a(ji,nlcj-1)404 spgu1(ji,nlcj-1)=spgu1(ji,nlcj-1)*r1_hu_a(ji,nlcj-1) 407 405 END DO 408 406 … … 812 810 DO ji=i1,i2 813 811 ptab(ji,jj,jk) = e2u(ji,jj) * un(ji,jj,jk) 814 ptab(ji,jj,jk) = ptab(ji,jj,jk) * fse3u(ji,jj,jk)812 ptab(ji,jj,jk) = ptab(ji,jj,jk) * e3u_n(ji,jj,jk) 815 813 END DO 816 814 END DO … … 821 819 DO jj=j1,j2 822 820 ua(i1:i2,jj,jk) = (ptab(i1:i2,jj,jk)/(zrhoy*e2u(i1:i2,jj))) 823 ua(i1:i2,jj,jk) = ua(i1:i2,jj,jk) / fse3u(i1:i2,jj,jk)821 ua(i1:i2,jj,jk) = ua(i1:i2,jj,jk) / e3u_n(i1:i2,jj,jk) 824 822 END DO 825 823 END DO … … 880 878 DO ji=i1,i2 881 879 ptab(ji,jj,jk) = e1v(ji,jj) * vn(ji,jj,jk) 882 ptab(ji,jj,jk) = ptab(ji,jj,jk) * fse3v(ji,jj,jk)880 ptab(ji,jj,jk) = ptab(ji,jj,jk) * e3v_n(ji,jj,jk) 883 881 END DO 884 882 END DO … … 889 887 DO jj=j1,j2 890 888 va(i1:i2,jj,jk) = (ptab(i1:i2,jj,jk)/(zrhox*e1v(i1:i2,jj))) 891 va(i1:i2,jj,jk) = va(i1:i2,jj,jk) / fse3v(i1:i2,jj,jk)889 va(i1:i2,jj,jk) = va(i1:i2,jj,jk) / e3v_n(i1:i2,jj,jk) 892 890 END DO 893 891 END DO … … 944 942 DO jj=j1,j2 945 943 DO ji=i1,i2 946 ptab(ji,jj) = un_b(ji,jj) * e2u(ji,jj) * hu (ji,jj)944 ptab(ji,jj) = un_b(ji,jj) * e2u(ji,jj) * hu_n(ji,jj) 947 945 END DO 948 946 END DO … … 1021 1019 DO jj=j1,j2 1022 1020 DO ji=i1,i2 1023 ptab(ji,jj) = vn_b(ji,jj) * e1v(ji,jj) * hv (ji,jj)1021 ptab(ji,jj) = vn_b(ji,jj) * e1v(ji,jj) * hv_n(ji,jj) 1024 1022 END DO 1025 1023 END DO … … 1209 1207 WRITE(numout,*) 'ERROR bathymetry merge at the northen border ji,jj,jk', ji+nimpp-1,jj+njmpp-1,jk 1210 1208 ENDIF 1211 WRITE(numout,*) ' ptab(ji,jj,jk), fse3t(ji,jj,jk) ', ptab(ji,jj,jk), e3t_0(ji,jj,jk)1209 WRITE(numout,*) ' ptab(ji,jj,jk), e3t(ji,jj,jk) ', ptab(ji,jj,jk), e3t_0(ji,jj,jk) 1212 1210 kindic_agr = kindic_agr + 1 1213 1211 ENDIF … … 1219 1217 ! 1220 1218 END SUBROUTINE interpe3t 1219 1221 1220 1222 1221 SUBROUTINE interpumsk(ptab,i1,i2,j1,j2,k1,k2,before,nb,ndir) -
branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/NST_SRC/agrif_opa_sponge.F90
r5836 r5845 17 17 PUBLIC interptsn_sponge, interpun_sponge, interpvn_sponge 18 18 19 !! * Substitutions20 # include "domzgr_substitute.h90"21 19 !!---------------------------------------------------------------------- 22 20 !! NEMO/NST 3.3 , NEMO Consortium (2010) … … 210 208 DO jj = j1,j2-1 211 209 DO ji = i1,i2-1 212 zabe1 = fsaht_spu(ji,jj) * umask(ji,jj,jk) * e2_e1u(ji,jj) * fse3u_n(ji,jj,jk)213 zabe2 = fsaht_spv(ji,jj) * vmask(ji,jj,jk) * e1_e2v(ji,jj) * fse3v_n(ji,jj,jk)210 zabe1 = fsaht_spu(ji,jj) * umask(ji,jj,jk) * e2_e1u(ji,jj) * e3u_n(ji,jj,jk) 211 zabe2 = fsaht_spv(ji,jj) * vmask(ji,jj,jk) * e1_e2v(ji,jj) * e3v_n(ji,jj,jk) 214 212 ztu(ji,jj,jk) = zabe1 * ( tsbdiff(ji+1,jj ,jk,jn) - tsbdiff(ji,jj,jk,jn) ) 215 213 ztv(ji,jj,jk) = zabe2 * ( tsbdiff(ji ,jj+1,jk,jn) - tsbdiff(ji,jj,jk,jn) ) … … 239 237 240 238 IF (.NOT. tabspongedone_tsn(ji,jj)) THEN 241 zbtr = r1_e1e2t(ji,jj) / fse3t_n(ji,jj,jk)239 zbtr = r1_e1e2t(ji,jj) / e3t_n(ji,jj,jk) 242 240 ! horizontal diffusive trends 243 241 ztsa = zbtr * ( ztu(ji,jj,jk) - ztu(ji-1,jj,jk) + ztv(ji,jj,jk) - ztv(ji ,jj-1,jk) ) … … 290 288 DO jj = j1,j2 291 289 DO ji = i1+1,i2 ! vector opt. 292 zbtr = r1_e1e2t(ji,jj) / fse3t_n(ji,jj,jk) * fsahm_spt(ji,jj)293 hdivdiff(ji,jj,jk) = ( e2u(ji ,jj)* fse3u_n(ji ,jj,jk) * ubdiff(ji ,jj,jk) &294 & -e2u(ji-1,jj)* fse3u_n(ji-1,jj,jk) * ubdiff(ji-1,jj,jk) ) * zbtr290 zbtr = r1_e1e2t(ji,jj) / e3t_n(ji,jj,jk) * fsahm_spt(ji,jj) 291 hdivdiff(ji,jj,jk) = ( e2u(ji ,jj)*e3u_n(ji ,jj,jk) * ubdiff(ji ,jj,jk) & 292 & -e2u(ji-1,jj)*e3u_n(ji-1,jj,jk) * ubdiff(ji-1,jj,jk) ) * zbtr 295 293 END DO 296 294 END DO … … 298 296 DO jj = j1,j2-1 299 297 DO ji = i1,i2 ! vector opt. 300 zbtr = r1_e1e2f(ji,jj) * fse3f_n(ji,jj,jk) * fsahm_spf(ji,jj)298 zbtr = r1_e1e2f(ji,jj) * e3f_n(ji,jj,jk) * fsahm_spf(ji,jj) 301 299 rotdiff(ji,jj,jk) = (-e1u(ji,jj+1) * ubdiff(ji,jj+1,jk) & 302 300 +e1u(ji,jj ) * ubdiff(ji,jj ,jk) & … … 318 316 ze1v = hdivdiff(ji,jj,jk) 319 317 ! horizontal diffusive trends 320 zua = - ( ze2u - rotdiff (ji,jj-1,jk)) / ( e2u(ji,jj) * fse3u_n(ji,jj,jk) ) &318 zua = - ( ze2u - rotdiff (ji,jj-1,jk)) / ( e2u(ji,jj) * e3u_n(ji,jj,jk) ) & 321 319 + ( hdivdiff(ji+1,jj,jk) - ze1v ) / e1u(ji,jj) 322 320 … … 344 342 345 343 ! horizontal diffusive trends 346 zva = + ( ze2u - rotdiff (ji-1,jj,jk)) / ( e1v(ji,jj) * fse3v_n(ji,jj,jk) ) &344 zva = + ( ze2u - rotdiff (ji-1,jj,jk)) / ( e1v(ji,jj) * e3v_n(ji,jj,jk) ) & 347 345 + ( hdivdiff(ji,jj+1,jk) - ze1v ) / e2v(ji,jj) 348 346 … … 396 394 DO jj = j1+1,j2 397 395 DO ji = i1,i2 ! vector opt. 398 zbtr = r1_e1e2t(ji,jj) / fse3t_n(ji,jj,jk) * fsahm_spt(ji,jj)399 hdivdiff(ji,jj,jk) = ( e1v(ji,jj ) * fse3v(ji,jj ,jk) * vbdiff(ji,jj ,jk) &400 & -e1v(ji,jj-1) * fse3v(ji,jj-1,jk) * vbdiff(ji,jj-1,jk) ) * zbtr396 zbtr = r1_e1e2t(ji,jj) / e3t_n(ji,jj,jk) * fsahm_spt(ji,jj) 397 hdivdiff(ji,jj,jk) = ( e1v(ji,jj ) * e3v_n(ji,jj ,jk) * vbdiff(ji,jj ,jk) & 398 & -e1v(ji,jj-1) * e3v_n(ji,jj-1,jk) * vbdiff(ji,jj-1,jk) ) * zbtr 401 399 END DO 402 400 END DO 403 401 DO jj = j1,j2 404 402 DO ji = i1,i2-1 ! vector opt. 405 zbtr = r1_e1e2f(ji,jj) * fse3f_n(ji,jj,jk) * fsahm_spf(ji,jj)403 zbtr = r1_e1e2f(ji,jj) * e3f_n(ji,jj,jk) * fsahm_spf(ji,jj) 406 404 rotdiff(ji,jj,jk) = ( e2v(ji+1,jj) * vbdiff(ji+1,jj,jk) & 407 405 & -e2v(ji ,jj) * vbdiff(ji ,jj,jk) & … … 424 422 ze1v = hdivdiff(ji,jj,jk) 425 423 ! horizontal diffusive trends 426 zua = - ( ze2u - rotdiff (ji,jj-1,jk)) / ( e2u(ji,jj) * fse3u_n(ji,jj,jk) ) + ( hdivdiff(ji+1,jj,jk) - ze1v) &424 zua = - ( ze2u - rotdiff (ji,jj-1,jk)) / ( e2u(ji,jj) * e3u_n(ji,jj,jk) ) + ( hdivdiff(ji+1,jj,jk) - ze1v) & 427 425 / e1u(ji,jj) 428 426 … … 446 444 ! horizontal diffusive trends 447 445 448 zva = + ( ze2u - rotdiff (ji-1,jj,jk)) / ( e1v(ji,jj) * fse3v_n(ji,jj,jk) ) + ( hdivdiff(ji,jj+1,jk) - ze1v) &446 zva = + ( ze2u - rotdiff (ji-1,jj,jk)) / ( e1v(ji,jj) * e3v_n(ji,jj,jk) ) + ( hdivdiff(ji,jj+1,jk) - ze1v) & 449 447 / e2v(ji,jj) 450 448 -
branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/NST_SRC/agrif_opa_update.F90
r5656 r5845 26 26 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 27 27 !!---------------------------------------------------------------------- 28 29 28 CONTAINS 30 29 … … 67 66 ! 68 67 END SUBROUTINE Agrif_Update_Tra 68 69 69 70 70 RECURSIVE SUBROUTINE Agrif_Update_Dyn( ) … … 153 153 154 154 # if defined key_zdftke 155 155 156 SUBROUTINE Agrif_Update_Tke( kt ) 156 157 !!--------------------------------------------- … … 175 176 176 177 END SUBROUTINE Agrif_Update_Tke 178 177 179 # endif /* key_zdftke */ 178 180 … … 181 183 !! *** ROUTINE updateT *** 182 184 !!--------------------------------------------- 183 # include "domzgr_substitute.h90"184 185 INTEGER, INTENT(in) :: i1,i2,j1,j2,k1,k2,n1,n2 185 186 REAL(wp),DIMENSION(i1:i2,j1:j2,k1:k2,n1:n2), INTENT(inout) :: tabres … … 231 232 END SUBROUTINE updateTS 232 233 234 233 235 SUBROUTINE updateu( tabres, i1, i2, j1, j2, k1, k2, before ) 234 236 !!--------------------------------------------- 235 237 !! *** ROUTINE updateu *** 236 238 !!--------------------------------------------- 237 # include "domzgr_substitute.h90"238 !!239 239 INTEGER, INTENT(in) :: i1, i2, j1, j2, k1, k2 240 240 REAL(wp), DIMENSION(i1:i2,j1:j2,k1:k2), INTENT(inout) :: tabres … … 250 250 DO jj=j1,j2 251 251 DO ji=i1,i2 252 tabres(ji,jj,jk) = e2u(ji,jj) * un(ji,jj,jk) 253 tabres(ji,jj,jk) = tabres(ji,jj,jk) * fse3u_n(ji,jj,jk) 252 tabres(ji,jj,jk) = e2u(ji,jj) * e3u_n(ji,jj,jk) * un(ji,jj,jk) 254 253 END DO 255 254 END DO … … 260 259 DO jj=j1,j2 261 260 DO ji=i1,i2 262 tabres(ji,jj,jk) = tabres(ji,jj,jk) / e2u(ji,jj) / fse3u_n(ji,jj,jk)261 tabres(ji,jj,jk) = tabres(ji,jj,jk) / ( e2u(ji,jj) * e3u_n(ji,jj,jk) ) 263 262 ! 264 263 IF (.NOT.(lk_agrif_fstep.AND.(neuler==0))) THEN ! Add asselin part … … 275 274 END SUBROUTINE updateu 276 275 276 277 277 SUBROUTINE updatev( tabres, i1, i2, j1, j2, k1, k2, before ) 278 278 !!--------------------------------------------- 279 279 !! *** ROUTINE updatev *** 280 280 !!--------------------------------------------- 281 # include "domzgr_substitute.h90"282 !!283 281 INTEGER :: i1,i2,j1,j2,k1,k2 284 282 INTEGER :: ji,jj,jk … … 294 292 DO jj=j1,j2 295 293 DO ji=i1,i2 296 tabres(ji,jj,jk) = e1v(ji,jj) * vn(ji,jj,jk) 297 tabres(ji,jj,jk) = tabres(ji,jj,jk) * fse3v_n(ji,jj,jk) 294 tabres(ji,jj,jk) = e1v(ji,jj) * e3v_n(ji,jj,jk) * vn(ji,jj,jk) 298 295 END DO 299 296 END DO … … 304 301 DO jj=j1,j2 305 302 DO ji=i1,i2 306 tabres(ji,jj,jk) = tabres(ji,jj,jk) / e1v(ji,jj) / fse3v_n(ji,jj,jk)303 tabres(ji,jj,jk) = tabres(ji,jj,jk) / ( e1v(ji,jj) * e3v_n(ji,jj,jk) ) 307 304 ! 308 305 IF (.NOT.(lk_agrif_fstep.AND.(neuler==0))) THEN ! Add asselin part … … 319 316 END SUBROUTINE updatev 320 317 318 321 319 SUBROUTINE updateu2d( tabres, i1, i2, j1, j2, before ) 322 320 !!--------------------------------------------- 323 321 !! *** ROUTINE updateu2d *** 324 322 !!--------------------------------------------- 325 # include "domzgr_substitute.h90"326 !!327 323 INTEGER, INTENT(in) :: i1, i2, j1, j2 328 324 REAL(wp), DIMENSION(i1:i2,j1:j2), INTENT(inout) :: tabres … … 338 334 DO jj=j1,j2 339 335 DO ji=i1,i2 340 tabres(ji,jj) = un_b(ji,jj) * hu (ji,jj) * e2u(ji,jj)336 tabres(ji,jj) = un_b(ji,jj) * hu_n(ji,jj) * e2u(ji,jj) 341 337 END DO 342 338 END DO … … 345 341 DO jj=j1,j2 346 342 DO ji=i1,i2 347 tabres(ji,jj) = tabres(ji,jj) * hur(ji,jj) /e2u(ji,jj)343 tabres(ji,jj) = tabres(ji,jj) * r1_hu_n(ji,jj) * r1_e2u(ji,jj) 348 344 ! 349 345 ! Update "now" 3d velocities: 350 346 spgu(ji,jj) = 0.e0 351 347 DO jk=1,jpkm1 352 spgu(ji,jj) = spgu(ji,jj) + fse3u_n(ji,jj,jk) * un(ji,jj,jk)353 END DO 354 spgu(ji,jj) = spgu(ji,jj) * hur(ji,jj)348 spgu(ji,jj) = spgu(ji,jj) + e3u_n(ji,jj,jk) * un(ji,jj,jk) 349 END DO 350 spgu(ji,jj) = spgu(ji,jj) * r1_hu_n(ji,jj) 355 351 ! 356 352 zcorr = tabres(ji,jj) - spgu(ji,jj) … … 371 367 spgu(ji,jj) = 0.e0 372 368 DO jk=1,jpkm1 373 spgu(ji,jj) = spgu(ji,jj) + fse3u_b(ji,jj,jk) * ub(ji,jj,jk)374 END DO 375 spgu(ji,jj) = spgu(ji,jj) * hur_b(ji,jj)369 spgu(ji,jj) = spgu(ji,jj) + e3u_b(ji,jj,jk) * ub(ji,jj,jk) 370 END DO 371 spgu(ji,jj) = spgu(ji,jj) * r1_hu_b(ji,jj) 376 372 ! 377 373 zcorr = ub_b(ji,jj) - spgu(ji,jj) … … 385 381 ! 386 382 END SUBROUTINE updateu2d 383 387 384 388 385 SUBROUTINE updatev2d( tabres, i1, i2, j1, j2, before ) … … 403 400 DO jj=j1,j2 404 401 DO ji=i1,i2 405 tabres(ji,jj) = vn_b(ji,jj) * hv (ji,jj) * e1v(ji,jj)402 tabres(ji,jj) = vn_b(ji,jj) * hv_n(ji,jj) * e1v(ji,jj) 406 403 END DO 407 404 END DO … … 410 407 DO jj=j1,j2 411 408 DO ji=i1,i2 412 tabres(ji,jj) = tabres(ji,jj) * hvr(ji,jj) /e1v(ji,jj)409 tabres(ji,jj) = tabres(ji,jj) * r1_hv_n(ji,jj) * r1_e1v(ji,jj) 413 410 ! 414 411 ! Update "now" 3d velocities: 415 412 spgv(ji,jj) = 0.e0 416 413 DO jk=1,jpkm1 417 spgv(ji,jj) = spgv(ji,jj) + fse3v_n(ji,jj,jk) * vn(ji,jj,jk)418 END DO 419 spgv(ji,jj) = spgv(ji,jj) * hvr(ji,jj)414 spgv(ji,jj) = spgv(ji,jj) + e3v_n(ji,jj,jk) * vn(ji,jj,jk) 415 END DO 416 spgv(ji,jj) = spgv(ji,jj) * r1_hv_n(ji,jj) 420 417 ! 421 418 zcorr = tabres(ji,jj) - spgv(ji,jj) … … 436 433 spgv(ji,jj) = 0.e0 437 434 DO jk=1,jpkm1 438 spgv(ji,jj) = spgv(ji,jj) + fse3v_b(ji,jj,jk) * vb(ji,jj,jk)439 END DO 440 spgv(ji,jj) = spgv(ji,jj) * hvr_b(ji,jj)435 spgv(ji,jj) = spgv(ji,jj) + e3v_b(ji,jj,jk) * vb(ji,jj,jk) 436 END DO 437 spgv(ji,jj) = spgv(ji,jj) * r1_hv_b(ji,jj) 441 438 ! 442 439 zcorr = vb_b(ji,jj) - spgv(ji,jj) … … 489 486 END SUBROUTINE updateSSH 490 487 488 491 489 SUBROUTINE updateub2b( tabres, i1, i2, j1, j2, before ) 492 490 !!--------------------------------------------- … … 519 517 END SUBROUTINE updateub2b 520 518 519 521 520 SUBROUTINE updatevb2b( tabres, i1, i2, j1, j2, before ) 522 521 !!--------------------------------------------- … … 555 554 !! *** ROUTINE updateT *** 556 555 !!--------------------------------------------- 557 # include "domzgr_substitute.h90"558 559 556 INTEGER, INTENT(in) :: i1,i2,j1,j2,k1,k2,n1,n2 560 557 REAL(wp),DIMENSION(i1:i2,j1:j2,k1:k2,n1:n2), INTENT(inout) :: tabres 561 558 LOGICAL, iNTENT(in) :: before 562 559 ! 563 560 INTEGER :: ji,jj,jk 564 561 REAL(wp) :: ztemp 562 !!--------------------------------------------- 565 563 566 564 IF (before) THEN … … 600 598 601 599 # if defined key_zdftke 600 602 601 SUBROUTINE updateEN( ptab, i1, i2, j1, j2, k1, k2, before ) 603 602 !!--------------------------------------------- -
branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/NST_SRC/agrif_top_interp.F90
r5656 r5845 17 17 PUBLIC Agrif_trc, interptrn 18 18 19 # include "domzgr_substitute.h90"20 19 # include "vectopt_loop_substitute.h90" 21 20 !!---------------------------------------------------------------------- -
branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/NST_SRC/agrif_top_sponge.F90
r5836 r5845 19 19 PUBLIC Agrif_Sponge_trc, interptrn_sponge 20 20 21 !! * Substitutions22 # include "domzgr_substitute.h90"23 21 !!---------------------------------------------------------------------- 24 22 !! NEMO/NST 3.6 , NEMO Consortium (2010) … … 74 72 DO jj = j1,j2-1 75 73 DO ji = i1,i2-1 76 zabe1 = fsaht_spu(ji,jj) * umask(ji,jj,jk) * e2_e1u(ji,jj) * fse3u_n(ji,jj,jk)77 zabe2 = fsaht_spv(ji,jj) * vmask(ji,jj,jk) * e1_e2v(ji,jj) * fse3v_n(ji,jj,jk)74 zabe1 = fsaht_spu(ji,jj) * umask(ji,jj,jk) * e2_e1u(ji,jj) * e3u_n(ji,jj,jk) 75 zabe2 = fsaht_spv(ji,jj) * vmask(ji,jj,jk) * e1_e2v(ji,jj) * e3v_n(ji,jj,jk) 78 76 ztu(ji,jj) = zabe1 * ( trbdiff(ji+1,jj ,jk,jn) - trbdiff(ji,jj,jk,jn) ) 79 77 ztv(ji,jj) = zabe2 * ( trbdiff(ji ,jj+1,jk,jn) - trbdiff(ji,jj,jk,jn) ) … … 85 83 86 84 IF (.NOT. tabspongedone_trn(ji,jj)) THEN 87 zbtr = r1_e1e2t(ji,jj) / fse3t(ji,jj,jk)85 zbtr = r1_e1e2t(ji,jj) / e3t(ji,jj,jk) 88 86 ! horizontal diffusive trends 89 87 ztra = zbtr * ( ztu(ji,jj) - ztu(ji-1,jj ) + ztv(ji,jj) - ztv(ji ,jj-1) ) -
branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/NST_SRC/agrif_top_update.F90
r5656 r5845 64 64 !! *** ROUTINE updateT *** 65 65 !!--------------------------------------------- 66 # include "domzgr_substitute.h90"67 66 INTEGER, INTENT(in) :: i1,i2,j1,j2,k1,k2,n1,n2 68 67 REAL(wp),DIMENSION(i1:i2,j1:j2,k1:k2,n1:n2), INTENT(inout) :: ptab
Note: See TracChangeset
for help on using the changeset viewer.