Changeset 911 for trunk/NEMO/OPA_SRC/DYN/dynspg_ts.F90
- Timestamp:
- 2008-04-28T11:31:32+02:00 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/OPA_SRC/DYN/dynspg_ts.F90
r888 r911 7 7 !! " " ! 05-11 (V. Garnier, G. Madec) optimization 8 8 !! 9.0 ! 06-08 (S. Masson) distributed restart using iom 9 !! 9.0 ! 08-01 (R. Benshila) change averaging method 9 !! " ! 08-01 (R. Benshila) change averaging method 10 !! " ! 07-07 (D. Storkey) calls to BDY routines 10 11 !!--------------------------------------------------------------------- 11 12 #if defined key_dynspg_ts || defined key_esopa … … 30 31 USE obc_oce ! Lateral open boundary condition 31 32 USE obc_par ! open boundary condition parameters 33 USE bdy_oce ! unstructured open boundaries 34 USE bdy_par ! unstructured open boundaries 35 USE bdydta ! unstructured open boundaries 36 USE bdydyn ! unstructured open boundaries 37 USE bdytides ! tidal forcing at unstructured open boundaries. 32 38 USE lib_mpp ! distributed memory computing library 33 39 USE lbclnk ! ocean lateral boundary conditions (or mpp link) … … 102 108 zua, zva, zub, zvb, & ! " " 103 109 zssha_b, zua_b, zva_b, & ! " " 104 z sshb_e, zub_e, zvb_e,& ! " "110 zub_e, zvb_e, & ! " " 105 111 zun_e, zvn_e ! " " 106 112 !! Variable volume 107 113 REAL(wp), DIMENSION(jpi,jpj) :: & 108 zspgu_1, zspgv_1, zsshun_e, zsshvn_e , hu_e, hv_e! 2D workspace114 zspgu_1, zspgv_1, zsshun_e, zsshvn_e ! 2D workspace 109 115 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zfse3un_e, zfse3vn_e ! 3D workspace 110 116 !!---------------------------------------------------------------------- … … 130 136 ua_e(:,:) = un_b(:,:) 131 137 va_e(:,:) = vn_b(:,:) 138 hu_e(:,:) = hu(:,:) 139 hv_e(:,:) = hv(:,:) 132 140 133 141 IF( ln_dynvor_een ) THEN … … 300 308 301 309 ! variables for the barotropic equations 302 zsshb_e(:,:) = sshn_b(:,:) ! (barotropic) sea surface height (before and now)310 sshb_e (:,:) = sshn_b(:,:) ! (barotropic) sea surface height (before and now) 303 311 sshn_e (:,:) = sshn_b(:,:) 304 312 zub_e (:,:) = un_b (:,:) ! barotropic transports issued from the barotropic equations (before and now) … … 309 317 zua_b (:,:) = 0.e0 310 318 zva_b (:,:) = 0.e0 319 hu_e (:,:) = hu (:,:) ! (barotropic) ocean depth at u-point 320 hv_e (:,:) = hv (:,:) ! (barotropic) ocean depth at v-point 311 321 IF( lk_vvl ) THEN 312 322 zsshun_e(:,:) = sshu (:,:) ! (barotropic) sea surface height (now) at u-point 313 323 zsshvn_e(:,:) = sshv (:,:) ! (barotropic) sea surface height (now) at v-point 314 hu_e(:,:) = hu (:,:) ! (barotropic) ocean depth at u-point315 hv_e(:,:) = hv (:,:) ! (barotropic) ocean depth at v-point316 324 zfse3un_e(:,:,:) = fse3u(:,:,:) ! (barotropic) scale factors at u-point 317 325 zfse3un_e(:,:,:) = fse3v(:,:,:) ! (barotropic) scale factors at v-point … … 338 346 ! Time interpolation of open boundary condition data 339 347 IF( lk_obc ) CALL obc_dta_bt( kt, jit ) 348 IF( lk_bdy .or. lk_bdy_tides) CALL bdy_dta_bt( kt, jit+1 ) 340 349 341 350 ! Horizontal divergence of barotropic transports 342 351 !-------------------------------------------------- 352 zhdiv(:,:) = 0.e0 343 353 DO jj = 2, jpjm1 344 354 DO ji = fs_2, fs_jpim1 ! vector opt. … … 360 370 #endif 361 371 372 IF( lk_bdy .or. lk_bdy_tides ) THEN 373 DO jj = 1, jpj 374 DO ji = 1, jpi 375 zhdiv(ji,jj) = zhdiv(ji,jj)*bdytmask(ji,jj) 376 END DO 377 END DO 378 ENDIF 379 362 380 ! Sea surface height from the barotropic system 363 381 !---------------------------------------------- 364 382 DO jj = 2, jpjm1 365 383 DO ji = fs_2, fs_jpim1 ! vector opt. 366 ssha_e(ji,jj) = ( zsshb_e(ji,jj) - z2dt_e * ( zraur * emp(ji,jj) &384 ssha_e(ji,jj) = ( sshb_e(ji,jj) - z2dt_e * ( zraur * emp(ji,jj) & 367 385 & + zhdiv(ji,jj) ) ) * tmask(ji,jj,1) 368 386 END DO … … 457 475 ! - Correct the barotropic transports 458 476 IF( lk_obc ) CALL obc_fla_ts 459 477 IF( lk_bdy .or. lk_bdy_tides ) CALL bdy_dyn_fla 460 478 461 479 ! ... Boundary conditions on ua_e, va_e, ssha_e … … 475 493 ! --------------------------------------- 476 494 IF( neuler == 0 .AND. jit == 1 ) THEN ! Euler (forward) time stepping 477 zsshb_e(:,:) = sshn_e(:,:)495 sshb_e (:,:) = sshn_e(:,:) 478 496 zub_e (:,:) = zun_e (:,:) 479 497 zvb_e (:,:) = zvn_e (:,:) … … 482 500 zvn_e (:,:) = va_e (:,:) 483 501 ELSE ! Asselin filtering 484 zsshb_e(:,:) = atfp * ( zsshb_e(:,:) + ssha_e(:,:) ) + atfp1 * sshn_e(:,:)502 sshb_e (:,:) = atfp * ( sshb_e(:,:) + ssha_e(:,:) ) + atfp1 * sshn_e(:,:) 485 503 zub_e (:,:) = atfp * ( zub_e (:,:) + ua_e (:,:) ) + atfp1 * zun_e (:,:) 486 504 zvb_e (:,:) = atfp * ( zvb_e (:,:) + va_e (:,:) ) + atfp1 * zvn_e (:,:) … … 571 589 IF( lp_obc_south ) zhdiv(nis0 :nis1 ,njs0 :njs1) = 0.e0 ! south 572 590 #endif 591 592 IF ( lk_bdy .or. lk_bdy_tides ) THEN 593 DO jj = 1, jpj 594 DO ji = 1, jpi 595 zhdiv(ji,jj) = zhdiv(ji,jj)*bdytmask(ji,jj) 596 END DO 597 END DO 598 ENDIF 573 599 574 600 ! sea surface height
Note: See TracChangeset
for help on using the changeset viewer.