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 2240 – NEMO

Changeset 2240


Ignore:
Timestamp:
2010-10-13T10:48:48+02:00 (14 years ago)
Author:
cetlod
Message:

Suppression of key_zco everywhere in the code

Location:
branches/DEV_r2106_LOCEAN2010/NEMO
Files:
23 edited

Legend:

Unmodified
Added
Removed
  • branches/DEV_r2106_LOCEAN2010/NEMO/NST_SRC/agrif_opa_interp.F90

    r1605 r2240  
    220220            DO jj=1,jpj 
    221221               ua(1:2,jj,jk) = (zua(1:2,jj,jk)/(rhoy*e2u(1:2,jj))) 
    222 #if ! defined key_zco 
    223222               ua(1:2,jj,jk) = ua(1:2,jj,jk) / fse3u(1:2,jj,jk) 
    224 #endif 
    225223            END DO 
    226224         END DO 
     
    276274            DO jj=1,jpj 
    277275               va(2,jj,jk) = (zva(2,jj,jk)/(zrhox*e1v(2,jj)))*vmask(2,jj,jk) 
    278 #if ! defined key_zco 
    279276               va(2,jj,jk) = va(2,jj,jk) / fse3v(2,jj,jk) 
    280 #endif            
    281277            END DO 
    282278         END DO 
     
    297293               ua(nlci-2:nlci-1,jj,jk) = (zua(nlci-2:nlci-1,jj,jk)/(rhoy*e2u(nlci-2:nlci-1,jj))) 
    298294 
    299 #if ! defined key_zco 
    300295               ua(nlci-2:nlci-1,jj,jk) = ua(nlci-2:nlci-1,jj,jk) / fse3u(nlci-2:nlci-1,jj,jk) 
    301 #endif 
    302296 
    303297            END DO 
     
    357351            DO jj=1,jpj-1 
    358352               va(nlci-1,jj,jk) = (zva(nlci-1,jj,jk)/(zrhox*e1v(nlci-1,jj)))*vmask(nlci-1,jj,jk) 
    359 #if ! defined key_zco 
    360353               va(nlci-1,jj,jk) = va(nlci-1,jj,jk) / fse3v(nlci-1,jj,jk) 
    361 #endif 
    362354            END DO 
    363355         END DO 
     
    376368            DO ji=1,jpi 
    377369               va(ji,1:2,jk) = (zva(ji,1:2,jk)/(zrhox*e1v(ji,1:2))) 
    378 #if ! defined key_zco 
    379370               va(ji,1:2,jk) = va(ji,1:2,jk) / fse3v(ji,1:2,jk) 
    380 #endif 
    381371            END DO 
    382372         END DO 
     
    432422            DO ji=1,jpi 
    433423               ua(ji,2,jk) = (zua(ji,2,jk)/(rhoy*e2u(ji,2)))*umask(ji,2,jk)  
    434 #if ! defined key_zco 
    435424               ua(ji,2,jk) = ua(ji,2,jk) / fse3u(ji,2,jk) 
    436 #endif                 
    437425            END DO 
    438426         END DO 
     
    451439            DO ji=1,jpi 
    452440               va(ji,nlcj-2:nlcj-1,jk) = (zva(ji,nlcj-2:nlcj-1,jk)/(zrhox*e1v(ji,nlcj-2:nlcj-1))) 
    453 #if ! defined key_zco 
    454441               va(ji,nlcj-2:nlcj-1,jk) = va(ji,nlcj-2:nlcj-1,jk) / fse3v(ji,nlcj-2:nlcj-1,jk) 
    455 #endif 
    456442            END DO 
    457443         END DO 
     
    508494            DO ji=1,jpi 
    509495               ua(ji,nlcj-1,jk) = (zua(ji,nlcj-1,jk)/(rhoy*e2u(ji,nlcj-1)))*umask(ji,nlcj-1,jk) 
    510 #if ! defined key_zco 
    511496               ua(ji,nlcj-1,jk) = ua(ji,nlcj-1,jk) / fse3u(ji,nlcj-1,jk) 
    512 #endif           
    513497            END DO 
    514498         END DO 
     
    535519            DO ji=i1,i2 
    536520               tabres(ji,jj,jk) = e2u(ji,jj) * un(ji,jj,jk) 
    537 #if ! defined key_zco 
    538521               tabres(ji,jj,jk) = tabres(ji,jj,jk) * fse3u(ji,jj,jk) 
    539 #endif 
    540522            END DO 
    541523         END DO 
     
    578560            DO ji=i1,i2 
    579561               tabres(ji,jj,jk) = e1v(ji,jj) * vn(ji,jj,jk) 
    580 #if ! defined key_zco 
    581562               tabres(ji,jj,jk) = tabres(ji,jj,jk) * fse3v(ji,jj,jk) 
    582 #endif            
    583563            END DO 
    584564         END DO 
  • branches/DEV_r2106_LOCEAN2010/NEMO/NST_SRC/agrif_opa_sponge.F90

    r1300 r2240  
    130130         DO jj = 1, jpjm1 
    131131            DO ji = 1, jpim1 
    132 #if defined key_zco 
    133                zabe1 = umask(ji,jj,jk) * spe1ur(ji,jj) 
    134                zabe2 = vmask(ji,jj,jk) * spe2vr(ji,jj) 
    135 #else 
    136132               zabe1 = umask(ji,jj,jk) * spe1ur(ji,jj) * fse3u(ji,jj,jk) 
    137133               zabe2 = vmask(ji,jj,jk) * spe2vr(ji,jj) * fse3v(ji,jj,jk) 
    138 #endif 
    139134               ztu(ji,jj,jk) = zabe1 * ( tbdiff(ji+1,jj  ,jk) - tbdiff(ji,jj,jk) ) 
    140135               zsu(ji,jj,jk) = zabe1 * ( sbdiff(ji+1,jj  ,jk) - sbdiff(ji,jj,jk) ) 
     
    146141         DO jj = 2,jpjm1 
    147142            DO ji = 2,jpim1 
    148 #if defined key_zco 
    149                zbtr = spbtr2(ji,jj) 
    150 #else 
    151143               zbtr = spbtr2(ji,jj) / fse3t(ji,jj,jk) 
    152 #endif 
    153144               ! horizontal diffusive trends 
    154145               zta = zbtr * (  ztu(ji,jj,jk) - ztu(ji-1,jj,jk)   & 
     
    282273         DO jj = 2, jpjm1 
    283274            DO ji = 2, jpim1   ! vector opt. 
    284 #if defined key_zco 
    285                zbtr = spbtr2(ji,jj) 
    286                hdivdiff(ji,jj,jk) = (  e2u(ji,jj) * ubdiff(ji,jj,jk) & 
    287                   - e2u(ji-1,jj  ) * ubdiff(ji-1,jj  ,jk)      & 
    288                   &               + e1v(ji,jj) * vbdiff(ji,jj,jk) - & 
    289                   &              e1v(ji  ,jj-1) * vbdiff(ji  ,jj-1,jk)  ) * zbtr 
    290 #else 
    291275               zbtr = spbtr2(ji,jj) / fse3t(ji,jj,jk) 
    292276               hdivdiff(ji,jj,jk) =   & 
     
    297281                  vbdiff(ji,jj,jk) - e1v(ji  ,jj-1)* & 
    298282                  fse3v(ji  ,jj-1,jk)  * vbdiff(ji  ,jj-1,jk)  ) * zbtr 
    299 #endif 
    300283            END DO 
    301284         END DO 
     
    303286         DO jj = 1, jpjm1 
    304287            DO ji = 1, jpim1   ! vector opt. 
    305 #if defined key_zco       
    306                zbtr = spbtr3(ji,jj) 
    307                rotdiff(ji,jj,jk) = (  e2v(ji+1,jj  ) * vbdiff(ji+1,jj  ,jk) - e2v(ji,jj) * vbdiff(ji,jj,jk)    & 
    308                   &              - e1u(ji  ,jj+1) * ubdiff(ji  ,jj+1,jk) + e1u(ji,jj) * ubdiff(ji,jj,jk)  ) & 
    309                   &           * fmask(ji,jj,jk) * zbtr 
    310 #else 
    311288               zbtr = spbtr3(ji,jj) * fse3f(ji,jj,jk) 
    312289               rotdiff(ji,jj,jk) = (  e2v(ji+1,jj  ) * vbdiff(ji+1,jj  ,jk) - e2v(ji,jj) * vbdiff(ji,jj,jk)    & 
    313290                  &              - e1u(ji  ,jj+1) * ubdiff(ji  ,jj+1,jk) + e1u(ji,jj) * ubdiff(ji,jj,jk)  ) & 
    314291                  &           * fmask(ji,jj,jk) * zbtr 
    315 #endif         
    316292            END DO 
    317293         END DO 
     
    324300         DO jj = 2, jpjm1 
    325301            DO ji = 2, jpim1   ! vector opt. 
    326 #if defined key_zco 
    327                ! horizontal diffusive trends 
    328                ze2u = rotdiff (ji,jj,jk) 
    329                ze1v = hdivdiff(ji,jj,jk) 
    330                zua = - (                ze2u                  - & 
    331                   rotdiff (ji,jj-1,jk) ) / e2u(ji,jj)   & 
    332                   + ( hdivdiff(ji+1,jj,jk) -     & 
    333                   ze1v                  ) / e1u(ji,jj) 
    334  
    335                zva = + (                ze2u                  - & 
    336                   rotdiff (ji-1,jj,jk) ) / e1v(ji,jj)   & 
    337                   + ( hdivdiff(ji,jj+1,jk) -       & 
    338                   ze1v                  ) / e2v(ji,jj) 
    339 #else 
    340302               ze2u = rotdiff (ji,jj,jk) 
    341303               ze1v = hdivdiff(ji,jj,jk) 
     
    348310                  + ( hdivdiff(ji,jj+1,jk) - ze1v    & 
    349311                  ) / e2v(ji,jj) 
    350 #endif 
    351312 
    352313               ! add it to the general momentum trends 
  • branches/DEV_r2106_LOCEAN2010/NEMO/NST_SRC/agrif_opa_update.F90

    r1587 r2240  
    198198               DO ji=i1,i2 
    199199                  tabres(ji,jj,jk) = e2u(ji,jj) * un(ji,jj,jk) 
    200 #if ! defined key_zco 
    201                   tabres(ji,jj,jk) = tabres(ji,jj,jk) * fse3u(ji,jj,jk) 
    202 #endif 
    203200               END DO 
    204201            END DO 
     
    211208                  un(ji,jj,jk) = tabres(ji,jj,jk) / (e2u(ji,jj)) 
    212209                  un(ji,jj,jk) = un(ji,jj,jk) * umask(ji,jj,jk) 
    213 #if ! defined key_zco 
    214210                  un(ji,jj,jk) = un(ji,jj,jk) / fse3u(ji,jj,jk) 
    215 #endif 
    216211               END DO 
    217212            END DO 
     
    240235               DO ji=i1,i2 
    241236                  tabres(ji,jj,jk) = e1v(ji,jj) * vn(ji,jj,jk) 
    242 #if ! defined key_zco 
    243237                  tabres(ji,jj,jk) = tabres(ji,jj,jk) * fse3v(ji,jj,jk) 
    244 #endif 
    245238               END DO 
    246239            END DO 
     
    253246                  vn(ji,jj,jk) = tabres(ji,jj,jk) / (e1v(ji,jj)) 
    254247                  vn(ji,jj,jk) = vn(ji,jj,jk) * vmask(ji,jj,jk) 
    255 #if ! defined key_zco 
    256248                  vn(ji,jj,jk) = vn(ji,jj,jk) / fse3v(ji,jj,jk) 
    257 #endif 
    258249               END DO 
    259250            END DO 
  • branches/DEV_r2106_LOCEAN2010/NEMO/NST_SRC/agrif_top_sponge.F90

    r1271 r2240  
    123123         DO jj = 1, jpjm1 
    124124            DO ji = 1, jpim1 
    125 #if defined key_zco 
    126                zabe1 = umask(ji,jj,jk) * spe1ur(ji,jj) 
    127                zabe2 = vmask(ji,jj,jk) * spe2vr(ji,jj) 
    128 #else 
    129125               zabe1 = umask(ji,jj,jk) * spe1ur(ji,jj) * fse3u(ji,jj,jk) 
    130126               zabe2 = vmask(ji,jj,jk) * spe2vr(ji,jj) * fse3v(ji,jj,jk) 
    131 #endif 
    132127               ztru(ji,jj,jk,jl) = zabe1 * ( trbdiff(ji+1,jj  ,jk,jl) - trbdiff(ji,jj,jk,jl) ) 
    133128               ztrv(ji,jj,jk,jl) = zabe2 * ( trbdiff(ji  ,jj+1,jk,jl) - trbdiff(ji,jj,jk,jl) ) 
     
    137132         DO jj = 2,jpjm1 
    138133            DO ji = 2,jpim1 
    139 #if defined key_zco 
    140                zbtr = spbtr2(ji,jj) 
    141 #else 
    142134               zbtr = spbtr2(ji,jj) / fse3t(ji,jj,jk) 
    143 #endif 
    144135               ! horizontal diffusive trends 
    145136               ztra = zbtr * (  ztru(ji,jj,jk,jl) - ztru(ji-1,jj,jk,jl)   & 
  • branches/DEV_r2106_LOCEAN2010/NEMO/OFF_SRC/domain.F90

    r2053 r2240  
    239239      !!              - vertical coordinate (gdep., e3.) depending on the  
    240240      !!                coordinate chosen : 
    241       !!                   ln_zco=T   z-coordinate   (forced if lk_zco) 
     241      !!                   ln_zco=T   z-coordinate   
    242242      !!                   ln_zps=T   z-coordinate with partial steps 
    243243      !!                   ln_zco=T   s-coordinate  
     
    268268      IF( ln_sco ) ioptio = ioptio + 1 
    269269      IF ( ioptio /= 1 )   CALL ctl_stop( ' none or several vertical coordinate options used' ) 
    270       IF( lk_zco ) THEN 
    271           IF(lwp) WRITE(numout,*) '          z-coordinate with reduced incore memory requirement' 
    272           IF( ln_zps .OR. ln_sco )   CALL ctl_stop( ' reduced memory with zps or sco option is impossible' ) 
    273       ENDIF 
    274270 
    275271      IF( nprint == 1 .AND. lwp )   THEN 
  • branches/DEV_r2106_LOCEAN2010/NEMO/OFF_SRC/domrea.F90

    r2053 r2240  
    8888      REAL(wp), DIMENSION(jpi,jpj) :: & 
    8989         zprt 
    90 #if ! defined key_zco 
    9190      INTEGER :: ik 
    92 #endif 
    9391      !!---------------------------------------------------------------------- 
    9492 
     
    185183            ENDDO 
    186184         ENDDO 
    187  
    188 #if ! defined key_zco 
    189185 
    190186         IF( ln_sco ) THEN                                         ! s-coordinate 
     
    255251 
    256252         ENDIF 
    257 # endif 
     253 
    258254         IF( ln_zco ) THEN 
    259255           ! Vertical coordinates and scales factors 
  • branches/DEV_r2106_LOCEAN2010/NEMO/OFF_SRC/domrea_dimg.h90

    r2053 r2240  
    262262          mbathy=zprt*tmask(:,:,1)+1 
    263263 
    264 #if ! defined key_zco 
    265264          IF( ln_sco ) THEN                                         ! s-coordinate 
    266265             ! 
     
    394393             READ(inum4,REC=irec) e3w_0(:) 
    395394          ENDIF 
    396 #else 
    397           ! 
    398           ! gdep 
    399           irec =  irecv(inum4) + (narea - 1 ) 
    400           READ(inum4,REC=irec) gdept_0(:) 
    401           irecv(inum4) = irecv(inum4) + jpnij  
    402            
    403           irec =  irecv(inum4) + (narea - 1 ) 
    404           READ(inum4,REC=irec) gdepw_0(:) 
    405           irecv(inum4) = irecv(inum4) + jpnij  
    406           ! 
    407           ! e3 
    408           irec =  irecv(inum4) + (narea - 1 ) 
    409           READ(inum4,REC=irec) e3t_0(:) 
    410           irecv(inum4) = irecv(inum4) + jpnij  
    411            
    412           irec =  irecv(inum4) + (narea - 1 ) 
    413           READ(inum4,REC=irec) e3w_0(:) 
    414           irecv(inum4) = irecv(inum4) + jpnij  
    415          ! 
    416 #endif 
    417395         !                                     ! ============================ 
    418396         !                                     !        close the files 
  • branches/DEV_r2106_LOCEAN2010/NEMO/OFF_SRC/dtadyn.F90

    r2082 r2240  
    568568         DO jj = 2, jpjm1 
    569569            DO ji = fs_2, fs_jpim1   ! vector opt. 
    570 #if defined key_zco 
    571                zu  = pu(ji  ,jj  ,jk) * umask(ji  ,jj  ,jk) * e2u(ji  ,jj  ) 
    572                zu1 = pu(ji-1,jj  ,jk) * umask(ji-1,jj  ,jk) * e2u(ji-1,jj  ) 
    573                zv  = pv(ji  ,jj  ,jk) * vmask(ji  ,jj  ,jk) * e1v(ji  ,jj  ) 
    574                zv1 = pv(ji  ,jj-1,jk) * vmask(ji  ,jj-1,jk) * e1v(ji  ,jj-1) 
    575                zet = 1. / ( e1t(ji,jj) * e2t(ji,jj) ) 
    576 #else 
    577570               zu  = pu(ji  ,jj  ,jk) * umask(ji  ,jj  ,jk) * e2u(ji  ,jj  ) * fse3u(ji  ,jj  ,jk) 
    578571               zu1 = pu(ji-1,jj  ,jk) * umask(ji-1,jj  ,jk) * e2u(ji-1,jj  ) * fse3u(ji-1,jj  ,jk) 
     
    580573               zv1 = pv(ji  ,jj-1,jk) * vmask(ji  ,jj-1,jk) * e1v(ji  ,jj-1) * fse3v(ji  ,jj-1,jk) 
    581574               zet = 1. / ( e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) ) 
    582 #endif 
    583575               phdiv(ji,jj,jk) = ( zu - zu1 + zv - zv1 ) * zet  
    584576            END DO 
  • branches/DEV_r2106_LOCEAN2010/NEMO/OPA_SRC/DOM/dom_oce.F90

    r2239 r2240  
    120120   LOGICAL, PUBLIC ::   ln_zps     =  .FALSE.   !: z-coordinate - partial step 
    121121   LOGICAL, PUBLIC ::   ln_sco     =  .FALSE.   !: s-coordinate or hybrid z-s coordinate 
    122 #if defined key_zco 
    123    LOGICAL, PUBLIC, PARAMETER ::   lk_zco = .TRUE.    !: z-coordinate flag (1D arrays) 
    124 #else 
    125    LOGICAL, PUBLIC, PARAMETER ::   lk_zco = .FALSE.   !: z-coordinate flag (3D arrays) 
    126122 
    127123   !! All coordinates 
     
    133129   REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) ::   e3vw            !: analytical vertical scale factors at  VW-- 
    134130   REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) ::   e3w   , e3uw    !:                                        W--UW  points (m) 
    135 #endif 
    136131#if defined key_vvl 
    137132   LOGICAL, PUBLIC, PARAMETER ::   lk_vvl = .TRUE.    !: variable grid flag 
  • branches/DEV_r2106_LOCEAN2010/NEMO/OPA_SRC/DOM/domvvl.F90

    r2236 r2240  
    6262      ENDIF 
    6363 
    64       IF( lk_zco )   CALL ctl_stop( 'dom_vvl : key_zco is incompatible with variable volume option key_vvl') 
    6564 
    6665      fsdept(:,:,:) = gdept (:,:,:) 
  • branches/DEV_r2106_LOCEAN2010/NEMO/OPA_SRC/DOM/domwri.F90

    r2004 r2240  
    168168      CALL iom_rstput( 0, 0, inum4, 'mbathy', zprt, ktype = jp_i2 ) 
    169169             
    170 #if ! defined key_zco 
    171170      IF( ln_sco ) THEN                                         ! s-coordinate 
    172171         CALL iom_rstput( 0, 0, inum4, 'hbatt', hbatt )         !    ! depth 
     
    235234      ENDIF 
    236235       
    237 #endif 
    238236       
    239237      IF( ln_zco ) THEN 
  • branches/DEV_r2106_LOCEAN2010/NEMO/OPA_SRC/DOM/domzgr.F90

    r2236 r2240  
    7474      !!              - vertical coordinate (gdep., e3.) depending on the  
    7575      !!                coordinate chosen : 
    76       !!                   ln_zco=T   z-coordinate   (forced if lk_zco) 
     76      !!                   ln_zco=T   z-coordinate    
    7777      !!                   ln_zps=T   z-coordinate with partial steps 
    7878      !!                   ln_zco=T   s-coordinate  
     
    103103      IF( ln_sco ) ioptio = ioptio + 1 
    104104      IF ( ioptio /= 1 )   CALL ctl_stop( ' none or several vertical coordinate options used' ) 
    105       IF( lk_zco ) THEN 
    106           IF(lwp) WRITE(numout,*) '          z-coordinate with reduced incore memory requirement' 
    107           IF( ln_zps .OR. ln_sco )   CALL ctl_stop( ' reduced memory with zps or sco option is impossible' ) 
    108       ENDIF 
    109105 
    110106      ! Build the vertical coordinate system 
     
    679675      !! ** Purpose :   define the z-coordinate system 
    680676      !! 
    681       !! ** Method  :   set 3D coord. arrays to reference 1D array if lk_zco=T 
     677      !! ** Method  :   set 3D coord. arrays to reference 1D array  
    682678      !!---------------------------------------------------------------------- 
    683679      INTEGER  ::   jk 
    684680      !!---------------------------------------------------------------------- 
    685681      ! 
    686       IF( .NOT.lk_zco ) THEN 
    687          DO jk = 1, jpk 
    688             fsdept(:,:,jk) = gdept_0(jk) 
    689             fsdepw(:,:,jk) = gdepw_0(jk) 
    690             fsde3w(:,:,jk) = gdepw_0(jk) 
    691             fse3t (:,:,jk) = e3t_0(jk) 
    692             fse3u (:,:,jk) = e3t_0(jk) 
    693             fse3v (:,:,jk) = e3t_0(jk) 
    694             fse3f (:,:,jk) = e3t_0(jk) 
    695             fse3w (:,:,jk) = e3w_0(jk) 
    696             fse3uw(:,:,jk) = e3w_0(jk) 
    697             fse3vw(:,:,jk) = e3w_0(jk) 
    698          END DO 
    699       ENDIF 
     682      DO jk = 1, jpk 
     683         fsdept(:,:,jk) = gdept_0(jk) 
     684         fsdepw(:,:,jk) = gdepw_0(jk) 
     685         fsde3w(:,:,jk) = gdepw_0(jk) 
     686         fse3t (:,:,jk) = e3t_0(jk) 
     687         fse3u (:,:,jk) = e3t_0(jk) 
     688         fse3v (:,:,jk) = e3t_0(jk) 
     689         fse3f (:,:,jk) = e3t_0(jk) 
     690         fse3w (:,:,jk) = e3w_0(jk) 
     691         fse3uw(:,:,jk) = e3w_0(jk) 
     692         fse3vw(:,:,jk) = e3w_0(jk) 
     693      END DO 
    700694      ! 
    701695   END SUBROUTINE zgr_zco 
    702696 
    703 #if defined key_zco 
    704    !!---------------------------------------------------------------------- 
    705    !!   'key_zco' :                                              "pure" zco (gdep & e3 are 1D arrays) 
    706    !!---------------------------------------------------------------------- 
    707    SUBROUTINE zgr_zps      ! Empty routine 
    708    END SUBROUTINE zgr_zps 
    709    SUBROUTINE zgr_sco      ! Empty routine 
    710    END SUBROUTINE zgr_sco 
    711  
    712 #else 
    713697   !!---------------------------------------------------------------------- 
    714698   !!   Default option :                      zco, zps and/or sco available (gedp & e3 are 3D arrays) 
     
    15581542   END SUBROUTINE zgr_sco 
    15591543 
    1560 #endif 
    15611544 
    15621545   !!====================================================================== 
  • branches/DEV_r2106_LOCEAN2010/NEMO/OPA_SRC/DOM/domzgr_substitute.h90

    r2236 r2240  
    88   !!            3.1  !  2009-02  (G. Madec, M. Leclair)  pure z* coordinate 
    99   !!---------------------------------------------------------------------- 
    10 #if defined key_zco 
    11 ! reference for pure z-coordinate (1D - no i,j and time dependency) 
    12 #   define  fsdept_0(i,j,k)  gdept_0(k) 
    13 #   define  fsdepw_0(i,j,k)  gdepw_0(k) 
    14 #   define  fsde3w_0(i,j,k)  gdepw_0(k) 
    15 #   define  fse3t_0(i,j,k)   e3t_0(k) 
    16 #   define  fse3u_0(i,j,k)   e3t_0(k) 
    17 #   define  fse3v_0(i,j,k)   e3t_0(k) 
    18 #   define  fse3f_0(i,j,k)   e3t_0(k) 
    19 #   define  fse3w_0(i,j,k)   e3w_0(k) 
    20 #   define  fse3uw_0(i,j,k)  e3w_0(k) 
    21 #   define  fse3vw_0(i,j,k)  e3w_0(k) 
    22 #else 
    2310! reference for s- or zps-coordinate (3D no time dependency) 
    2411#   define  fsdept_0(i,j,k)  gdept(i,j,k) 
     
    3219#   define  fse3uw_0(i,j,k)  e3uw(i,j,k) 
    3320#   define  fse3vw_0(i,j,k)  e3vw(i,j,k) 
    34 #endif 
    3521#if defined key_vvl 
    3622! s* or z*-coordinate (3D + time dependency) + use of additional now arrays (..._1) 
  • branches/DEV_r2106_LOCEAN2010/NEMO/OPA_SRC/DYN/divcur.F90

    r2236 r2240  
    5454      !!         - compute the now divergence given by : 
    5555      !!         hdivn = 1/(e1t*e2t*e3t) ( di[e2u*e3u un] + dj[e1v*e3v vn] ) 
    56       !!      Note: if lk_zco=T, e3u=e3v=e3t, they are simplified in the 
    5756      !!      above expression 
    5857      !!         - apply lateral boundary conditions on hdivn  
     
    112111         DO jj = 2, jpjm1 
    113112            DO ji = fs_2, fs_jpim1   ! vector opt. 
    114 #if defined key_zco 
    115                hdivn(ji,jj,jk) = (  e2u(ji,jj) * un(ji,jj,jk) - e2u(ji-1,jj  ) * un(ji-1,jj  ,jk)      & 
    116                   &               + e1v(ji,jj) * vn(ji,jj,jk) - e1v(ji  ,jj-1) * vn(ji  ,jj-1,jk)  )   & 
    117                   &            / ( e1t(ji,jj) * e2t(ji,jj) ) 
    118 #else 
    119113               hdivn(ji,jj,jk) =   & 
    120114                  (  e2u(ji,jj)*fse3u(ji,jj,jk) * un(ji,jj,jk) - e2u(ji-1,jj  )*fse3u(ji-1,jj  ,jk) * un(ji-1,jj  ,jk)       & 
    121115                   + e1v(ji,jj)*fse3v(ji,jj,jk) * vn(ji,jj,jk) - e1v(ji  ,jj-1)*fse3v(ji  ,jj-1,jk) * vn(ji  ,jj-1,jk)  )    & 
    122116                  / ( e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) ) 
    123 #endif 
    124117            END DO 
    125118         END DO 
     
    266259      !!      - compute the now divergence given by : 
    267260      !!         hdivn = 1/(e1t*e2t*e3t) ( di[e2u*e3u un] + dj[e1v*e3v vn] ) 
    268       !!      Note: if lk_zco=T, e3u=e3v=e3t, they are simplified in the  
    269261      !!      above expression 
    270262      !!      - apply lateral boundary conditions on hdivn  
     
    319311         DO jj = 2, jpjm1 
    320312            DO ji = fs_2, fs_jpim1   ! vector opt. 
    321 #if defined key_zco 
    322                hdivn(ji,jj,jk) = (  e2u(ji,jj) * un(ji,jj,jk) - e2u(ji-1,jj  ) * un(ji-1,jj  ,jk)      & 
    323                   &               + e1v(ji,jj) * vn(ji,jj,jk) - e1v(ji  ,jj-1) * vn(ji  ,jj-1,jk)  )   &  
    324                   / ( e1t(ji,jj) * e2t(ji,jj) ) 
    325 #else 
    326313               hdivn(ji,jj,jk) =   & 
    327314                  (  e2u(ji,jj)*fse3u(ji,jj,jk) * un(ji,jj,jk) - e2u(ji-1,jj  )*fse3u(ji-1,jj  ,jk) * un(ji-1,jj  ,jk)       & 
    328315                   + e1v(ji,jj)*fse3v(ji,jj,jk) * vn(ji,jj,jk) - e1v(ji  ,jj-1)*fse3v(ji  ,jj-1,jk) * vn(ji  ,jj-1,jk)  )    & 
    329316                  / ( e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) ) 
    330 #endif 
    331317            END DO   
    332318         END DO   
  • branches/DEV_r2106_LOCEAN2010/NEMO/OPA_SRC/DYN/dynldf_bilap.F90

    r1152 r2240  
    162162               zuf(ji,jj,jk) = fmask(ji,jj,jk) * (  zcv(ji+1,jj  ) - zcv(ji,jj)      & 
    163163                  &                            - zcu(ji  ,jj+1) + zcu(ji,jj)  )   & 
    164 #if defined key_zco 
    165                   &                         / ( e1f(ji,jj)*e2f(ji,jj) ) 
    166 #else 
    167164                  &       * fse3f(ji,jj,jk) / ( e1f(ji,jj)*e2f(ji,jj) ) 
    168 #endif 
    169165            END DO   
    170166         END DO   
     
    173169         DO jj = 1, jpjm1 
    174170            DO ji = 1, fs_jpim1   ! vector opt. 
    175 #if defined key_zco 
    176                zlu(ji,jj,jk) = e2u(ji,jj) * zlu(ji,jj,jk) 
    177                zlv(ji,jj,jk) = e1v(ji,jj) * zlv(ji,jj,jk) 
    178 #else 
    179171               zlu(ji,jj,jk) = e2u(ji,jj) * fse3u(ji,jj,jk) * zlu(ji,jj,jk) 
    180172               zlv(ji,jj,jk) = e1v(ji,jj) * fse3v(ji,jj,jk) * zlv(ji,jj,jk) 
    181 #endif 
    182173            END DO 
    183174         END DO 
     
    186177         DO jj = 2, jpj 
    187178            DO ji = fs_2, jpi   ! vector opt. 
    188 #if defined key_zco 
    189                zbt = e1t(ji,jj) * e2t(ji,jj) 
    190 #else 
    191179               zbt = e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) 
    192 #endif 
    193180               zut(ji,jj,jk) = (  zlu(ji,jj,jk) - zlu(ji-1,jj  ,jk)   & 
    194181                  &             + zlv(ji,jj,jk) - zlv(ji  ,jj-1,jk) ) / zbt 
     
    210197         DO jj = 2, jpjm1 
    211198            DO ji = fs_2, fs_jpim1   ! vector opt. 
    212 #if defined key_zco 
    213                ze2u = e2u(ji,jj) 
    214                ze2v = e1v(ji,jj) 
    215 #else 
    216199               ze2u = e2u(ji,jj) * fse3u(ji,jj,jk) 
    217200               ze2v = e1v(ji,jj) * fse3v(ji,jj,jk) 
    218 #endif 
    219201               ! horizontal biharmonic diffusive trends 
    220202               zua = - ( zuf(ji  ,jj,jk) - zuf(ji,jj-1,jk) ) / ze2u   & 
  • branches/DEV_r2106_LOCEAN2010/NEMO/OPA_SRC/DYN/dynldf_lap.F90

    r1954 r2240  
    5050      !!         difu = 1/e1u di[ahmt hdivb] - 1/(e2u*e3u) dj-1[e3f ahmf rotb] 
    5151      !!         difv = 1/e2v dj[ahmt hdivb] + 1/(e1v*e3v) di-1[e3f ahmf rotb] 
    52       !!      If lk_zco=T, e3f=e3u=e3v, the vertical scale factor are simplified 
    5352      !!      in the rotational part of the diffusion. 
    5453      !!      Add this before trend to the general trend (ua,va): 
     
    8786         DO jj = 2, jpjm1 
    8887            DO ji = fs_2, fs_jpim1   ! vector opt. 
    89 #if defined key_zco 
    90                ! horizontal diffusive trends 
    91                ze2u = rotb (ji,jj,jk)*fsahmf(ji,jj,jk) 
    92                ze1v = hdivb(ji,jj,jk)*fsahmt(ji,jj,jk) 
    93                zua = - ( ze2u - rotb (ji,jj-1,jk)*fsahmf(ji,jj-1,jk)                   ) / e2u(ji,jj)   & 
    94                      + ( hdivb(ji+1,jj,jk)*fsahmt(ji+1,jj,jk) - ze1v                   ) / e1u(ji,jj) 
    95  
    96                zva = + ( ze2u - rotb (ji-1,jj,jk)*fsahmf(ji-1,jj,jk)                   ) / e1v(ji,jj)   & 
    97                      + ( hdivb(ji,jj+1,jk)*fsahmt(ji,jj+1,jk) - ze1v                   ) / e2v(ji,jj) 
    98 #else 
    9988               ze2u = rotb (ji,jj,jk)*fsahmf(ji,jj,jk)*fse3f(ji,jj,jk) 
    10089               ze1v = hdivb(ji,jj,jk)*fsahmt(ji,jj,jk) 
     
    10594               zva = + ( ze2u - rotb (ji-1,jj,jk)*fsahmf(ji-1,jj,jk)*fse3f(ji-1,jj,jk) ) / ( e1v(ji,jj) * fse3v(ji,jj,jk) )   & 
    10695                     + ( hdivb(ji,jj+1,jk)*fsahmt(ji,jj+1,jk) - ze1v                   ) / e2v(ji,jj) 
    107 #endif 
    10896 
    10997               ! add it to the general momentum trends 
  • branches/DEV_r2106_LOCEAN2010/NEMO/OPA_SRC/LDF/ldfdyn_c3d.h90

    r2236 r2240  
    148148            END DO 
    149149         ELSE                            ! partial steps or s-ccordinate 
    150 # if defined key_zco 
    151             zc = gdept_0(jpkm1) 
    152 # else 
    153150            zc = MAXVAL( fsdept(:,:,jpkm1) ) 
    154 # endif 
    155151            IF( lk_mpp )   CALL mpp_max( zc )   ! max over the global domain 
    156152 
  • branches/DEV_r2106_LOCEAN2010/NEMO/OPA_SRC/TRA/traadv_muscl.F90

    r2236 r2240  
    180180         !                                 ! "Poleward" heat and salt transports (contribution of upstream fluxes) 
    181181         IF( cdtype == 'TRA' .AND. ln_diaptr .AND. ( MOD( kt, nf_ptr ) == 0 ) ) THEN   
    182             IF( lk_zco ) THEN 
    183                DO jk = 1, jpkm1 
    184                   DO jj = 2, jpjm1 
    185                      DO ji = fs_2, fs_jpim1   ! vector opt. 
    186                        zwy(ji,jj,jk) = zwy(ji,jj,jk) * fse3v(ji,jj,jk)                  
    187                      END DO 
    188                   END DO 
    189                END DO 
    190             ENDIF 
    191182            IF( jn == jp_tem )  pht_adv(:) = ptr_vj( zwy(:,:,:) ) 
    192183            IF( jn == jp_sal )  pst_adv(:) = ptr_vj( zwy(:,:,:) ) 
  • branches/DEV_r2106_LOCEAN2010/NEMO/OPA_SRC/TRA/traadv_muscl2.F90

    r2236 r2240  
    202202         !                                 ! "Poleward" heat and salt transports (contribution of upstream fluxes) 
    203203         IF( cdtype == 'TRA' .AND. ln_diaptr .AND. ( MOD( kt, nf_ptr ) == 0 ) ) THEN 
    204             IF( lk_zco ) THEN 
    205                DO jk = 1, jpkm1 
    206                   DO jj = 2, jpjm1 
    207                      DO ji = fs_2, fs_jpim1   ! vector opt. 
    208                        zwy(ji,jj,jk) = zwy(ji,jj,jk) * fse3v(ji,jj,jk) 
    209                      END DO 
    210                   END DO 
    211                END DO 
    212             ENDIF 
    213204            IF( jn == jp_tem )  pht_adv(:) = ptr_vj( zwy(:,:,:) ) 
    214205            IF( jn == jp_sal )  pst_adv(:) = ptr_vj( zwy(:,:,:) ) 
  • branches/DEV_r2106_LOCEAN2010/NEMO/OPA_SRC/TRA/traadv_ubs.F90

    r2236 r2240  
    184184         !                                 ! "Poleward" heat and salt transports (contribution of upstream fluxes) 
    185185         IF( cdtype == 'TRA' .AND. ln_diaptr .AND. ( MOD( kt, nf_ptr ) == 0 ) ) THEN   
    186             IF( lk_zco ) THEN 
    187                DO jk = 1, jpkm1 
    188                   DO jj = 2, jpjm1 
    189                      DO ji = fs_2, fs_jpim1   ! vector opt. 
    190                        zwy(ji,jj,jk) = zwy(ji,jj,jk) * fse3v(ji,jj,jk)                  
    191                      END DO 
    192                   END DO 
    193                END DO 
    194             ENDIF 
    195186            IF( jn == jp_tem )  pht_adv(:) = ptr_vj( zwy(:,:,:) ) 
    196187            IF( jn == jp_sal )  pst_adv(:) = ptr_vj( zwy(:,:,:) ) 
  • branches/DEV_r2106_LOCEAN2010/NEMO/OPA_SRC/TRA/traldf_lap.F90

    r2104 r2240  
    5757      !!          difft = 1/(e1t*e2t*e3t) {  di-1[ aht e2u*e3u/e1u di(tb) ] 
    5858      !!                                   + dj-1[ aht e1v*e3v/e2v dj(tb) ] } 
    59       !!     Note: key_zco defined, the e3t=e3u=e3v, the trend becomes:   
    60       !!          difft = 1/(e1t*e2t) {  di-1[ aht e2u/e1u di(tb) ] 
    61       !!                               + dj-1[ aht e1v/e2v dj(tb) ] } 
    6259      !!      Add this trend to the general tracer trend pta : 
    6360      !!          pta = pta + difft 
  • branches/DEV_r2106_LOCEAN2010/NEMO/OPA_SRC/TRA/tranxt.F90

    r2236 r2240  
    143143      ! Leap-Frog + Asselin filter time stepping 
    144144      IF( lk_vvl )   THEN   ;   CALL tra_nxt_vvl( kt, 'TRA', tsb, tsn, tsa, jpts )  ! variable volume level (vvl)      
    145       ELSE                  ;   CALL tra_nxt_fix( kt,       tsb, tsn, tsa, jpts )  ! fixed    volume level  
     145      ELSE                  ;   CALL tra_nxt_fix( kt, 'TRA', tsb, tsn, tsa, jpts )  ! fixed    volume level  
    146146      ENDIF 
    147147 
     
    172172 
    173173 
    174    SUBROUTINE tra_nxt_fix( kt, ptb, ptn, pta, kjpt ) 
     174   SUBROUTINE tra_nxt_fix( kt, cdtype, ptb, ptn, pta, kjpt ) 
    175175      !!---------------------------------------------------------------------- 
    176176      !!                   ***  ROUTINE tra_nxt_fix  *** 
     
    195195      !!              - (ta,sa) time averaged (t,s)   (ln_dynhpg_imp = T) 
    196196      !!---------------------------------------------------------------------- 
    197       INTEGER , INTENT(in   )                               ::  kt       ! ocean time-step index 
    198       INTEGER , INTENT(in   )                               ::  kjpt     ! number of tracers 
    199       REAL(wp), INTENT(inout), DIMENSION(jpi,jpj,jpk,kjpt)  ::  ptb      ! before tracer fields 
    200       REAL(wp), INTENT(inout), DIMENSION(jpi,jpj,jpk,kjpt)  ::  ptn      ! now tracer fields 
    201       REAL(wp), INTENT(inout), DIMENSION(jpi,jpj,jpk,kjpt)  ::  pta      ! tracer trend 
    202       !! 
     197      INTEGER         , INTENT(in   )                               ::  kt       ! ocean time-step index 
     198      CHARACTER(len=3), INTENT(in   )                               ::  cdtype   ! =TRA or TRC (tracer indicator) 
     199      INTEGER         , INTENT(in   )                               ::  kjpt     ! number of tracers 
     200      REAL(wp)        , INTENT(inout), DIMENSION(jpi,jpj,jpk,kjpt)  ::  ptb      ! before tracer fields 
     201      REAL(wp)        , INTENT(inout), DIMENSION(jpi,jpj,jpk,kjpt)  ::  ptn      ! now tracer fields 
     202      REAL(wp)        , INTENT(inout), DIMENSION(jpi,jpj,jpk,kjpt)  ::  pta      ! tracer trend 
    203203      INTEGER  :: ji, jj, jk, jn   ! dummy loop indices 
    204204      REAL(wp) :: ztd, ztm         ! temporary scalars 
     
    222222      ELSE                                           ! general case (Leapfrog + Asselin filter 
    223223         ! 
    224          !                                           ! ----------------------- ! 
    225          IF( ln_dynhpg_imp ) THEN                    ! semi-implicite hpg case ! 
    226             !                                        ! ----------------------- ! 
     224         !                                                     ! ----------------------- ! 
     225         IF( ln_dynhpg_imp .AND. cdtype == 'TRA' ) THEN        ! semi-implicite hpg case ! 
     226            !                                                  ! ----------------------- ! 
    227227            DO jn = 1, kjpt 
    228228               DO jk = 1, jpkm1 
     
    317317      ELSE                                           ! general case (Leapfrog + Asselin filter) 
    318318         ! 
    319          !                                           ! ----------------------- ! 
    320          IF( ln_dynhpg_imp ) THEN                    ! semi-implicite hpg case ! 
    321             !                                        ! ----------------------- ! 
     319         !                                                     ! ----------------------- ! 
     320         IF( ln_dynhpg_imp .AND. cdtype == 'TRA' ) THEN        ! semi-implicite hpg case ! 
     321            !                                                  ! ----------------------- ! 
    322322            DO jn = 1, kjpt                           
    323323               DO jk = 1, jpkm1 
  • branches/DEV_r2106_LOCEAN2010/NEMO/TOP_SRC/TRP/trcnxt.F90

    r2237 r2240  
    123123      ! Leap-Frog + Asselin filter time stepping 
    124124      IF( lk_vvl ) THEN   ;   CALL tra_nxt_vvl( kt, 'TRC', trb, trn, tra, jptra )      ! variable volume level (vvl)  
    125       ELSE                ;   CALL tra_nxt_fix( kt,       trb, trn, tra, jptra )      ! fixed    volume level  
     125      ELSE                ;   CALL tra_nxt_fix( kt, 'TRC', trb, trn, tra, jptra )      ! fixed    volume level  
    126126      ENDIF 
    127127 
Note: See TracChangeset for help on using the changeset viewer.