Changeset 6140 for trunk/NEMOGCM/NEMO/OPA_SRC/BDY/bdydta.F90
 Timestamp:
 20151221T12:35:23+01:00 (5 years ago)
 File:

 1 edited
Legend:
 Unmodified
 Added
 Removed

trunk/NEMOGCM/NEMO/OPA_SRC/BDY/bdydta.F90
r5930 r6140 45 45 INTEGER, ALLOCATABLE, DIMENSION(:) :: nb_bdy_fld ! Number of fields to update for each boundary set. 46 46 INTEGER :: nb_bdy_fld_sum ! Total number of fields to update for all boundary sets. 47 48 47 LOGICAL, DIMENSION(jp_bdy) :: ln_full_vel_array ! =T => full velocities in 3D boundary conditions 49 48 ! =F => baroclinic velocities in 3D boundary conditions … … 58 57 #endif 59 58 60 # include "domzgr_substitute.h90"61 59 !! 62 60 !! NEMO/OPA 3.3 , NEMO Consortium (2010) … … 75 73 !! 76 74 !! 77 !! 78 INTEGER, INTENT( in ) :: kt ! ocean timestep index 79 INTEGER, INTENT( in ), OPTIONAL :: jit ! subcycle timestep index (for timesplitting option) 80 INTEGER, INTENT( in ), OPTIONAL :: time_offset ! time offset in units of timesteps. NB. if jit 81 ! is present then units = subcycle timesteps. 82 ! time_offset = 0 => get data at "now" time level 83 ! time_offset = 1 => get data at "before" time level 84 ! time_offset = +1 => get data at "after" time level 85 ! etc. 86 !! 87 INTEGER :: ib_bdy, jfld, jstart, jend, ib, ii, ij, ik, igrd, jl ! local indices 75 INTEGER, INTENT(in) :: kt ! ocean timestep index 76 INTEGER, INTENT(in), OPTIONAL :: jit ! subcycle timestep index (for timesplitting option) 77 INTEGER, INTENT(in), OPTIONAL :: time_offset ! time offset in units of timesteps. NB. if jit 78 ! ! is present then units = subcycle timesteps. 79 ! ! time_offset = 0 => get data at "now" time level 80 ! ! time_offset = 1 => get data at "before" time level 81 ! ! time_offset = +1 => get data at "after" time level 82 ! ! etc. 83 ! 84 INTEGER :: ib_bdy, jfld, jstart, jend, ib, ii, ij, ik, igrd, jl ! local indices 88 85 INTEGER, DIMENSION(jpbgrd) :: ilen1 89 86 INTEGER, POINTER, DIMENSION(:) :: nblen, nblenrim ! short cuts 90 87 TYPE(OBC_DATA), POINTER :: dta ! short cut 91 !!92 88 !! 93 ! !94 IF( nn_timing == 1 ) CALL timing_start('bdy_dta')95 89 ! 90 IF( nn_timing == 1 ) CALL timing_start('bdy_dta') 91 ! 96 92 ! Initialise data arrays once for all from initial conditions where required 97 93 ! 98 IF( kt .eq. nit000 .and. .not.PRESENT(jit) ) THEN94 IF( kt == nit000 .AND. .NOT.PRESENT(jit) ) THEN 99 95 100 96 ! Calculate depthmean currents … … 102 98 103 99 DO ib_bdy = 1, nb_bdy 104 100 ! 105 101 nblen => idx_bdy(ib_bdy)%nblen 106 102 nblenrim => idx_bdy(ib_bdy)%nblenrim 107 103 dta => dta_bdy(ib_bdy) 108 104 109 IF( nn_dyn2d_dta(ib_bdy) .eq.0 ) THEN105 IF( nn_dyn2d_dta(ib_bdy) == 0 ) THEN 110 106 ilen1(:) = nblen(:) 111 107 IF( dta%ll_ssh ) THEN … … 135 131 ENDIF 136 132 137 IF( nn_dyn3d_dta(ib_bdy) .eq.0 ) THEN133 IF( nn_dyn3d_dta(ib_bdy) == 0 ) THEN 138 134 ilen1(:) = nblen(:) 139 135 IF( dta%ll_u3d ) THEN … … 159 155 ENDIF 160 156 161 IF( nn_tra_dta(ib_bdy) .eq.0 ) THEN157 IF( nn_tra_dta(ib_bdy) == 0 ) THEN 162 158 ilen1(:) = nblen(:) 163 159 IF( dta%ll_tem ) THEN … … 184 180 185 181 #if defined key_lim2 186 IF( nn_ice_lim_dta(ib_bdy) .eq.0 ) THEN182 IF( nn_ice_lim_dta(ib_bdy) == 0 ) THEN 187 183 ilen1(:) = nblen(:) 188 184 IF( dta%ll_frld ) THEN … … 212 208 ENDIF 213 209 #elif defined key_lim3 214 IF( nn_ice_lim_dta(ib_bdy) .eq.0 ) THEN210 IF( nn_ice_lim_dta(ib_bdy) == 0 ) THEN 215 211 ilen1(:) = nblen(:) 216 212 IF( dta%ll_a_i ) THEN … … 246 242 ENDIF 247 243 #endif 248 249 ENDDO ! ib_bdy 250 251 252 ENDIF ! kt .eq. nit000 244 END DO ! ib_bdy 245 ! 246 ENDIF ! kt == nit000 253 247 254 248 ! update external data from files … … 258 252 DO ib_bdy = 1, nb_bdy 259 253 dta => dta_bdy(ib_bdy) 260 IF( nn_dta(ib_bdy) .eq.1 ) THEN ! skip this bit if no external data required254 IF( nn_dta(ib_bdy) == 1 ) THEN ! skip this bit if no external data required 261 255 262 256 IF( PRESENT(jit) ) THEN … … 264 258 ! jit is optional argument for fld_read and bdytide_update 265 259 IF( cn_dyn2d(ib_bdy) /= 'none' ) THEN 266 IF( nn_dyn2d_dta(ib_bdy) .eq.2 ) THEN ! tidal harmonic forcing ONLY: initialise arrays267 IF( dta%ll_ssh ) dta%ssh(:) = 0. 0268 IF( dta%ll_u2d ) dta%u2d(:) = 0. 0269 IF( dta%ll_u3d ) dta%v2d(:) = 0. 0260 IF( nn_dyn2d_dta(ib_bdy) == 2 ) THEN ! tidal harmonic forcing ONLY: initialise arrays 261 IF( dta%ll_ssh ) dta%ssh(:) = 0._wp 262 IF( dta%ll_u2d ) dta%u2d(:) = 0._wp 263 IF( dta%ll_u3d ) dta%v2d(:) = 0._wp 270 264 ENDIF 271 265 IF (cn_tra(ib_bdy) /= 'runoff') THEN 272 IF( nn_dyn2d_dta(ib_bdy) .EQ. 1 .OR. nn_dyn2d_dta(ib_bdy) .EQ.3 ) THEN266 IF( nn_dyn2d_dta(ib_bdy) == 1 .OR. nn_dyn2d_dta(ib_bdy) == 3 ) THEN 273 267 274 268 jend = jstart + dta%nread(2)  1 … … 278 272 ! If full velocities in boundary data then extract barotropic velocities from 3D fields 279 273 IF( ln_full_vel_array(ib_bdy) .AND. & 280 & ( nn_dyn2d_dta(ib_bdy) .EQ. 1 .OR. nn_dyn2d_dta(ib_bdy) .EQ.3 .OR. &281 & nn_dyn3d_dta(ib_bdy) .EQ.1 ) )THEN274 & ( nn_dyn2d_dta(ib_bdy) == 1 .OR. nn_dyn2d_dta(ib_bdy) == 3 .OR. & 275 & nn_dyn3d_dta(ib_bdy) == 1 ) )THEN 282 276 283 277 igrd = 2 ! zonal velocity 284 dta%u2d(:) = 0. 0278 dta%u2d(:) = 0._wp 285 279 DO ib = 1, idx_bdy(ib_bdy)%nblen(igrd) 286 280 ii = idx_bdy(ib_bdy)%nbi(ib,igrd) … … 288 282 DO ik = 1, jpkm1 289 283 dta%u2d(ib) = dta%u2d(ib) & 290 & + fse3u(ii,ij,ik) * umask(ii,ij,ik) * dta%u3d(ib,ik)284 & + e3u_n(ii,ij,ik) * umask(ii,ij,ik) * dta%u3d(ib,ik) 291 285 END DO 292 dta%u2d(ib) = dta%u2d(ib) * hur(ii,ij)286 dta%u2d(ib) = dta%u2d(ib) * r1_hu_n(ii,ij) 293 287 END DO 294 288 igrd = 3 ! meridional velocity 295 dta%v2d(:) = 0. 0289 dta%v2d(:) = 0._wp 296 290 DO ib = 1, idx_bdy(ib_bdy)%nblen(igrd) 297 291 ii = idx_bdy(ib_bdy)%nbi(ib,igrd) … … 299 293 DO ik = 1, jpkm1 300 294 dta%v2d(ib) = dta%v2d(ib) & 301 & + fse3v(ii,ij,ik) * vmask(ii,ij,ik) * dta%v3d(ib,ik)295 & + e3v_n(ii,ij,ik) * vmask(ii,ij,ik) * dta%v3d(ib,ik) 302 296 END DO 303 dta%v2d(ib) = dta%v2d(ib) * hvr(ii,ij)297 dta%v2d(ib) = dta%v2d(ib) * r1_hv_n(ii,ij) 304 298 END DO 305 299 ENDIF … … 331 325 END DO 332 326 ELSE 333 IF( nn_dyn2d_dta(ib_bdy) .eq.2 ) THEN ! tidal harmonic forcing ONLY: initialise arrays334 IF( dta%ll_ssh ) dta%ssh(:) = 0. 0335 IF( dta%ll_u2d ) dta%u2d(:) = 0. 0336 IF( dta%ll_v2d ) dta%v2d(:) = 0. 0327 IF( nn_dyn2d_dta(ib_bdy) == 2 ) THEN ! tidal harmonic forcing ONLY: initialise arrays 328 IF( dta%ll_ssh ) dta%ssh(:) = 0._wp 329 IF( dta%ll_u2d ) dta%u2d(:) = 0._wp 330 IF( dta%ll_v2d ) dta%v2d(:) = 0._wp 337 331 ENDIF 338 332 IF( dta%nread(1) .gt. 0 ) THEN ! update external data … … 343 337 ! If full velocities in boundary data then split into barotropic and baroclinic data 344 338 IF( ln_full_vel_array(ib_bdy) .and. & 345 & ( nn_dyn2d_dta(ib_bdy) .EQ. 1 .OR. nn_dyn2d_dta(ib_bdy) .EQ.3 .OR. &346 & nn_dyn3d_dta(ib_bdy) .EQ.1 ) ) THEN339 & ( nn_dyn2d_dta(ib_bdy) == 1 .OR. nn_dyn2d_dta(ib_bdy) == 3 .OR. & 340 & nn_dyn3d_dta(ib_bdy) == 1 ) ) THEN 347 341 igrd = 2 ! zonal velocity 348 dta%u2d(:) = 0. 0342 dta%u2d(:) = 0._wp 349 343 DO ib = 1, idx_bdy(ib_bdy)%nblen(igrd) 350 344 ii = idx_bdy(ib_bdy)%nbi(ib,igrd) … … 352 346 DO ik = 1, jpkm1 353 347 dta%u2d(ib) = dta%u2d(ib) & 354 & + fse3u(ii,ij,ik) * umask(ii,ij,ik) * dta%u3d(ib,ik)348 & + e3u_n(ii,ij,ik) * umask(ii,ij,ik) * dta%u3d(ib,ik) 355 349 END DO 356 dta%u2d(ib) = dta%u2d(ib) * hur(ii,ij)350 dta%u2d(ib) = dta%u2d(ib) * r1_hu_n(ii,ij) 357 351 DO ik = 1, jpkm1 358 352 dta%u3d(ib,ik) = dta%u3d(ib,ik)  dta%u2d(ib) … … 360 354 END DO 361 355 igrd = 3 ! meridional velocity 362 dta%v2d(:) = 0. 0356 dta%v2d(:) = 0._wp 363 357 DO ib = 1, idx_bdy(ib_bdy)%nblen(igrd) 364 358 ii = idx_bdy(ib_bdy)%nbi(ib,igrd) … … 366 360 DO ik = 1, jpkm1 367 361 dta%v2d(ib) = dta%v2d(ib) & 368 & + fse3v(ii,ij,ik) * vmask(ii,ij,ik) * dta%v3d(ib,ik)362 & + e3v_n(ii,ij,ik) * vmask(ii,ij,ik) * dta%v3d(ib,ik) 369 363 END DO 370 dta%v2d(ib) = dta%v2d(ib) * hvr(ii,ij)364 dta%v2d(ib) = dta%v2d(ib) * r1_hv_n(ii,ij) 371 365 DO ik = 1, jpkm1 372 366 dta%v3d(ib,ik) = dta%v3d(ib,ik)  dta%v2d(ib) … … 413 407 ij = idx_bdy(ib_bdy)%nbj(ib,igrd) 414 408 dta_bdy(ib_bdy)%ssh(ib) = dta_bdy(ib_bdy)%ssh(ib) + ssh_ib(ii,ij) 415 END DO416 ENDIF 417 END DO409 END DO 410 ENDIF 411 END DO 418 412 ENDIF 419 413 ! 420 414 IF( nn_timing == 1 ) CALL timing_stop('bdy_dta') 421 422 423 424 425 415 ! 416 END SUBROUTINE bdy_dta 417 418 419 SUBROUTINE bdy_dta_init 426 420 !! 427 421 !! *** SUBROUTINE bdy_dta_init *** … … 433 427 !! 434 428 !! 435 !! 436 INTEGER :: ib_bdy, jfld, jstart, jend, ierror ! local indices 437 INTEGER :: ios ! Local integer output status for namelist read 438 !! 429 INTEGER :: ib_bdy, jfld, jstart, jend, ierror, ios ! Local integers 430 ! 439 431 CHARACTER(len=100) :: cn_dir ! Root directory for location of data files 440 432 CHARACTER(len=100), DIMENSION(nb_bdy) :: cn_dir_array ! Root directory for location of data files … … 469 461 NAMELIST/nambdy_dta/ ln_full_vel 470 462 !! 471 472 IF( nn_timing == 1 ) CALL timing_start('bdy_dta_init')473 463 ! 464 IF( nn_timing == 1 ) CALL timing_start('bdy_dta_init') 465 ! 474 466 IF(lwp) WRITE(numout,*) 475 467 IF(lwp) WRITE(numout,*) 'bdy_dta_ini : initialization of data at the open boundaries' … … 486 478 #endif 487 479 ) 488 IF(nn_dta(ib_bdy) .gt.1) nn_dta(ib_bdy) = 1480 IF(nn_dta(ib_bdy) > 1) nn_dta(ib_bdy) = 1 489 481 END DO 490 482 … … 494 486 nb_bdy_fld(:) = 0 495 487 DO ib_bdy = 1, nb_bdy 496 IF( cn_dyn2d(ib_bdy) /= 'none' .and. ( nn_dyn2d_dta(ib_bdy) .eq. 1 .or. nn_dyn2d_dta(ib_bdy) .eq.3 ) ) THEN488 IF( cn_dyn2d(ib_bdy) /= 'none' .and. ( nn_dyn2d_dta(ib_bdy) == 1 .or. nn_dyn2d_dta(ib_bdy) == 3 ) ) THEN 497 489 nb_bdy_fld(ib_bdy) = nb_bdy_fld(ib_bdy) + 3 498 490 ENDIF 499 IF( cn_dyn3d(ib_bdy) /= 'none' .and. nn_dyn3d_dta(ib_bdy) .eq.1 ) THEN491 IF( cn_dyn3d(ib_bdy) /= 'none' .and. nn_dyn3d_dta(ib_bdy) == 1 ) THEN 500 492 nb_bdy_fld(ib_bdy) = nb_bdy_fld(ib_bdy) + 2 501 493 ENDIF 502 IF( cn_tra(ib_bdy) /= 'none' .and. nn_tra_dta(ib_bdy) .eq.1 ) THEN494 IF( cn_tra(ib_bdy) /= 'none' .and. nn_tra_dta(ib_bdy) == 1 ) THEN 503 495 nb_bdy_fld(ib_bdy) = nb_bdy_fld(ib_bdy) + 2 504 496 ENDIF 505 497 #if ( defined key_lim2  defined key_lim3 ) 506 IF( cn_ice_lim(ib_bdy) /= 'none' .and. nn_ice_lim_dta(ib_bdy) .eq.1 ) THEN498 IF( cn_ice_lim(ib_bdy) /= 'none' .and. nn_ice_lim_dta(ib_bdy) == 1 ) THEN 507 499 nb_bdy_fld(ib_bdy) = nb_bdy_fld(ib_bdy) + 3 508 500 ENDIF 509 501 #endif 510 502 IF(lwp) WRITE(numout,*) 'Maximum number of files to open =',nb_bdy_fld(ib_bdy) 511 END DO503 END DO 512 504 513 505 nb_bdy_fld_sum = SUM( nb_bdy_fld ) … … 535 527 jfld = 0 536 528 DO ib_bdy = 1, nb_bdy 537 IF( nn_dta(ib_bdy) .eq.1 ) THEN529 IF( nn_dta(ib_bdy) == 1 ) THEN 538 530 READ ( numnam_ref, nambdy_dta, IOSTAT = ios, ERR = 901) 539 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambdy_dta in reference namelist', lwp )531 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambdy_dta in reference namelist', lwp ) 540 532 541 533 READ ( numnam_cfg, nambdy_dta, IOSTAT = ios, ERR = 902 ) 542 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambdy_dta in configuration namelist', lwp )543 IF(lwm) WRITE 534 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambdy_dta in configuration namelist', lwp ) 535 IF(lwm) WRITE( numond, nambdy_dta ) 544 536 545 537 cn_dir_array(ib_bdy) = cn_dir … … 553 545 ! Only read in necessary fields for this set. 554 546 ! Important that barotropic variables come first. 555 IF( nn_dyn2d_dta(ib_bdy) .eq. 1 .or. nn_dyn2d_dta(ib_bdy) .eq.3 ) THEN547 IF( nn_dyn2d_dta(ib_bdy) == 1 .or. nn_dyn2d_dta(ib_bdy) == 3 ) THEN 556 548 557 549 IF( dta%ll_ssh ) THEN … … 592 584 ! read 3D velocities if baroclinic velocities require OR if 593 585 ! barotropic velocities required and ln_full_vel set to .true. 594 IF( nn_dyn3d_dta(ib_bdy) .eq. 1 .or. &595 & ( ln_full_vel_array(ib_bdy) . and. ( nn_dyn2d_dta(ib_bdy) .eq. 1 .or. nn_dyn2d_dta(ib_bdy) .eq.3 ) ) ) THEN596 597 IF( dta%ll_u3d . or. ( ln_full_vel_array(ib_bdy) .and. dta%ll_u2d ) ) THEN586 IF( nn_dyn3d_dta(ib_bdy) == 1 .OR. & 587 & ( ln_full_vel_array(ib_bdy) .AND. ( nn_dyn2d_dta(ib_bdy) == 1 .or. nn_dyn2d_dta(ib_bdy) == 3 ) ) ) THEN 588 589 IF( dta%ll_u3d .OR. ( ln_full_vel_array(ib_bdy) .and. dta%ll_u2d ) ) THEN 598 590 if(lwp) write(numout,*) '++++++ reading in u3d field' 599 591 jfld = jfld + 1 … … 606 598 ENDIF 607 599 608 IF( dta%ll_v3d . or. ( ln_full_vel_array(ib_bdy) .and. dta%ll_v2d ) ) THEN600 IF( dta%ll_v3d .OR. ( ln_full_vel_array(ib_bdy) .and. dta%ll_v2d ) ) THEN 609 601 if(lwp) write(numout,*) '++++++ reading in v3d field' 610 602 jfld = jfld + 1 … … 620 612 621 613 ! temperature and salinity 622 IF( nn_tra_dta(ib_bdy) .eq.1 ) THEN614 IF( nn_tra_dta(ib_bdy) == 1 ) THEN 623 615 624 616 IF( dta%ll_tem ) THEN … … 646 638 #if defined key_lim2 647 639 ! sea ice 648 IF( nn_ice_lim_dta(ib_bdy) .eq.1 ) THEN640 IF( nn_ice_lim_dta(ib_bdy) == 1 ) THEN 649 641 650 642 IF( dta%ll_frld ) THEN … … 678 670 #elif defined key_lim3 679 671 ! sea ice 680 IF( nn_ice_lim_dta(ib_bdy) .eq.1 ) THEN672 IF( nn_ice_lim_dta(ib_bdy) == 1 ) THEN 681 673 ! Test for types of ice input (lim2 or lim3) 682 674 ! Build file name to find dimensions … … 733 725 ! Recalculate field counts 734 726 ! 735 IF( ib_bdy .eq.1 ) THEN727 IF( ib_bdy == 1 ) THEN 736 728 nb_bdy_fld_sum = 0 737 729 nb_bdy_fld(ib_bdy) = jfld … … 744 736 dta%nread(1) = nb_bdy_fld(ib_bdy) 745 737 746 ENDIF ! nn_dta .eq.1738 ENDIF ! nn_dta == 1 747 739 ENDDO ! ib_bdy 748 740 … … 785 777 endif 786 778 787 IF ( nn_dyn2d_dta(ib_bdy) .eq. 0 .or. nn_dyn2d_dta(ib_bdy) .eq.2 ) THEN779 IF ( nn_dyn2d_dta(ib_bdy) == 0 .or. nn_dyn2d_dta(ib_bdy) == 2 ) THEN 788 780 if(lwp) write(numout,*) '++++++ dta%ssh/u2d/u3d allocated space' 789 781 IF( dta%ll_ssh ) ALLOCATE( dta%ssh(nblen(1)) ) … … 791 783 IF( dta%ll_v2d ) ALLOCATE( dta%v2d(nblen(3)) ) 792 784 ENDIF 793 IF ( nn_dyn2d_dta(ib_bdy) .eq. 1 .or. nn_dyn2d_dta(ib_bdy) .eq.3 ) THEN785 IF ( nn_dyn2d_dta(ib_bdy) == 1 .or. nn_dyn2d_dta(ib_bdy) == 3 ) THEN 794 786 IF( dta%ll_ssh ) THEN 795 787 if(lwp) write(numout,*) '++++++ dta%ssh pointing to fnow' … … 819 811 ENDIF 820 812 821 IF ( nn_dyn3d_dta(ib_bdy) .eq.0 ) THEN813 IF ( nn_dyn3d_dta(ib_bdy) == 0 ) THEN 822 814 if(lwp) write(numout,*) '++++++ dta%u3d/v3d allocated space' 823 815 IF( dta%ll_u3d ) ALLOCATE( dta_bdy(ib_bdy)%u3d(nblen(2),jpk) ) 824 816 IF( dta%ll_v3d ) ALLOCATE( dta_bdy(ib_bdy)%v3d(nblen(3),jpk) ) 825 817 ENDIF 826 IF ( nn_dyn3d_dta(ib_bdy) .eq.1 .or. &827 & ( ln_full_vel_array(ib_bdy) .and. ( nn_dyn2d_dta(ib_bdy) .eq. 1 .or. nn_dyn2d_dta(ib_bdy) .eq.3 ) ) ) THEN818 IF ( nn_dyn3d_dta(ib_bdy) == 1 .or. & 819 & ( ln_full_vel_array(ib_bdy) .and. ( nn_dyn2d_dta(ib_bdy) == 1 .or. nn_dyn2d_dta(ib_bdy) == 3 ) ) ) THEN 828 820 IF ( dta%ll_u3d .or. ( ln_full_vel_array(ib_bdy) .and. dta%ll_u2d ) ) THEN 829 821 if(lwp) write(numout,*) '++++++ dta%u3d pointing to fnow' … … 838 830 ENDIF 839 831 840 IF( nn_tra_dta(ib_bdy) .eq.0 ) THEN832 IF( nn_tra_dta(ib_bdy) == 0 ) THEN 841 833 if(lwp) write(numout,*) '++++++ dta%tem/sal allocated space' 842 834 IF( dta%ll_tem ) ALLOCATE( dta_bdy(ib_bdy)%tem(nblen(1),jpk) ) … … 857 849 #if defined key_lim2 858 850 IF (cn_ice_lim(ib_bdy) /= 'none') THEN 859 IF( nn_ice_lim_dta(ib_bdy) .eq.0 ) THEN851 IF( nn_ice_lim_dta(ib_bdy) == 0 ) THEN 860 852 ALLOCATE( dta_bdy(ib_bdy)%frld(nblen(1)) ) 861 853 ALLOCATE( dta_bdy(ib_bdy)%hicif(nblen(1)) ) … … 872 864 #elif defined key_lim3 873 865 IF (cn_ice_lim(ib_bdy) /= 'none') THEN 874 IF( nn_ice_lim_dta(ib_bdy) .eq.0 ) THEN866 IF( nn_ice_lim_dta(ib_bdy) == 0 ) THEN 875 867 ALLOCATE( dta_bdy(ib_bdy)%a_i (nblen(1),jpl) ) 876 868 ALLOCATE( dta_bdy(ib_bdy)%ht_i(nblen(1),jpl) ) … … 892 884 ALLOCATE( dta_bdy(ib_bdy)%ht_i(nblen(1),jpl) ) 893 885 ALLOCATE( dta_bdy(ib_bdy)%ht_s(nblen(1),jpl) ) 894 dta_bdy(ib_bdy)%a_i (:,:) = 0. 0895 dta_bdy(ib_bdy)%ht_i(:,:) = 0. 0896 dta_bdy(ib_bdy)%ht_s(:,:) = 0. 0897 ENDIF 898 899 ENDIF 900 ENDIF 901 #endif 902 903 END DO ! ib_bdy904 886 dta_bdy(ib_bdy)%a_i (:,:) = 0._wp 887 dta_bdy(ib_bdy)%ht_i(:,:) = 0._wp 888 dta_bdy(ib_bdy)%ht_s(:,:) = 0._wp 889 ENDIF 890 891 ENDIF 892 ENDIF 893 #endif 894 ! 895 END DO ! ib_bdy 896 ! 905 897 IF( nn_timing == 1 ) CALL timing_stop('bdy_dta_init') 906 907 898 ! 899 END SUBROUTINE bdy_dta_init 908 900 909 901 #else
Note: See TracChangeset
for help on using the changeset viewer.