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 6060 for branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/TRA/trabbl.F90 – NEMO

Ignore:
Timestamp:
2015-12-16T10:25:22+01:00 (8 years ago)
Author:
timgraham
Message:

Merged dev_r5836_noc2_VVL_BY_DEFAULT into branch

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/TRA/trabbl.F90

    r5836 r6060  
    7070 
    7171   !! * Substitutions 
    72 #  include "domzgr_substitute.h90" 
    7372#  include "vectopt_loop_substitute.h90" 
    7473   !!---------------------------------------------------------------------- 
     
    112111      IF( nn_timing == 1 )  CALL timing_start( 'tra_bbl') 
    113112      ! 
    114       IF( l_trdtra )   THEN                         !* Save ta and sa trends 
     113      IF( l_trdtra )   THEN                         !* Save the input trends 
    115114         CALL wrk_alloc( jpi, jpj, jpk, ztrdt, ztrds ) 
    116115         ztrdt(:,:,:) = tsa(:,:,:,jp_tem) 
     
    132131         ! 
    133132      END IF 
    134  
     133      ! 
    135134      IF( nn_bbl_adv /= 0 ) THEN                    !* Advective bbl 
    136135         ! 
     
    146145      END IF 
    147146 
    148       IF( l_trdtra )   THEN                      ! save the horizontal diffusive trends for further diagnostics 
     147      IF( l_trdtra )   THEN                      ! send the trends for further diagnostics 
    149148         ztrdt(:,:,:) = tsa(:,:,:,jp_tem) - ztrdt(:,:,:) 
    150149         ztrds(:,:,:) = tsa(:,:,:,jp_sal) - ztrds(:,:,:) 
     
    211210                  &                + ahv_bbl(ji  ,jj  ) * ( zptb(ji  ,jj+1) - zptb(ji  ,jj  ) )     & 
    212211                  &                - ahv_bbl(ji  ,jj-1) * ( zptb(ji  ,jj  ) - zptb(ji  ,jj-1) )  )  & 
    213                   &             / ( e1e2t(ji,jj) * fse3t(ji,jj,ik) ) 
     212                  &             * r1_e1e2t(ji,jj) / e3t_n(ji,jj,ik) 
    214213            END DO 
    215214         END DO 
     
    263262                  ! 
    264263                  !                                               ! up  -slope T-point (shelf bottom point) 
    265                   zbtr = r1_e1e2t(iis,jj) / fse3t(iis,jj,ikus) 
     264                  zbtr = r1_e1e2t(iis,jj) / e3t_n(iis,jj,ikus) 
    266265                  ztra = zu_bbl * ( ptb(iid,jj,ikus,jn) - ptb(iis,jj,ikus,jn) ) * zbtr 
    267266                  pta(iis,jj,ikus,jn) = pta(iis,jj,ikus,jn) + ztra 
    268267                  ! 
    269268                  DO jk = ikus, ikud-1                            ! down-slope upper to down T-point (deep column) 
    270                      zbtr = r1_e1e2t(iid,jj) / fse3t(iid,jj,jk) 
     269                     zbtr = r1_e1e2t(iid,jj) / e3t_n(iid,jj,jk) 
    271270                     ztra = zu_bbl * ( ptb(iid,jj,jk+1,jn) - ptb(iid,jj,jk,jn) ) * zbtr 
    272271                     pta(iid,jj,jk,jn) = pta(iid,jj,jk,jn) + ztra 
    273272                  END DO 
    274273                  ! 
    275                   zbtr = r1_e1e2t(iid,jj) / fse3t(iid,jj,ikud) 
     274                  zbtr = r1_e1e2t(iid,jj) / e3t_n(iid,jj,ikud) 
    276275                  ztra = zu_bbl * ( ptb(iis,jj,ikus,jn) - ptb(iid,jj,ikud,jn) ) * zbtr 
    277276                  pta(iid,jj,ikud,jn) = pta(iid,jj,ikud,jn) + ztra 
     
    285284                  ! 
    286285                  ! up  -slope T-point (shelf bottom point) 
    287                   zbtr = r1_e1e2t(ji,ijs) / fse3t(ji,ijs,ikvs) 
     286                  zbtr = r1_e1e2t(ji,ijs) / e3t_n(ji,ijs,ikvs) 
    288287                  ztra = zv_bbl * ( ptb(ji,ijd,ikvs,jn) - ptb(ji,ijs,ikvs,jn) ) * zbtr 
    289288                  pta(ji,ijs,ikvs,jn) = pta(ji,ijs,ikvs,jn) + ztra 
    290289                  ! 
    291290                  DO jk = ikvs, ikvd-1                            ! down-slope upper to down T-point (deep column) 
    292                      zbtr = r1_e1e2t(ji,ijd) / fse3t(ji,ijd,jk) 
     291                     zbtr = r1_e1e2t(ji,ijd) / e3t_n(ji,ijd,jk) 
    293292                     ztra = zv_bbl * ( ptb(ji,ijd,jk+1,jn) - ptb(ji,ijd,jk,jn) ) * zbtr 
    294293                     pta(ji,ijd,jk,jn) = pta(ji,ijd,jk,jn)  + ztra 
    295294                  END DO 
    296295                  !                                               ! down-slope T-point (deep bottom point) 
    297                   zbtr = r1_e1e2t(ji,ijd) / fse3t(ji,ijd,ikvd) 
     296                  zbtr = r1_e1e2t(ji,ijd) / e3t_n(ji,ijd,ikvd) 
    298297                  ztra = zv_bbl * ( ptb(ji,ijs,ikvs,jn) - ptb(ji,ijd,ikvd,jn) ) * zbtr 
    299298                  pta(ji,ijd,ikvd,jn) = pta(ji,ijd,ikvd,jn) + ztra 
     
    302301            ! 
    303302         END DO 
    304          !                                                  ! =========== 
    305       END DO                                                ! end tracer 
    306       !                                                     ! =========== 
    307       ! 
     303         !                                                       ! =========== 
     304      END DO                                                     ! end tracer 
     305      !                                                          ! =========== 
    308306      IF( nn_timing == 1 )  CALL timing_stop( 'tra_bbl_adv') 
    309307      ! 
     
    340338      INTEGER         , INTENT(in   ) ::   kit000   ! first time step index 
    341339      CHARACTER(len=3), INTENT(in   ) ::   cdtype   ! =TRA or TRC (tracer indicator) 
    342       !! 
     340      ! 
    343341      INTEGER  ::   ji, jj                    ! dummy loop indices 
    344342      INTEGER  ::   ik                        ! local integers 
     
    365363            zts (ji,jj,jp_sal) = tsb(ji,jj,ik,jp_sal) 
    366364            ! 
    367             zdep(ji,jj) = fsdept(ji,jj,ik)               ! bottom T-level reference depth 
     365            zdep(ji,jj) = gdept_n(ji,jj,ik)              ! bottom T-level reference depth 
    368366            zub (ji,jj) = un(ji,jj,mbku(ji,jj))          ! bottom velocity 
    369367            zvb (ji,jj) = vn(ji,jj,mbkv(ji,jj)) 
     
    401399         ! 
    402400      ENDIF 
    403  
     401      ! 
    404402      !                                   !-------------------! 
    405403      IF( nn_bbl_adv /= 0 ) THEN          !   advective bbl   ! 
     
    500498      INTEGER ::   ios                  !   -      - 
    501499      REAL(wp), POINTER, DIMENSION(:,:) :: zmbk 
    502       !! 
     500      ! 
    503501      NAMELIST/nambbl/ nn_bbl_ldf, nn_bbl_adv, rn_ahtbbl, rn_gambbl 
    504502      !!---------------------------------------------------------------------- 
     
    506504      IF( nn_timing == 1 )  CALL timing_start( 'tra_bbl_init') 
    507505      ! 
    508       CALL wrk_alloc( jpi, jpj, zmbk ) 
    509       ! 
    510  
    511506      REWIND( numnam_ref )              ! Namelist nambbl in reference namelist : Bottom boundary layer scheme 
    512507      READ  ( numnam_ref, nambbl, IOSTAT = ios, ERR = 901) 
    513 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambbl in reference namelist', lwp ) 
    514  
     508901   IF( ios /= 0 )   CALL ctl_nam ( ios , 'nambbl in reference namelist', lwp ) 
     509      ! 
    515510      REWIND( numnam_cfg )              ! Namelist nambbl in configuration namelist : Bottom boundary layer scheme 
    516511      READ  ( numnam_cfg, nambbl, IOSTAT = ios, ERR = 902 ) 
    517 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambbl in configuration namelist', lwp ) 
     512902   IF( ios /= 0 )   CALL ctl_nam ( ios , 'nambbl in configuration namelist', lwp ) 
    518513      IF(lwm) WRITE ( numond, nambbl ) 
    519514      ! 
     
    545540      END DO 
    546541      ! converte into REAL to use lbc_lnk ; impose a min value of 1 as a zero can be set in lbclnk 
     542      CALL wrk_alloc( jpi, jpj, zmbk ) 
    547543      zmbk(:,:) = REAL( mbku_d(:,:), wp )   ;   CALL lbc_lnk(zmbk,'U',1.)   ;   mbku_d(:,:) = MAX( INT( zmbk(:,:) ), 1 ) 
    548544      zmbk(:,:) = REAL( mbkv_d(:,:), wp )   ;   CALL lbc_lnk(zmbk,'V',1.)   ;   mbkv_d(:,:) = MAX( INT( zmbk(:,:) ), 1 ) 
     545      CALL wrk_dealloc( jpi, jpj, zmbk ) 
    549546 
    550547                                        !* sign of grad(H) at u- and v-points 
     
    593590      ENDIF 
    594591      ! 
    595       CALL wrk_dealloc( jpi, jpj, zmbk ) 
    596       ! 
    597592      IF( nn_timing == 1 )  CALL timing_stop( 'tra_bbl_init') 
    598593      ! 
Note: See TracChangeset for help on using the changeset viewer.