New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 253 for trunk/NEMO/OPA_SRC/DOM – NEMO

Changeset 253 for trunk/NEMO/OPA_SRC/DOM


Ignore:
Timestamp:
2005-08-30T15:26:11+02:00 (19 years ago)
Author:
opalod
Message:

nemo_v1_update_001 : Add the 1D configuration possibility

Location:
trunk/NEMO/OPA_SRC/DOM
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/OPA_SRC/DOM/domzgr.F90

    r250 r253  
    2222   USE closea 
    2323   USE solisl 
     24   USE ini1d           ! initialization of the 1D configuration 
    2425 
    2526   IMPLICIT NONE 
     
    592593      ! ================ 
    593594 
    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 
    619623            END DO 
     624 
    620625         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 
    639631         IF( lk_mpp ) THEN 
    640             IF( nbondi == -1 .OR. nbondi == 2 ) THEN 
    641                IF( jperio /= 1 )   mbathy(1,:) = 0 
    642             ENDIF 
    643             IF( nbondi == 1 .OR. nbondi == 2 ) THEN 
    644                IF( jperio /= 1 )   mbathy(nlci,:) = 0 
    645             ENDIF 
    646          ELSE 
    647             mbathy( 1 ,:) = 0 
    648             mbathy(jpi,:) = 0 
    649          ENDIF 
    650       ELSEIF( nperio == 1 .OR. nperio == 4 .OR. nperio ==  6 ) THEN 
    651          IF(lwp) WRITE(numout,*)' east-west cyclic boundary conditions',   & 
    652             ' on mbathy: nperio = ', nperio 
    653          mbathy( 1 ,:) = mbathy(jpim1,:) 
    654          mbathy(jpi,:) = mbathy(  2  ,:) 
    655       ELSEIF( nperio == 2 ) THEN 
    656          IF(lwp) WRITE(numout,*) '   equatorial boundary conditions',   & 
    657             ' on mbathy: nperio = ', nperio 
    658       ELSE 
    659          IF(lwp) WRITE(numout,*) '    e r r o r' 
    660          IF(lwp) WRITE(numout,*) '    parameter , nperio = ', nperio 
    661          !         STOP 'dom_mba' 
    662       ENDIF 
    663  
    664       ! Set to zero mbathy over islands if necessary  (lk_isl=F) 
    665       IF( .NOT. lk_isl ) THEN    ! No island 
    666          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 mbathy 
    673          IF( .NOT.lk_mpp ) THEN  
    674             !!bug ???  y reflechir! 
    675             !   ... mono- or macro-tasking: T-point, >0, 2D array, no slab 
    676632            zbathy(:,:) = FLOAT( mbathy(:,:) ) 
    677633            CALL lbc_lnk( zbathy, 'T', 1. ) 
    678634            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 
    679684         ENDIF 
    680685 
  • trunk/NEMO/OPA_SRC/DOM/domzgr_s.h90

    r247 r253  
    196196      END DO 
    197197 
     198      ! =========== 
     199      ! Zoom domain  
     200      ! =========== 
     201 
     202      IF( lzoom )   CALL zgr_bat_zoom 
     203 
    198204      ! 2.4 Control print 
    199205 
  • trunk/NEMO/OPA_SRC/DOM/domzgr_zps.h90

    r247 r253  
    418418   ENDIF 
    419419 
     420      ! =========== 
     421      ! Zoom domain  
     422      ! =========== 
     423 
     424      IF( lzoom )   CALL zgr_bat_zoom 
     425 
    420426      ! ================ 
    421427      ! Bathymetry check 
Note: See TracChangeset for help on using the changeset viewer.