Changeset 253 for trunk/NEMO/OPA_SRC/DOM
- Timestamp:
- 2005-08-30T15:26:11+02:00 (19 years ago)
- Location:
- trunk/NEMO/OPA_SRC/DOM
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/OPA_SRC/DOM/domzgr.F90
r250 r253 22 22 USE closea 23 23 USE solisl 24 USE ini1d ! initialization of the 1D configuration 24 25 25 26 IMPLICIT NONE … … 592 593 ! ================ 593 594 594 ! Suppress isolated ocean grid points 595 596 IF(lwp) WRITE(numout,*) 597 IF(lwp) WRITE(numout,*)' suppress isolated ocean grid points' 598 IF(lwp) WRITE(numout,*)' -----------------------------------' 599 600 icompt = 0 601 602 DO jl = 1, 2 603 604 IF( nperio == 1 .OR. nperio == 4 .OR. nperio == 6 ) THEN 605 mbathy( 1 ,:) = mbathy(jpim1,:) 606 mbathy(jpi,:) = mbathy( 2 ,:) 607 ENDIF 608 DO jj = 2, jpjm1 609 DO ji = 2, jpim1 610 ibtest = MAX( mbathy(ji-1,jj), mbathy(ji+1,jj), & 611 mbathy(ji,jj-1),mbathy(ji,jj+1) ) 612 IF( ibtest < mbathy(ji,jj) ) THEN 613 IF(lwp) WRITE(numout,*) ' the number of ocean level at ', & 614 'grid-point (i,j) = ',ji,jj,' is changed from ', & 615 mbathy(ji,jj),' to ', ibtest 616 mbathy(ji,jj) = ibtest 617 icompt = icompt + 1 618 ENDIF 595 IF( .NOT. lk_cfg_1d ) THEN 596 597 ! Suppress isolated ocean grid points 598 599 IF(lwp) WRITE(numout,*) 600 IF(lwp) WRITE(numout,*)' suppress isolated ocean grid points' 601 IF(lwp) WRITE(numout,*)' -----------------------------------' 602 603 icompt = 0 604 605 DO jl = 1, 2 606 607 IF( nperio == 1 .OR. nperio == 4 .OR. nperio == 6 ) THEN 608 mbathy( 1 ,:) = mbathy(jpim1,:) 609 mbathy(jpi,:) = mbathy( 2 ,:) 610 ENDIF 611 DO jj = 2, jpjm1 612 DO ji = 2, jpim1 613 ibtest = MAX( mbathy(ji-1,jj), mbathy(ji+1,jj), & 614 mbathy(ji,jj-1),mbathy(ji,jj+1) ) 615 IF( ibtest < mbathy(ji,jj) ) THEN 616 IF(lwp) WRITE(numout,*) ' the number of ocean level at ', & 617 'grid-point (i,j) = ',ji,jj,' is changed from ', & 618 mbathy(ji,jj),' to ', ibtest 619 mbathy(ji,jj) = ibtest 620 icompt = icompt + 1 621 ENDIF 622 END DO 619 623 END DO 624 620 625 END DO 621 622 END DO 623 IF( icompt == 0 ) THEN 624 IF(lwp) WRITE(numout,*)' no isolated ocean grid points' 625 ELSE 626 IF(lwp) WRITE(numout,*)' ',icompt,' ocean grid points suppressed' 627 ENDIF 628 IF( lk_mpp ) THEN 629 zbathy(:,:) = FLOAT( mbathy(:,:) ) 630 CALL lbc_lnk( zbathy, 'T', 1. ) 631 mbathy(:,:) = INT( zbathy(:,:) ) 632 ENDIF 633 634 ! 3.2 East-west cyclic boundary conditions 635 636 IF( nperio == 0 ) THEN 637 IF(lwp) WRITE(numout,*) ' mbathy set to 0 along east and west', & 638 ' boundary: nperio = ', nperio 626 IF( icompt == 0 ) THEN 627 IF(lwp) WRITE(numout,*)' no isolated ocean grid points' 628 ELSE 629 IF(lwp) WRITE(numout,*)' ',icompt,' ocean grid points suppressed' 630 ENDIF 639 631 IF( lk_mpp ) THEN 640 IF( nbondi == -1 .OR. nbondi == 2 ) THEN641 IF( jperio /= 1 ) mbathy(1,:) = 0642 ENDIF643 IF( nbondi == 1 .OR. nbondi == 2 ) THEN644 IF( jperio /= 1 ) mbathy(nlci,:) = 0645 ENDIF646 ELSE647 mbathy( 1 ,:) = 0648 mbathy(jpi,:) = 0649 ENDIF650 ELSEIF( nperio == 1 .OR. nperio == 4 .OR. nperio == 6 ) THEN651 IF(lwp) WRITE(numout,*)' east-west cyclic boundary conditions', &652 ' on mbathy: nperio = ', nperio653 mbathy( 1 ,:) = mbathy(jpim1,:)654 mbathy(jpi,:) = mbathy( 2 ,:)655 ELSEIF( nperio == 2 ) THEN656 IF(lwp) WRITE(numout,*) ' equatorial boundary conditions', &657 ' on mbathy: nperio = ', nperio658 ELSE659 IF(lwp) WRITE(numout,*) ' e r r o r'660 IF(lwp) WRITE(numout,*) ' parameter , nperio = ', nperio661 ! STOP 'dom_mba'662 ENDIF663 664 ! Set to zero mbathy over islands if necessary (lk_isl=F)665 IF( .NOT. lk_isl ) THEN ! No island666 IF(lwp) WRITE(numout,*)667 IF(lwp) WRITE(numout,*) ' mbathy set to 0 over islands'668 IF(lwp) WRITE(numout,*) ' ----------------------------'669 670 mbathy(:,:) = MAX( 0, mbathy(:,:) )671 672 ! Boundary condition on mbathy673 IF( .NOT.lk_mpp ) THEN674 !!bug ??? y reflechir!675 ! ... mono- or macro-tasking: T-point, >0, 2D array, no slab676 632 zbathy(:,:) = FLOAT( mbathy(:,:) ) 677 633 CALL lbc_lnk( zbathy, 'T', 1. ) 678 634 mbathy(:,:) = INT( zbathy(:,:) ) 635 ENDIF 636 637 ! 3.2 East-west cyclic boundary conditions 638 639 IF( nperio == 0 ) THEN 640 IF(lwp) WRITE(numout,*) ' mbathy set to 0 along east and west', & 641 ' boundary: nperio = ', nperio 642 IF( lk_mpp ) THEN 643 IF( nbondi == -1 .OR. nbondi == 2 ) THEN 644 IF( jperio /= 1 ) mbathy(1,:) = 0 645 ENDIF 646 IF( nbondi == 1 .OR. nbondi == 2 ) THEN 647 IF( jperio /= 1 ) mbathy(nlci,:) = 0 648 ENDIF 649 ELSE 650 mbathy( 1 ,:) = 0 651 mbathy(jpi,:) = 0 652 ENDIF 653 ELSEIF( nperio == 1 .OR. nperio == 4 .OR. nperio == 6 ) THEN 654 IF(lwp) WRITE(numout,*)' east-west cyclic boundary conditions', & 655 ' on mbathy: nperio = ', nperio 656 mbathy( 1 ,:) = mbathy(jpim1,:) 657 mbathy(jpi,:) = mbathy( 2 ,:) 658 ELSEIF( nperio == 2 ) THEN 659 IF(lwp) WRITE(numout,*) ' equatorial boundary conditions', & 660 ' on mbathy: nperio = ', nperio 661 ELSE 662 IF(lwp) WRITE(numout,*) ' e r r o r' 663 IF(lwp) WRITE(numout,*) ' parameter , nperio = ', nperio 664 ! STOP 'dom_mba' 665 ENDIF 666 667 ! Set to zero mbathy over islands if necessary (lk_isl=F) 668 IF( .NOT. lk_isl ) THEN ! No island 669 IF(lwp) WRITE(numout,*) 670 IF(lwp) WRITE(numout,*) ' mbathy set to 0 over islands' 671 IF(lwp) WRITE(numout,*) ' ----------------------------' 672 673 mbathy(:,:) = MAX( 0, mbathy(:,:) ) 674 675 ! Boundary condition on mbathy 676 IF( .NOT.lk_mpp ) THEN 677 !!bug ??? y reflechir! 678 ! ... mono- or macro-tasking: T-point, >0, 2D array, no slab 679 zbathy(:,:) = FLOAT( mbathy(:,:) ) 680 CALL lbc_lnk( zbathy, 'T', 1. ) 681 mbathy(:,:) = INT( zbathy(:,:) ) 682 ENDIF 683 679 684 ENDIF 680 685 -
trunk/NEMO/OPA_SRC/DOM/domzgr_s.h90
r247 r253 196 196 END DO 197 197 198 ! =========== 199 ! Zoom domain 200 ! =========== 201 202 IF( lzoom ) CALL zgr_bat_zoom 203 198 204 ! 2.4 Control print 199 205 -
trunk/NEMO/OPA_SRC/DOM/domzgr_zps.h90
r247 r253 418 418 ENDIF 419 419 420 ! =========== 421 ! Zoom domain 422 ! =========== 423 424 IF( lzoom ) CALL zgr_bat_zoom 425 420 426 ! ================ 421 427 ! Bathymetry check
Note: See TracChangeset
for help on using the changeset viewer.