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

Changeset 2144


Ignore:
Timestamp:
2010-10-04T15:21:41+02:00 (14 years ago)
Author:
cetlod
Message:

bug correction in trabbl.F90

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/OPA_SRC/TRA/trabbl.F90

    r2122 r2144  
    138138 
    139139 
    140    SUBROUTINE tra_bbl_dif( ptrab, ptraa, kjpt ) 
     140   SUBROUTINE tra_bbl_dif( ptb, pta, kjpt ) 
    141141      !!---------------------------------------------------------------------- 
    142142      !!                  ***  ROUTINE tra_bbl_dif  *** 
     
    155155      !!      convection is satified) 
    156156      !! 
    157       !! ** Action  :   ptraa   increased by the bbl diffusive trend 
     157      !! ** Action  :   pta   increased by the bbl diffusive trend 
    158158      !! 
    159159      !! References : Beckmann, A., and R. Doscher, 1997, J. Phys.Oceanogr., 581-591. 
     
    161161      !!----------------------------------------------------------------------   
    162162      INTEGER                              , INTENT(in   ) ::   kjpt    ! number of tracers 
    163       REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(in   ) ::   ptrab   ! before and now tracer fields 
    164       REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(inout) ::   ptraa   ! tracer trend  
     163      REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(in   ) ::   ptb   ! before and now tracer fields 
     164      REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(inout) ::   pta   ! tracer trend  
    165165      !! 
    166166      INTEGER  ::   ji, jj, jn   ! dummy loop indices 
    167167      INTEGER  ::   ik           ! local integers 
    168168      REAL(wp) ::   zbtr         ! local scalars 
     169      REAL(wp), DIMENSION(jpi,jpj) ::   zptb   ! temporary array  
    169170      !!---------------------------------------------------------------------- 
    170171      ! 
     
    172173      DO jn = 1, kjpt                                     ! tracer loop 
    173174         !                                                ! =========== 
     175#  if defined key_vectopt_loop 
     176         DO jj = 1, 1   ! vector opt. (forced unrolling) 
     177            DO ji = 1, jpij 
     178#else 
     179         DO jj = 1, jpj 
     180            DO ji = 1, jpi 
     181#endif 
     182               ik = mbkt(ji,jj)                        ! bottom T-level index 
     183               zptb(ji,jj) = ptb(ji,jj,ik,jn)              ! bottom before T and S 
     184            END DO 
     185         END DO 
     186         !                                                ! Compute the trend 
    174187#  if defined key_vectopt_loop 
    175188         DO jj = 1, 1   ! vector opt. (forced unrolling) 
     
    179192            DO ji = 2, jpim1 
    180193#  endif 
    181                ik = mbkt(ji,jj)                            ! bottom T-level index 
    182                zbtr = e1e2t_r(ji,jj)  / fse3t(ji,jj,ik) 
    183                ptraa(ji,jj,ik,jn) = ptraa(ji,jj,ik,jn)                                                         & 
    184                   &               + (   ahu_bbl(ji,jj) * ( ptrab(ji+1,jj  ,ik,jn) - ptrab(ji  ,jj  ,ik,jn) )   & 
    185                   &                   - ahu_bbl(ji,jj) * ( ptrab(ji  ,jj  ,ik,jn) - ptrab(ji-1,jj  ,ik,jn) )   & 
    186                   &                   + ahv_bbl(ji,jj) * ( ptrab(ji  ,jj+1,ik,jn) - ptrab(ji  ,jj  ,ik,jn) )   & 
    187                   &                   - ahv_bbl(ji,jj) * ( ptrab(ji  ,jj  ,ik,jn) - ptrab(ji  ,jj-1,ik,jn) )   ) * zbtr 
     194                ik = mbkt(ji,jj)                            ! bottom T-level index 
     195                zbtr = e1e2t_r(ji,jj)  / fse3t(ji,jj,ik) 
     196                pta(ji,jj,ik,jn) = pta(ji,jj,ik,jn)                                                         & 
     197                  &               + (   ahu_bbl(ji  ,jj  ) * ( zptb(ji+1,jj  ) - zptb(ji  ,jj  ) )   & 
     198                  &                   - ahu_bbl(ji-1,jj  ) * ( zptb(ji  ,jj  ) - zptb(ji-1,jj  ) )   & 
     199                  &                   + ahv_bbl(ji  ,jj  ) * ( zptb(ji  ,jj+1) - zptb(ji  ,jj  ) )   & 
     200                  &                   - ahv_bbl(ji  ,jj-1) * ( zptb(ji  ,jj  ) - zptb(ji  ,jj-1) )   ) * zbtr 
    188201            END DO 
    189202         END DO 
     
    194207    
    195208 
    196    SUBROUTINE tra_bbl_adv( ptrab, ptraa, kjpt ) 
     209   SUBROUTINE tra_bbl_adv( ptb, pta, kjpt ) 
    197210      !!---------------------------------------------------------------------- 
    198211      !!                  ***  ROUTINE trc_bbl  *** 
     
    212225      !!----------------------------------------------------------------------   
    213226      INTEGER                              , INTENT(in   ) ::   kjpt    ! number of tracers 
    214       REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(in   ) ::   ptrab   ! before and now tracer fields 
    215       REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(inout) ::   ptraa   ! tracer trend  
     227      REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(in   ) ::   ptb   ! before and now tracer fields 
     228      REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(inout) ::   pta   ! tracer trend  
    216229      !! 
    217230      INTEGER  ::   ji, jj, jk, jn           ! dummy loop indices 
     
    240253                  !                                               ! up  -slope T-point (shelf bottom point) 
    241254                  zbtr = e1e2t_r(iis,jj) / fse3t(iis,jj,ikus) 
    242                   ztra = zu_bbl * ( ptrab(iid,jj,ikus,jn) - ptrab(iis,jj,ikus,jn) ) * zbtr 
    243                   ptraa(iis,jj,ikus,jn) = ptraa(iis,jj,ikus,jn) + ztra 
     255                  ztra = zu_bbl * ( ptb(iid,jj,ikus,jn) - ptb(iis,jj,ikus,jn) ) * zbtr 
     256                  pta(iis,jj,ikus,jn) = pta(iis,jj,ikus,jn) + ztra 
    244257                  !                    
    245258                  DO jk = ikus, ikud-1                            ! down-slope upper to down T-point (deep column) 
    246259                     zbtr = e1e2t_r(iid,jj) / fse3t(iid,jj,jk) 
    247                      ztra = zu_bbl * ( ptrab(iid,jj,jk+1,jn) - ptrab(iid,jj,jk,jn) ) * zbtr 
    248                      ptraa(iid,jj,jk,jn) = ptraa(iid,jj,jk,jn) + ztra 
     260                     ztra = zu_bbl * ( ptb(iid,jj,jk+1,jn) - ptb(iid,jj,jk,jn) ) * zbtr 
     261                     pta(iid,jj,jk,jn) = pta(iid,jj,jk,jn) + ztra 
    249262                  END DO 
    250263                  !  
    251264                  zbtr = e1e2t_r(iid,jj) / fse3t(iid,jj,ikud) 
    252                   ztra = zu_bbl * ( ptrab(iis,jj,ikus,jn) - ptrab(iid,jj,ikud,jn) ) * zbtr 
    253                   ptraa(iid,jj,ikud,jn) = ptraa(iid,jj,ikud,jn) + ztra 
     265                  ztra = zu_bbl * ( ptb(iis,jj,ikus,jn) - ptb(iid,jj,ikud,jn) ) * zbtr 
     266                  pta(iid,jj,ikud,jn) = pta(iid,jj,ikud,jn) + ztra 
    254267               ENDIF 
    255268               ! 
     
    262275                  ! up  -slope T-point (shelf bottom point) 
    263276                  zbtr = e1e2t_r(ji,ijs) / fse3t(ji,ijs,ikvs) 
    264                   ztra = zv_bbl * ( ptrab(ji,ijd,ikvs,jn) - ptrab(ji,ijs,ikvs,jn) ) * zbtr 
    265                   ptraa(ji,ijs,ikvs,jn) = ptraa(ji,ijs,ikvs,jn) + ztra 
     277                  ztra = zv_bbl * ( ptb(ji,ijd,ikvs,jn) - ptb(ji,ijs,ikvs,jn) ) * zbtr 
     278                  pta(ji,ijs,ikvs,jn) = pta(ji,ijs,ikvs,jn) + ztra 
    266279                  !                    
    267280                  DO jk = ikvs, ikvd-1                            ! down-slope upper to down T-point (deep column) 
    268281                     zbtr = e1e2t_r(ji,ijd) / fse3t(ji,ijd,jk) 
    269                      ztra = zv_bbl * ( ptrab(ji,ijd,jk+1,jn) - ptrab(ji,ijd,jk,jn) ) * zbtr 
    270                      ptraa(ji,ijd,jk,jn) = ptraa(ji,ijd,jk,jn)  + ztra 
     282                     ztra = zv_bbl * ( ptb(ji,ijd,jk+1,jn) - ptb(ji,ijd,jk,jn) ) * zbtr 
     283                     pta(ji,ijd,jk,jn) = pta(ji,ijd,jk,jn)  + ztra 
    271284                  END DO 
    272285                  !                                               ! down-slope T-point (deep bottom point) 
    273286                  zbtr = e1e2t_r(ji,ijd) / fse3t(ji,ijd,ikvd) 
    274                   ztra = zv_bbl * ( ptrab(ji,ijs,ikvs,jn) - ptrab(ji,ijd,ikvd,jn) ) * zbtr 
    275                   ptraa(ji,ijd,ikvd,jn) = ptraa(ji,ijd,ikvd,jn) + ztra 
     287                  ztra = zv_bbl * ( ptb(ji,ijs,ikvs,jn) - ptb(ji,ijd,ikvd,jn) ) * zbtr 
     288                  pta(ji,ijd,ikvd,jn) = pta(ji,ijd,ikvd,jn) + ztra 
    276289               ENDIF 
    277290            END DO 
Note: See TracChangeset for help on using the changeset viewer.