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 7412 for branches/2016/dev_merge_2016/NEMOGCM/NEMO/OPA_SRC/DOM – NEMO

Ignore:
Timestamp:
2016-12-01T11:30:29+01:00 (8 years ago)
Author:
lovato
Message:

Merge dev_NOC_CMCC_merge_2016 into branch

Location:
branches/2016/dev_merge_2016/NEMOGCM/NEMO/OPA_SRC/DOM
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • branches/2016/dev_merge_2016/NEMOGCM/NEMO/OPA_SRC/DOM/closea.F90

    r5836 r7412  
    220220         ! 
    221221         !                                        ! surface of closed seas  
    222          IF( lk_mpp_rep ) THEN                         ! MPP reproductible calculation 
    223             DO jc = 1, jpncs 
    224                ctmp = CMPLX( 0.e0, 0.e0, wp ) 
    225                DO jj = ncsj1(jc), ncsj2(jc) 
    226                   DO ji = ncsi1(jc), ncsi2(jc) 
    227                      ztmp = e1e2t(ji,jj) * tmask_i(ji,jj) 
    228                      CALL DDPDD( CMPLX( ztmp, 0.e0, wp ), ctmp ) 
    229                   END DO  
    230                END DO  
    231                IF( lk_mpp )   CALL mpp_sum( ctmp ) 
    232                surf(jc) = REAL(ctmp,wp) 
    233             END DO 
    234          ELSE                                          ! Standard calculation            
    235             DO jc = 1, jpncs 
    236                DO jj = ncsj1(jc), ncsj2(jc) 
    237                   DO ji = ncsi1(jc), ncsi2(jc) 
    238                      surf(jc) = surf(jc) + e1e2t(ji,jj) * tmask_i(ji,jj)      ! surface of closed seas 
    239                   END DO  
     222         DO jc = 1, jpncs 
     223            ctmp = CMPLX( 0.e0, 0.e0, wp ) 
     224            DO jj = ncsj1(jc), ncsj2(jc) 
     225               DO ji = ncsi1(jc), ncsi2(jc) 
     226                  ztmp = e1e2t(ji,jj) * tmask_i(ji,jj) 
     227                  CALL DDPDD( CMPLX( ztmp, 0.e0, wp ), ctmp ) 
    240228               END DO  
    241229            END DO  
    242             IF( lk_mpp )   CALL mpp_sum ( surf, jpncs )       ! mpp: sum over all the global domain 
    243          ENDIF 
     230            IF( lk_mpp )   CALL mpp_sum( ctmp ) 
     231            surf(jc) = REAL(ctmp,wp) 
     232         END DO 
    244233 
    245234         IF(lwp) WRITE(numout,*)'     Closed sea surfaces' 
     
    257246      !                                                   !  update emp        ! 
    258247      zfwf = 0.e0_wp                                      !--------------------! 
    259       IF( lk_mpp_rep ) THEN                         ! MPP reproductible calculation 
    260          DO jc = 1, jpncs 
    261             ctmp = CMPLX( 0.e0, 0.e0, wp ) 
    262             DO jj = ncsj1(jc), ncsj2(jc) 
    263                DO ji = ncsi1(jc), ncsi2(jc) 
    264                   ztmp = e1e2t(ji,jj) * ( emp(ji,jj)-rnf(ji,jj) ) * tmask_i(ji,jj) 
    265                   CALL DDPDD( CMPLX( ztmp, 0.e0, wp ), ctmp ) 
    266                END DO   
    267             END DO  
    268             IF( lk_mpp )   CALL mpp_sum( ctmp ) 
    269             zfwf(jc) = REAL(ctmp,wp) 
    270          END DO 
    271       ELSE                                          ! Standard calculation            
    272          DO jc = 1, jpncs 
    273             DO jj = ncsj1(jc), ncsj2(jc) 
    274                DO ji = ncsi1(jc), ncsi2(jc) 
    275                   zfwf(jc) = zfwf(jc) + e1e2t(ji,jj) * ( emp(ji,jj)-rnf(ji,jj) ) * tmask_i(ji,jj)  
    276                END DO   
    277             END DO  
    278          END DO 
    279          IF( lk_mpp )   CALL mpp_sum ( zfwf(:) , jpncs )       ! mpp: sum over all the global domain 
    280       ENDIF 
     248      DO jc = 1, jpncs 
     249         ctmp = CMPLX( 0.e0, 0.e0, wp ) 
     250         DO jj = ncsj1(jc), ncsj2(jc) 
     251            DO ji = ncsi1(jc), ncsi2(jc) 
     252               ztmp = e1e2t(ji,jj) * ( emp(ji,jj)-rnf(ji,jj) ) * tmask_i(ji,jj) 
     253               CALL DDPDD( CMPLX( ztmp, 0.e0, wp ), ctmp ) 
     254            END DO   
     255         END DO  
     256         IF( lk_mpp )   CALL mpp_sum( ctmp ) 
     257         zfwf(jc) = REAL(ctmp,wp) 
     258      END DO 
    281259 
    282260      IF( cp_cfg == "orca" .AND. jp_cfg == 2 ) THEN      ! Black Sea case for ORCA_R2 configuration 
  • branches/2016/dev_merge_2016/NEMOGCM/NEMO/OPA_SRC/DOM/dom_oce.F90

    r6140 r7412  
    270270 
    271271   !!---------------------------------------------------------------------- 
    272    !! mpp reproducibility 
    273    !!---------------------------------------------------------------------- 
    274 #if defined key_mpp_rep 
    275    LOGICAL, PUBLIC, PARAMETER ::   lk_mpp_rep = .TRUE.    !: agrif flag 
    276 #else 
    277    LOGICAL, PUBLIC, PARAMETER ::   lk_mpp_rep = .FALSE.   !: agrif flag 
    278 #endif 
    279  
    280    !!---------------------------------------------------------------------- 
    281272   !! agrif domain 
    282273   !!---------------------------------------------------------------------- 
  • branches/2016/dev_merge_2016/NEMOGCM/NEMO/OPA_SRC/DOM/dommsk.F90

    r6140 r7412  
    2424   USE oce             ! ocean dynamics and tracers 
    2525   USE dom_oce         ! ocean space and time domain 
    26    ! 
     26   USE bdy_oce       
    2727   USE in_out_manager  ! I/O manager 
    2828   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
    2929   USE lib_mpp         ! 
     30   USE iom 
    3031   USE wrk_nemo        ! Memory allocation 
    3132   USE timing          ! Timing 
     
    8889      !!      are defined with the proper value at lateral domain boundaries. 
    8990      !! 
    90       !!      In case of open boundaries (lk_bdy=T): 
     91      !!      In case of open boundaries (ln_bdy=T): 
    9192      !!        - tmask is set to 1 on the points to be computed bay the open 
    9293      !!          boundaries routines. 
     
    102103      INTEGER  ::   iif, iil, ii0, ii1, ii   ! local integers 
    103104      INTEGER  ::   ijf, ijl, ij0, ij1       !   -       - 
    104       INTEGER  ::   ios 
     105      INTEGER  ::   ios, inum 
    105106      INTEGER  ::   isrow                    ! index for ORCA1 starting row 
    106107      INTEGER , POINTER, DIMENSION(:,:) ::  imsk 
     
    108109      !! 
    109110      NAMELIST/namlbc/ rn_shlat, ln_vorlat 
     111      NAMELIST/nambdy/ ln_bdy ,nb_bdy, ln_coords_file, cn_coords_file,         & 
     112         &             ln_mask_file, cn_mask_file, cn_dyn2d, nn_dyn2d_dta,     & 
     113         &             cn_dyn3d, nn_dyn3d_dta, cn_tra, nn_tra_dta,             & 
     114         &             ln_tra_dmp, ln_dyn3d_dmp, rn_time_dmp, rn_time_dmp_out, & 
     115         &             cn_ice_lim, nn_ice_lim_dta,                           & 
     116         &             rn_ice_tem, rn_ice_sal, rn_ice_age,                 & 
     117         &             ln_vol, nn_volctl, nn_rimwidth, nb_jpk_bdy 
    110118      !!--------------------------------------------------------------------- 
    111119      ! 
     
    155163      END DO   
    156164       
     165      REWIND( numnam_ref )              ! Namelist nambdy in reference namelist :Unstructured open boundaries   
     166      READ  ( numnam_ref, nambdy, IOSTAT = ios, ERR = 903) 
     167903   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambdy in reference namelist', lwp ) 
     168 
     169      REWIND( numnam_cfg )              ! Namelist nambdy in configuration namelist :Unstructured open boundaries 
     170      READ  ( numnam_cfg, nambdy, IOSTAT = ios, ERR = 904 ) 
     171904   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambdy in configuration namelist', lwp ) 
     172      IF(lwm) WRITE ( numond, nambdy ) 
     173 
     174     IF( ln_bdy .AND. ln_mask_file ) THEN ! correct for bdy mask 
     175         CALL iom_open( cn_mask_file, inum ) 
     176         CALL iom_get ( inum, jpdom_data, 'bdy_msk', bdytmask(:,:) ) 
     177         CALL iom_close( inum ) 
     178 
     179         ! Mask corrections 
     180         ! ---------------- 
     181         DO jk = 1, jpkm1 
     182            DO jj = 1, jpj 
     183               DO ji = 1, jpi 
     184                  tmask(ji,jj,jk) = tmask(ji,jj,jk) * bdytmask(ji,jj) 
     185               END DO 
     186            END DO 
     187         END DO 
     188      ENDIF 
     189 
    157190      ! (ISF) define barotropic mask and mask the ice shelf point 
    158191      ssmask(:,:)=tmask(:,:,1) ! at this stage ice shelf is not masked 
  • branches/2016/dev_merge_2016/NEMOGCM/NEMO/OPA_SRC/DOM/domvvl.F90

    r6351 r7412  
    874874            ! 
    875875         ELSE                                   !* Initialize at "rest" 
    876             e3t_b(:,:,:) = e3t_0(:,:,:) 
    877             e3t_n(:,:,:) = e3t_0(:,:,:) 
    878             sshn(:,:) = 0.0_wp 
    879  
    880             IF( ln_wd ) THEN 
     876            ! 
     877            IF( ln_wd .AND. ( cp_cfg == 'wad' ) ) THEN 
     878               ! 
     879               CALL wad_istate                  ! WAD test configuration : start from  
     880                                                ! uniform T-S fields and initial ssh slope 
     881               ! needs to be called here and in istate which is called later. 
     882               ! Adjust vertical metrics 
     883               DO jk = 1, jpk 
     884                  e3t_n(:,:,jk) =  e3t_0(:,:,jk) * ( ht_0(:,:) + sshn(:,:) ) & 
     885                    &                            / ( ht_0(:,:) + 1._wp - ssmask(:,:) ) * tmask(:,:,jk)   & 
     886                    &            + e3t_0(:,:,jk)                               * (1._wp -tmask(:,:,jk)) 
     887               END DO 
     888               e3t_b(:,:,:) = e3t_n(:,:,:) 
     889               ! 
     890            ELSEIF( ln_wd ) THEN 
     891               ! 
    881892              DO jj = 1, jpj 
    882893                DO ji = 1, jpi 
    883894                  IF( e3t_0(ji,jj,1) <= 0.5_wp * rn_wdmin1 ) THEN 
    884                      e3t_b(ji,jj,:) = 0.5_wp * rn_wdmin1  
    885                      e3t_n(ji,jj,:) = 0.5_wp * rn_wdmin1  
    886                      e3t_a(ji,jj,:) = 0.5_wp * rn_wdmin1  
     895                     e3t_b(ji,jj,:) = 0.5_wp * rn_wdmin1 
     896                     e3t_n(ji,jj,:) = 0.5_wp * rn_wdmin1 
     897                     e3t_a(ji,jj,:) = 0.5_wp * rn_wdmin1 
    887898                     sshb(ji,jj) = rn_wdmin1 - bathy(ji,jj) 
    888899                     sshn(ji,jj) = rn_wdmin1 - bathy(ji,jj) 
     
    891902                ENDDO 
    892903              ENDDO 
     904               ! 
     905            ELSE 
     906               ! 
     907               e3t_b(:,:,:) = e3t_0(:,:,:) 
     908               e3t_n(:,:,:) = e3t_0(:,:,:) 
     909               sshn(:,:) = 0.0_wp 
     910               ! 
    893911            END IF 
    894912 
  • branches/2016/dev_merge_2016/NEMOGCM/NEMO/OPA_SRC/DOM/domzgr.F90

    r6492 r7412  
    421421               IF(lwp) WRITE(numout,*) '         Depth = rn_bathy read in namelist' 
    422422               zdta(:,:) = rn_bathy 
     423! 
     424               IF( cp_cfg == 'wad' ) THEN 
     425                  SELECT CASE ( jp_cfg ) 
     426                     !                                        ! ==================== 
     427                     CASE ( 1 )                               ! WAD 1 configuration 
     428                        !                                     ! ==================== 
     429                        ! 
     430                        IF(lwp) WRITE(numout,*) 
     431                        IF(lwp) WRITE(numout,*) 'zgr_bat : Closed box with EW linear bottom slope' 
     432                        IF(lwp) WRITE(numout,*) '~~~~~~~~~~' 
     433                        ! 
     434                        zdta = 1.5_wp 
     435                        DO ji = 10, jpidta 
     436                          zi = MIN(FLOAT(ji - 10)/FLOAT(jpidta - 10), 1.0 ) 
     437                          zdta(ji,:) = MAX(rn_bathy*zi, 1.5)  
     438                          IF(lwp)write(numout,*) 'ZDTA ',ji,zi,zdta(ji,1) 
     439                        END DO 
     440                        !!DO ji = 1, jpidta  
     441                        !!  zi = 1.0-EXP(-0.045*(ji-25.0)**2) 
     442                        !!  zdta(ji,:) = MAX(rn_bathy*zi, 1.5) 
     443                        !!  IF(lwp)write(numout,*) 'ZDTA ',ji,zi,zdta(ji,1) 
     444                        !!END DO 
     445                        zdta(1:2,:) = -2._wp 
     446                        zdta(jpidta-1:jpidta,:) = -2._wp 
     447                        zdta(:,1) = -2._wp 
     448                        zdta(:,jpjdta) = -2._wp 
     449                        zdta(:,1:3) = -2._wp 
     450                        zdta(:,jpjdta-2:jpjdta) = -2._wp 
     451                        !                                     ! ==================== 
     452                     CASE ( 2, 3 )                            ! WAD 2 or 3  configuration 
     453                        !                                     ! ==================== 
     454                        ! 
     455                        IF(lwp) WRITE(numout,*) 
     456                        IF(lwp) WRITE(numout,*) 'zgr_bat : Parobolic EW channel' 
     457                        IF(lwp) WRITE(numout,*) '~~~~~~~~~~' 
     458                        ! 
     459                        DO ji = 1, jpidta 
     460                          zi = MAX(1.0-FLOAT((ji-25)**2)/484.0, 0.0 ) 
     461                          zi = MAX(1.0-FLOAT((ji-25)**2)/484.0, -2.0 ) 
     462                          zdta(ji,:) = MAX(rn_bathy*zi, -20.0) 
     463                          IF(lwp)write(numout,*) 'ZDTA ',ji,zi,zdta(ji,1) 
     464                        END DO 
     465                        zdta(1:2,:) = -2._wp 
     466                        zdta(jpidta-1:jpidta,:) = -2._wp 
     467                        zdta(:,1) = -2._wp 
     468                        zdta(:,jpjdta) = -2._wp 
     469                        zdta(:,1:3) = -2._wp 
     470                        zdta(:,jpjdta-2:jpjdta) = -2._wp 
     471                        !                                     ! ==================== 
     472                     CASE ( 4 )                               ! WAD 4 configuration 
     473                        !                                     ! ==================== 
     474                        ! 
     475                        IF(lwp) WRITE(numout,*) 
     476                        IF(lwp) WRITE(numout,*) 'zgr_bat : Parobolic bowl' 
     477                        IF(lwp) WRITE(numout,*) '~~~~~~~~~~' 
     478                        ! 
     479                        DO ji = 1, jpidta 
     480                          zi = MAX(1.0-FLOAT((ji-25)**2)/484.0, -2.0 ) 
     481                        DO jj = 1, jpjdta 
     482                          zj = MAX(1.0-FLOAT((jj-17)**2)/196.0, -2.0 ) 
     483                          zdta(ji,jj) = MAX(rn_bathy*zi*zj, -2.0) 
     484                        END DO 
     485                          IF(lwp)write(numout,*) 'ZDTA ',ji,zi,zdta(ji,1) 
     486                        END DO 
     487                        zdta(1:2,:) = -2._wp 
     488                        zdta(jpidta-1:jpidta,:) = -2._wp 
     489                        zdta(:,1) = -2._wp 
     490                        zdta(:,jpjdta) = -2._wp 
     491                        zdta(:,1:3) = -2._wp 
     492                        zdta(:,jpjdta-2:jpjdta) = -2._wp 
     493                        !                                    ! =========================== 
     494                     CASE ( 5 )                              ! WAD 5 configuration 
     495                        !                                    ! ==================== 
     496                        ! 
     497                        IF(lwp) WRITE(numout,*) 
     498                        IF(lwp) WRITE(numout,*) 'zgr_bat : Double slope with shelf' 
     499                        IF(lwp) WRITE(numout,*) '~~~~~~~~~~' 
     500                        ! 
     501                        DO ji = 1, jpidta 
     502                          zi = MIN(FLOAT(ji)/FLOAT(jpidta - 5), 1.0 ) 
     503                          zdta(ji,:) = MAX(rn_bathy*zi, 0.5) 
     504                          IF(lwp)write(numout,*) 'ZDTA ',ji,zi,zdta(ji,1) 
     505                        END DO 
     506                        DO ji = jpidta,46,-1 
     507                          zdta(ji,:) = 10.0 
     508                          IF(lwp)write(numout,*) 'ZDTA ',ji,zi,zdta(ji,1) 
     509                        END DO 
     510                        DO ji = 46,20,-1 
     511                          zi = 7.5/25. 
     512                          zdta(ji,:) = MAX(10. - zi*(47.-ji),2.5) 
     513                          IF(lwp)write(numout,*) 'ZDTA ',ji,zi,zdta(ji,1) 
     514                        END DO 
     515                        DO ji = 19,15,-1 
     516                          zdta(ji,:) = 2.5 
     517                          IF(lwp)write(numout,*) 'ZDTA ',ji,zi,zdta(ji,1) 
     518                        END DO 
     519                        DO ji = 15,4,-1 
     520                          zi = 2.0/11.0 
     521                          zdta(ji,:) = MAX(2.5 - zi*(16-ji), 0.5) 
     522                          IF(lwp)write(numout,*) 'ZDTA ',ji,zi,zdta(ji,1) 
     523                        END DO 
     524                        DO ji = 4,1,-1 
     525                          zdta(ji,:) = 0.5 
     526                          IF(lwp)write(numout,*) 'ZDTA ',ji,zi,zdta(ji,1) 
     527                        END DO 
     528                        !                                    ! =========================== 
     529                        zdta(1:2,:) = -4._wp 
     530                        zdta(jpidta-1:jpidta,:) = -4._wp 
     531                        zdta(:,1) = -4._wp 
     532                        zdta(:,jpjdta) = -4._wp 
     533                        zdta(:,1:3) = -4._wp 
     534                        zdta(:,jpjdta-2:jpjdta) = -4._wp 
     535                        !                                    ! =========================== 
     536                     CASE ( 6 )                              ! WAD 6 configuration 
     537                        !                                    ! ==================== 
     538                        ! 
     539                        IF(lwp) WRITE(numout,*) 
     540                        IF(lwp) WRITE(numout,*) 'zgr_bat : Parabolic channel with gaussian ridge' 
     541                        IF(lwp) WRITE(numout,*) '~~~~~~~~~~' 
     542                        ! 
     543                        DO ji = 1, jpidta 
     544                          zi = MAX(1.0-FLOAT((ji-25)**2)/484.0, -2.0 ) 
     545                          zj = 0.95*MAX(EXP(-1.0*FLOAT((ji-25)**2)/32.0) , 0.0 ) 
     546                          zdta(ji,:) = MAX(rn_bathy*(zi-zj), -2.0) 
     547                          IF(lwp)write(numout,*) 'ZDTA ',ji,zi,zdta(ji,1) 
     548                        END DO 
     549                        zdta(1:2,:) = -4._wp 
     550                        zdta(jpidta-1:jpidta,:) = -4._wp 
     551                        zdta(:,1) = -4._wp 
     552                        zdta(:,jpjdta) = -4._wp 
     553                        zdta(:,1:3) = -4._wp 
     554                        zdta(:,jpjdta-2:jpjdta) = -4._wp 
     555                        !                                    ! =========================== 
     556                     CASE DEFAULT 
     557                        !                                    ! =========================== 
     558                        WRITE(ctmp1,*) 'WAD test with a ', jp_cfg,' option is not coded' 
     559                        ! 
     560                        CALL ctl_stop( ctmp1 ) 
     561                        ! 
     562                  END SELECT 
     563               END IF 
     564               ! 
    423565               IF( ln_sco ) THEN                                   ! s-coordinate (zsc       ): idta()=jpk 
    424566                  idta(:,:) = jpkm1 
     
    21932335      CALL lbc_lnk( e3vw_0, 'V', 1._wp ) 
    21942336      ! 
    2195       IF( .NOT.ln_wd ) THEN 
    2196         WHERE( e3t_0 (:,:,:) == 0._wp )   e3t_0 (:,:,:) = 1._wp 
    2197         WHERE( e3u_0 (:,:,:) == 0._wp )   e3u_0 (:,:,:) = 1._wp 
    2198         WHERE( e3v_0 (:,:,:) == 0._wp )   e3v_0 (:,:,:) = 1._wp 
    2199         WHERE( e3f_0 (:,:,:) == 0._wp )   e3f_0 (:,:,:) = 1._wp 
    2200         WHERE( e3w_0 (:,:,:) == 0._wp )   e3w_0 (:,:,:) = 1._wp 
    2201         WHERE( e3uw_0(:,:,:) == 0._wp )   e3uw_0(:,:,:) = 1._wp 
    2202         WHERE( e3vw_0(:,:,:) == 0._wp )   e3vw_0(:,:,:) = 1._wp 
    2203       END IF 
     2337      WHERE( e3t_0 (:,:,:) == 0._wp )   e3t_0 (:,:,:) = 1._wp 
     2338      WHERE( e3u_0 (:,:,:) == 0._wp )   e3u_0 (:,:,:) = 1._wp 
     2339      WHERE( e3v_0 (:,:,:) == 0._wp )   e3v_0 (:,:,:) = 1._wp 
     2340      WHERE( e3f_0 (:,:,:) == 0._wp )   e3f_0 (:,:,:) = 1._wp 
     2341      WHERE( e3w_0 (:,:,:) == 0._wp )   e3w_0 (:,:,:) = 1._wp 
     2342      WHERE( e3uw_0(:,:,:) == 0._wp )   e3uw_0(:,:,:) = 1._wp 
     2343      WHERE( e3vw_0(:,:,:) == 0._wp )   e3vw_0(:,:,:) = 1._wp 
    22042344 
    22052345#if defined key_agrif 
     
    23032443               DO jk = 1, mbathy(ji,jj) 
    23042444                 ! check coordinate is monotonically increasing 
    2305                  IF (e3w_n(ji,jj,jk) <= 0._wp .OR. e3t_n(ji,jj,jk) <= 0._wp ) THEN 
     2445                 IF (e3w_0(ji,jj,jk) <= 0._wp .OR. e3t_0(ji,jj,jk) <= 0._wp ) THEN 
    23062446                    WRITE(ctmp1,*) 'ERROR zgr_sco :   e3w   or e3t   =< 0  at point (i,j,k)= ', ji, jj, jk 
    23072447                    WRITE(numout,*) 'ERROR zgr_sco :   e3w   or e3t   =< 0  at point (i,j,k)= ', ji, jj, jk 
    2308                     WRITE(numout,*) 'e3w',e3w_n(ji,jj,:) 
    2309                     WRITE(numout,*) 'e3t',e3t_n(ji,jj,:) 
     2448                    WRITE(numout,*) 'e3w',e3w_0(ji,jj,:) 
     2449                    WRITE(numout,*) 'e3t',e3t_0(ji,jj,:) 
    23102450                    CALL ctl_stop( ctmp1 ) 
    23112451                 ENDIF 
    23122452                 ! and check it has never gone negative 
    2313                  IF( gdepw_n(ji,jj,jk) < 0._wp .OR. gdept_n(ji,jj,jk) < 0._wp ) THEN 
     2453                 IF( gdepw_0(ji,jj,jk) < 0._wp .OR. gdept_0(ji,jj,jk) < 0._wp ) THEN 
    23142454                    WRITE(ctmp1,*) 'ERROR zgr_sco :   gdepw or gdept =< 0  at point (i,j,k)= ', ji, jj, jk 
    23152455                    WRITE(numout,*) 'ERROR zgr_sco :   gdepw   or gdept   =< 0  at point (i,j,k)= ', ji, jj, jk 
    2316                     WRITE(numout,*) 'gdepw',gdepw_n(ji,jj,:) 
    2317                     WRITE(numout,*) 'gdept',gdept_n(ji,jj,:) 
     2456                    WRITE(numout,*) 'gdepw',gdepw_0(ji,jj,:) 
     2457                    WRITE(numout,*) 'gdept',gdept_0(ji,jj,:) 
    23182458                    CALL ctl_stop( ctmp1 ) 
    23192459                 ENDIF 
    23202460                 ! and check it never exceeds the total depth 
    2321                  IF( gdepw_n(ji,jj,jk) > hbatt(ji,jj) ) THEN 
     2461                 IF( gdepw_0(ji,jj,jk) > hbatt(ji,jj) ) THEN 
    23222462                    WRITE(ctmp1,*) 'ERROR zgr_sco :   gdepw > hbatt  at point (i,j,k)= ', ji, jj, jk 
    23232463                    WRITE(numout,*) 'ERROR zgr_sco :   gdepw > hbatt  at point (i,j,k)= ', ji, jj, jk 
    2324                     WRITE(numout,*) 'gdepw',gdepw_n(ji,jj,:) 
     2464                    WRITE(numout,*) 'gdepw',gdepw_0(ji,jj,:) 
    23252465                    CALL ctl_stop( ctmp1 ) 
    23262466                 ENDIF 
     
    23292469               DO jk = 1, mbathy(ji,jj)-1 
    23302470                 ! and check it never exceeds the total depth 
    2331                 IF( gdept_n(ji,jj,jk) > hbatt(ji,jj) ) THEN 
     2471                IF( gdept_0(ji,jj,jk) > hbatt(ji,jj) ) THEN 
    23322472                    WRITE(ctmp1,*) 'ERROR zgr_sco :   gdept > hbatt  at point (i,j,k)= ', ji, jj, jk 
    23332473                    WRITE(numout,*) 'ERROR zgr_sco :   gdept > hbatt  at point (i,j,k)= ', ji, jj, jk 
    2334                     WRITE(numout,*) 'gdept',gdept_n(ji,jj,:) 
     2474                    WRITE(numout,*) 'gdept',gdept_0(ji,jj,:) 
    23352475                    CALL ctl_stop( ctmp1 ) 
    23362476                 ENDIF 
  • branches/2016/dev_merge_2016/NEMOGCM/NEMO/OPA_SRC/DOM/istate.F90

    r6140 r7412  
    3636   USE domvvl          ! varying vertical mesh 
    3737   USE iscplrst        ! ice sheet coupling 
     38   USE wet_dry         ! wetting and drying (needed for wad_istate) 
    3839   ! 
    3940   USE in_out_manager  ! I/O manager 
     
    105106         ELSEIF( cp_cfg == 'gyre' ) THEN          
    106107            CALL istate_gyre                     ! GYRE  configuration : start from pre-defined T-S fields 
     108         ELSEIF( cp_cfg == 'wad' ) THEN          
     109            CALL wad_istate                      ! WAD test configuration : start from pre-defined T-S fields and initial ssh slope 
    107110         ELSE                                    ! Initial T-S, U-V fields read in files 
    108111            IF ( ln_tsd_init ) THEN              ! read 3D T and S data at nit000 
Note: See TracChangeset for help on using the changeset viewer.