Changeset 3900 for branches/2013/dev_r3891_METO1_MERCATOR6_OBC_BDY_merge/NEMOGCM/NEMO/OPA_SRC/BDY/bdydta.F90
- Timestamp:
- 2013-05-03T11:51:52+02:00 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2013/dev_r3891_METO1_MERCATOR6_OBC_BDY_merge/NEMOGCM/NEMO/OPA_SRC/BDY/bdydta.F90
r3851 r3900 108 108 nblenrim => idx_bdy(ib_bdy)%nblenrim 109 109 110 IF( nn_dyn2d(ib_bdy) .gt. 0.and. nn_dyn2d_dta(ib_bdy) .eq. 0 ) THEN110 IF( cn_dyn2d(ib_bdy) /= 'none' .and. nn_dyn2d_dta(ib_bdy) .eq. 0 ) THEN 111 111 ilen1(:) = nblen(:) 112 112 igrd = 1 … … 130 130 ENDIF 131 131 132 IF( nn_dyn3d(ib_bdy) .gt. 0.and. nn_dyn3d_dta(ib_bdy) .eq. 0 ) THEN132 IF( cn_dyn3d(ib_bdy) /= 'none' .and. nn_dyn3d_dta(ib_bdy) .eq. 0 ) THEN 133 133 ilen1(:) = nblen(:) 134 134 igrd = 2 … … 150 150 ENDIF 151 151 152 IF( nn_tra(ib_bdy) .gt. 0.and. nn_tra_dta(ib_bdy) .eq. 0 ) THEN152 IF( cn_tra(ib_bdy) /= 'none' .and. nn_tra_dta(ib_bdy) .eq. 0 ) THEN 153 153 ilen1(:) = nblen(:) 154 154 igrd = 1 ! Everything is at T-points here … … 193 193 ! Update barotropic boundary conditions only 194 194 ! jit is optional argument for fld_read and bdytide_update 195 IF( nn_dyn2d(ib_bdy) .gt. 0) THEN195 IF( cn_dyn2d(ib_bdy) /= 'none' ) THEN 196 196 IF( nn_dyn2d_dta(ib_bdy) .eq. 2 ) THEN ! tidal harmonic forcing ONLY: initialise arrays 197 197 dta_bdy(ib_bdy)%ssh(:) = 0.0 … … 199 199 dta_bdy(ib_bdy)%v2d(:) = 0.0 200 200 ENDIF 201 IF ( nn_tra(ib_bdy).ne.4) THEN201 IF (cn_tra(ib_bdy) /= 'runoff') THEN 202 202 IF( nn_dyn2d_dta(ib_bdy) .EQ. 1 .OR. nn_dyn2d_dta(ib_bdy) .EQ. 3 .OR. & 203 203 & (ln_full_vel_array(ib_bdy) .AND. nn_dyn3d_dta(ib_bdy).eq.1) )THEN … … 205 205 ! For the runoff case, no need to update the forcing (already done in the baroclinic part) 206 206 jend = nb_bdy_fld(ib_bdy) 207 IF ( nn_tra(ib_bdy) .GT. 0.AND. nn_tra_dta(ib_bdy) .GE. 1 ) jend = jend - 2207 IF ( cn_tra(ib_bdy) /= 'none' .AND. nn_tra_dta(ib_bdy) .GE. 1 ) jend = jend - 2 208 208 CALL fld_read( kt=kt, kn_fsbc=1, sd=bf(jstart:jend), map=nbmap_ptr(jstart:jend), & 209 & kit=jit, kt_offset=time_offset )210 IF ( nn_tra(ib_bdy) .GT. 0.AND. nn_tra_dta(ib_bdy) .GE. 1 ) jend = jend + 2209 & jit=jit, time_offset=time_offset ) 210 IF ( cn_tra(ib_bdy) /= 'none' .AND. nn_tra_dta(ib_bdy) .GE. 1 ) jend = jend + 2 211 211 212 212 ! If full velocities in boundary data then split into barotropic and baroclinic data … … 252 252 ENDIF 253 253 ELSE 254 IF ( nn_tra(ib_bdy).eq.4) then ! runoff condition254 IF (cn_tra(ib_bdy) == 'runoff') then ! runoff condition 255 255 jend = nb_bdy_fld(ib_bdy) 256 256 CALL fld_read( kt=kt, kn_fsbc=1, sd=bf(jstart:jend), & 257 & map=nbmap_ptr(jstart:jend), kt_offset=time_offset )257 & map=nbmap_ptr(jstart:jend), time_offset=time_offset ) 258 258 ! 259 259 igrd = 2 ! zonal velocity … … 271 271 END DO 272 272 ELSE 273 IF( nn_dyn2d(ib_bdy) .gt. 0.and. nn_dyn2d_dta(ib_bdy) .eq. 2 ) THEN ! tidal harmonic forcing ONLY: initialise arrays273 IF( cn_dyn2d(ib_bdy) /= 'none' .and. nn_dyn2d_dta(ib_bdy) .eq. 2 ) THEN ! tidal harmonic forcing ONLY: initialise arrays 274 274 dta_bdy(ib_bdy)%ssh(:) = 0.0 275 275 dta_bdy(ib_bdy)%u2d(:) = 0.0 … … 279 279 jend = nb_bdy_fld(ib_bdy) 280 280 CALL fld_read( kt=kt, kn_fsbc=1, sd=bf(jstart:jend), & 281 & map=nbmap_ptr(jstart:jend), kt_offset=time_offset )281 & map=nbmap_ptr(jstart:jend), time_offset=time_offset ) 282 282 ENDIF 283 283 ! If full velocities in boundary data then split into barotropic and baroclinic data … … 314 314 END DO 315 315 ENDIF 316 IF( nn_dyn2d(ib_bdy) .gt. 0.and. nn_dyn2d_dta(ib_bdy) .ge. 2 ) THEN ! update tidal harmonic forcing316 IF( cn_dyn2d(ib_bdy) /= 'none' .and. nn_dyn2d_dta(ib_bdy) .ge. 2 ) THEN ! update tidal harmonic forcing 317 317 CALL bdytide_update( kt=kt, idx=idx_bdy(ib_bdy), dta=dta_bdy(ib_bdy), & 318 318 & td=tides(ib_bdy), time_offset=time_offset ) … … 326 326 IF ( ln_apr_obc ) THEN 327 327 DO ib_bdy = 1, nb_bdy 328 IF ( nn_tra(ib_bdy).NE.4)THEN328 IF (cn_tra(ib_bdy) /= 'runoff')THEN 329 329 igrd = 1 ! meridional velocity 330 330 DO ib = 1, idx_bdy(ib_bdy)%nblenrim(igrd) … … 403 403 nb_bdy_fld(:) = 0 404 404 DO ib_bdy = 1, nb_bdy 405 IF( nn_dyn2d(ib_bdy) .gt. 0.and. ( nn_dyn2d_dta(ib_bdy) .eq. 1 .or. nn_dyn2d_dta(ib_bdy) .eq. 3 ) ) THEN405 IF( cn_dyn2d(ib_bdy) /= 'none' .and. ( nn_dyn2d_dta(ib_bdy) .eq. 1 .or. nn_dyn2d_dta(ib_bdy) .eq. 3 ) ) THEN 406 406 nb_bdy_fld(ib_bdy) = nb_bdy_fld(ib_bdy) + 3 407 407 ENDIF 408 IF( nn_dyn3d(ib_bdy) .gt. 0.and. nn_dyn3d_dta(ib_bdy) .eq. 1 ) THEN408 IF( cn_dyn3d(ib_bdy) /= 'none' .and. nn_dyn3d_dta(ib_bdy) .eq. 1 ) THEN 409 409 nb_bdy_fld(ib_bdy) = nb_bdy_fld(ib_bdy) + 2 410 410 ENDIF 411 IF( nn_tra(ib_bdy) .gt. 0.and. nn_tra_dta(ib_bdy) .eq. 1 ) THEN411 IF( cn_tra(ib_bdy) /= 'none' .and. nn_tra_dta(ib_bdy) .eq. 1 ) THEN 412 412 nb_bdy_fld(ib_bdy) = nb_bdy_fld(ib_bdy) + 2 413 413 ENDIF … … 474 474 ! Only read in necessary fields for this set. 475 475 ! Important that barotropic variables come first. 476 IF( nn_dyn2d(ib_bdy) .gt. 0.and. ( nn_dyn2d_dta(ib_bdy) .eq. 1 .or. nn_dyn2d_dta(ib_bdy) .eq. 3 ) ) THEN477 478 IF( nn_tra(ib_bdy) .ne. 4) THEN ! runoff condition : no ssh reading476 IF( cn_dyn2d(ib_bdy) /= 'none' .and. ( nn_dyn2d_dta(ib_bdy) .eq. 1 .or. nn_dyn2d_dta(ib_bdy) .eq. 3 ) ) THEN 477 478 IF( cn_tra(ib_bdy) /= 'runoff' ) THEN ! runoff condition : no ssh reading 479 479 jfld = jfld + 1 480 480 blf_i(jfld) = bn_ssh … … 504 504 505 505 ! baroclinic velocities 506 IF( ( nn_dyn3d(ib_bdy) .gt. 0.and. nn_dyn3d_dta(ib_bdy) .eq. 1 ) .or. &507 & ( ln_full_vel_array(ib_bdy) .and. nn_dyn2d(ib_bdy) .gt. 0.and. &506 IF( ( cn_dyn3d(ib_bdy) /= 'none' .and. nn_dyn3d_dta(ib_bdy) .eq. 1 ) .or. & 507 & ( ln_full_vel_array(ib_bdy) .and. cn_dyn2d(ib_bdy) /= 'none' .and. & 508 508 & ( nn_dyn2d_dta(ib_bdy) .eq. 1 .or. nn_dyn2d_dta(ib_bdy) .eq. 3 ) ) ) THEN 509 509 … … 525 525 526 526 ! temperature and salinity 527 IF( nn_tra(ib_bdy) .gt. 0.and. nn_tra_dta(ib_bdy) .eq. 1 ) THEN527 IF( cn_tra(ib_bdy) /= 'none' .and. nn_tra_dta(ib_bdy) .eq. 1 ) THEN 528 528 529 529 jfld = jfld + 1 … … 611 611 nblenrim => idx_bdy(ib_bdy)%nblenrim 612 612 613 IF ( nn_dyn2d(ib_bdy) .gt. 0) THEN613 IF (cn_dyn2d(ib_bdy) /= 'none') THEN 614 614 IF( nn_dyn2d_dta(ib_bdy) .eq. 0 .or. nn_dyn2d_dta(ib_bdy) .eq. 2 .or. ln_full_vel_array(ib_bdy) ) THEN 615 615 ilen0(1:3) = nblen(1:3) … … 623 623 ENDIF 624 624 ELSE 625 IF( nn_dyn2d(ib_bdy) .ne. jp_frs) THEN625 IF( cn_dyn2d(ib_bdy) /= 'frs' ) THEN 626 626 jfld = jfld + 1 627 627 dta_bdy(ib_bdy)%ssh => bf(jfld)%fnow(:,1,1) … … 634 634 ENDIF 635 635 636 IF ( nn_dyn3d(ib_bdy) .gt. 0.and. nn_dyn3d_dta(ib_bdy) .eq. 0 ) THEN636 IF ( cn_dyn3d(ib_bdy) /= 'none' .and. nn_dyn3d_dta(ib_bdy) .eq. 0 ) THEN 637 637 ilen0(1:3) = nblen(1:3) 638 638 ALLOCATE( dta_bdy(ib_bdy)%u3d(ilen0(2),jpk) ) 639 639 ALLOCATE( dta_bdy(ib_bdy)%v3d(ilen0(3),jpk) ) 640 640 ENDIF 641 IF ( ( nn_dyn3d(ib_bdy) .gt. 0.and. nn_dyn3d_dta(ib_bdy) .eq. 1 ).or. &642 & ( ln_full_vel_array(ib_bdy) .and. nn_dyn2d(ib_bdy) .gt. 0.and. &641 IF ( ( cn_dyn3d(ib_bdy) /= 'none' .and. nn_dyn3d_dta(ib_bdy) .eq. 1 ).or. & 642 & ( ln_full_vel_array(ib_bdy) .and. cn_dyn2d(ib_bdy) /= 'none' .and. & 643 643 & ( nn_dyn2d_dta(ib_bdy) .eq. 1 .or. nn_dyn2d_dta(ib_bdy) .eq. 3 ) ) ) THEN 644 644 jfld = jfld + 1 … … 648 648 ENDIF 649 649 650 IF ( nn_tra(ib_bdy) .gt. 0) THEN650 IF (cn_tra(ib_bdy) /= 'none') THEN 651 651 IF( nn_tra_dta(ib_bdy) .eq. 0 ) THEN 652 652 ilen0(1:3) = nblen(1:3)
Note: See TracChangeset
for help on using the changeset viewer.