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 3598 for trunk/NEMOGCM/NEMO/OPA_SRC/TRA/trabbl.F90 – NEMO

Ignore:
Timestamp:
2012-11-19T14:35:09+01:00 (11 years ago)
Author:
rblod
Message:

Change of some variable range for TAM in 3.4 - Ticket #1004

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/NEMO/OPA_SRC/TRA/trabbl.F90

    r3294 r3598  
    88   !!   NEMO     1.0  ! 2002-08  (G. Madec)  free form + modules 
    99   !!             -   ! 2004-01  (A. de Miranda, G. Madec, J.M. Molines ) add advective bbl 
    10    !!            3.3  ! 2009-11  (G. Madec)  merge trabbl and trabbl_adv + style + optimization  
    11    !!             -   ! 2010-04  (G. Madec)  Campin & Goosse advective bbl  
     10   !!            3.3  ! 2009-11  (G. Madec)  merge trabbl and trabbl_adv + style + optimization 
     11   !!             -   ! 2010-04  (G. Madec)  Campin & Goosse advective bbl 
    1212   !!             -   ! 2010-06  (C. Ethe, G. Madec)  merge TRA-TRC 
    1313   !!             -   ! 2010-11  (G. Madec) add mbk. arrays associated to the deepest ocean level 
     
    3030   USE trdmod_oce     ! trends: ocean variables 
    3131   USE trdtra         ! trends: active tracers 
    32    USE iom            ! IOM server                
     32   USE iom            ! IOM server 
    3333   USE in_out_manager ! I/O manager 
    3434   USE lbclnk         ! ocean lateral boundary conditions 
     
    4949   LOGICAL, PUBLIC, PARAMETER ::   lk_trabbl = .TRUE.    !: bottom boundary layer flag 
    5050 
    51    !                                           !!* Namelist nambbl *  
     51   !                                           !!* Namelist nambbl * 
    5252   INTEGER , PUBLIC ::   nn_bbl_ldf = 0         !: =1   : diffusive bbl or not (=0) 
    5353   INTEGER , PUBLIC ::   nn_bbl_adv = 0         !: =1/2 : advective bbl or not (=0) 
     
    5858 
    5959   LOGICAL , PUBLIC ::   l_bbl                  !: flag to compute bbl diffu. flux coef and transport 
    60     
     60 
    6161   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:), PUBLIC ::   utr_bbl  , vtr_bbl   ! u- (v-) transport in the bottom boundary layer 
    6262   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:), PUBLIC ::   ahu_bbl  , ahv_bbl   ! masked diffusive bbl coeff. at u & v-pts 
    6363 
    64    INTEGER , ALLOCATABLE, SAVE, DIMENSION(:,:) ::   mbku_d   , mbkv_d      ! vertical index of the "lower" bottom ocean U/V-level 
    65    INTEGER , ALLOCATABLE, SAVE, DIMENSION(:,:) ::   mgrhu    , mgrhv       ! = +/-1, sign of grad(H) in u-(v-)direction 
    66    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) ::   ahu_bbl_0, ahv_bbl_0   ! diffusive bbl flux coefficients at u and v-points 
    67    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) ::   e3u_bbl_0, e3v_bbl_0   ! thichness of the bbl (e3) at u and v-points 
    68    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) ::   r1_e1e2t               ! inverse of the cell surface at t-point      [1/m2] 
     64   INTEGER , ALLOCATABLE, SAVE, DIMENSION(:,:), PUBLIC ::   mbku_d   , mbkv_d      ! vertical index of the "lower" bottom ocean U/V-level (PUBLIC for TAM) 
     65   INTEGER , ALLOCATABLE, SAVE, DIMENSION(:,:), PUBLIC ::   mgrhu    , mgrhv       ! = +/-1, sign of grad(H) in u-(v-)direction (PUBLIC for TAM) 
     66   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:)         ::   ahu_bbl_0, ahv_bbl_0   ! diffusive bbl flux coefficients at u and v-points 
     67   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:), PUBLIC ::   e3u_bbl_0, e3v_bbl_0   ! thichness of the bbl (e3) at u and v-points (PUBLIC for TAM) 
     68   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:), PUBLIC ::   r1_e1e2t               ! inverse of the cell surface at t-point      [1/m2] (PUBLIC for TAM) 
    6969 
    7070   !! * Substitutions 
     
    9595      !!---------------------------------------------------------------------- 
    9696      !!                  ***  ROUTINE bbl  *** 
    97       !!                    
    98       !! ** Purpose :   Compute the before tracer (t & s) trend associated  
     97      !! 
     98      !! ** Purpose :   Compute the before tracer (t & s) trend associated 
    9999      !!              with the bottom boundary layer and add it to the general 
    100100      !!              trend of tracer equations. 
     
    103103      !!              diffusive and/or advective contribution to the tracer trend 
    104104      !!              is added to the general tracer trend 
    105       !!----------------------------------------------------------------------   
    106       INTEGER, INTENT( in ) ::   kt   ! ocean time-step  
     105      !!---------------------------------------------------------------------- 
     106      INTEGER, INTENT( in ) ::   kt   ! ocean time-step 
    107107      !! 
    108108      REAL(wp), POINTER, DIMENSION(:,:,:) ::  ztrdt, ztrds 
     
    112112      ! 
    113113      IF( l_trdtra )   THEN                        !* Save ta and sa trends 
    114          CALL wrk_alloc( jpi, jpj, jpk, ztrdt, ztrds )  
    115          ztrdt(:,:,:) = tsa(:,:,:,jp_tem)  
     114         CALL wrk_alloc( jpi, jpj, jpk, ztrdt, ztrds ) 
     115         ztrdt(:,:,:) = tsa(:,:,:,jp_tem) 
    116116         ztrds(:,:,:) = tsa(:,:,:,jp_sal) 
    117117      ENDIF 
    118118 
    119119      IF( l_bbl )  CALL bbl( kt, nit000, 'TRA' )   !* bbl coef. and transport (only if not already done in trcbbl) 
    120   
     120 
    121121      IF( nn_bbl_ldf == 1 ) THEN                   !* Diffusive bbl 
    122122         ! 
     
    125125         CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' bbl_ldf  - Ta: ', mask1=tmask, & 
    126126         &             tab3d_2=tsa(:,:,:,jp_sal), clinfo2=           ' Sa: ', mask2=tmask, clinfo3='tra' ) 
    127          ! lateral boundary conditions ; just need for outputs                           
     127         ! lateral boundary conditions ; just need for outputs 
    128128         CALL lbc_lnk( ahu_bbl, 'U', 1. )     ;     CALL lbc_lnk( ahv_bbl, 'V', 1. ) 
    129          CALL iom_put( "ahu_bbl", ahu_bbl )   ! bbl diffusive flux i-coef      
     129         CALL iom_put( "ahu_bbl", ahu_bbl )   ! bbl diffusive flux i-coef 
    130130         CALL iom_put( "ahv_bbl", ahv_bbl )   ! bbl diffusive flux j-coef 
    131131         ! 
     
    138138         CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' bbl_adv  - Ta: ', mask1=tmask,   & 
    139139         &             tab3d_2=tsa(:,:,:,jp_sal), clinfo2=           ' Sa: ', mask2=tmask, clinfo3='tra' ) 
    140          ! lateral boundary conditions ; just need for outputs                           
     140         ! lateral boundary conditions ; just need for outputs 
    141141         CALL lbc_lnk( utr_bbl, 'U', 1. )     ;   CALL lbc_lnk( vtr_bbl, 'V', 1. ) 
    142          CALL iom_put( "uoce_bbl", utr_bbl )  ! bbl i-transport      
     142         CALL iom_put( "uoce_bbl", utr_bbl )  ! bbl i-transport 
    143143         CALL iom_put( "voce_bbl", vtr_bbl )  ! bbl j-transport 
    144144         ! 
     
    150150         CALL trd_tra( kt, 'TRA', jp_tem, jptra_trd_bbl, ztrdt ) 
    151151         CALL trd_tra( kt, 'TRA', jp_sal, jptra_trd_bbl, ztrds ) 
    152          CALL wrk_dealloc( jpi, jpj, jpk, ztrdt, ztrds )  
     152         CALL wrk_dealloc( jpi, jpj, jpk, ztrdt, ztrds ) 
    153153      ENDIF 
    154154      ! 
     
    161161      !!---------------------------------------------------------------------- 
    162162      !!                  ***  ROUTINE tra_bbl_dif  *** 
    163       !!                    
     163      !! 
    164164      !! ** Purpose :   Computes the bottom boundary horizontal and vertical 
    165       !!                advection terms.  
    166       !! 
    167       !! ** Method  :    
     165      !!                advection terms. 
     166      !! 
     167      !! ** Method  : 
    168168      !!        * diffusive bbl (nn_bbl_ldf=1) : 
    169169      !!        When the product grad( rho) * grad(h) < 0 (where grad is an 
     
    179179      !! References : Beckmann, A., and R. Doscher, 1997, J. Phys.Oceanogr., 581-591. 
    180180      !!              Campin, J.-M., and H. Goosse, 1999, Tellus, 412-430. 
    181       !!----------------------------------------------------------------------   
     181      !!---------------------------------------------------------------------- 
    182182      ! 
    183183      INTEGER                              , INTENT(in   ) ::   kjpt   ! number of tracers 
    184184      REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(in   ) ::   ptb    ! before and now tracer fields 
    185       REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(inout) ::   pta    ! tracer trend  
     185      REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(inout) ::   pta    ! tracer trend 
    186186      ! 
    187187      INTEGER  ::   ji, jj, jn   ! dummy loop indices 
     
    202202#else 
    203203         DO jj = 1, jpj 
    204             DO ji = 1, jpi  
     204            DO ji = 1, jpi 
    205205#endif 
    206206               ik = mbkt(ji,jj)                        ! bottom T-level index 
     
    233233      ! 
    234234   END SUBROUTINE tra_bbl_dif 
    235     
     235 
    236236 
    237237   SUBROUTINE tra_bbl_adv( ptb, pta, kjpt ) 
     
    239239      !!                  ***  ROUTINE trc_bbl  *** 
    240240      !! 
    241       !! ** Purpose :   Compute the before passive tracer trend associated  
     241      !! ** Purpose :   Compute the before passive tracer trend associated 
    242242      !!     with the bottom boundary layer and add it to the general trend 
    243243      !!     of tracer equations. 
    244244      !! ** Method  :   advective bbl (nn_bbl_adv = 1 or 2) : 
    245245      !!      nn_bbl_adv = 1   use of the ocean near bottom velocity as bbl velocity 
    246       !!      nn_bbl_adv = 2   follow Campin and Goosse (1999) implentation i.e.  
    247       !!                       transport proportional to the along-slope density gradient                    
     246      !!      nn_bbl_adv = 2   follow Campin and Goosse (1999) implentation i.e. 
     247      !!                       transport proportional to the along-slope density gradient 
    248248      !! 
    249249      !! References : Beckmann, A., and R. Doscher, 1997, J. Phys.Oceanogr., 581-591. 
    250250      !!              Campin, J.-M., and H. Goosse, 1999, Tellus, 412-430. 
    251       !!----------------------------------------------------------------------   
     251      !!---------------------------------------------------------------------- 
    252252      INTEGER                              , INTENT(in   ) ::   kjpt   ! number of tracers 
    253253      REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(in   ) ::   ptb    ! before and now tracer fields 
    254       REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(inout) ::   pta    ! tracer trend  
     254      REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(inout) ::   pta    ! tracer trend 
    255255      ! 
    256256      INTEGER  ::   ji, jj, jk, jn           ! dummy loop indices 
     
    264264      !                                                          ! =========== 
    265265      DO jn = 1, kjpt                                            ! tracer loop 
    266          !                                                       ! ===========          
     266         !                                                       ! =========== 
    267267# if defined key_vectopt_loop 
    268268         DO jj = 1, 1 
     
    282282                  ztra = zu_bbl * ( ptb(iid,jj,ikus,jn) - ptb(iis,jj,ikus,jn) ) * zbtr 
    283283                  pta(iis,jj,ikus,jn) = pta(iis,jj,ikus,jn) + ztra 
    284                   !                    
     284                  ! 
    285285                  DO jk = ikus, ikud-1                            ! down-slope upper to down T-point (deep column) 
    286286                     zbtr = r1_e1e2t(iid,jj) / fse3t(iid,jj,jk) 
     
    288288                     pta(iid,jj,jk,jn) = pta(iid,jj,jk,jn) + ztra 
    289289                  END DO 
    290                   !  
     290                  ! 
    291291                  zbtr = r1_e1e2t(iid,jj) / fse3t(iid,jj,ikud) 
    292292                  ztra = zu_bbl * ( ptb(iis,jj,ikus,jn) - ptb(iid,jj,ikud,jn) ) * zbtr 
     
    299299                  ikvd = mbkv_d(ji,jj)                   ;   ikvs = mbkv(ji,jj) 
    300300                  zv_bbl = ABS( vtr_bbl(ji,jj) ) 
    301                   !  
     301                  ! 
    302302                  ! up  -slope T-point (shelf bottom point) 
    303303                  zbtr = r1_e1e2t(ji,ijs) / fse3t(ji,ijs,ikvs) 
    304304                  ztra = zv_bbl * ( ptb(ji,ijd,ikvs,jn) - ptb(ji,ijs,ikvs,jn) ) * zbtr 
    305305                  pta(ji,ijs,ikvs,jn) = pta(ji,ijs,ikvs,jn) + ztra 
    306                   !                    
     306                  ! 
    307307                  DO jk = ikvs, ikvd-1                            ! down-slope upper to down T-point (deep column) 
    308308                     zbtr = r1_e1e2t(ji,ijd) / fse3t(ji,ijd,jk) 
     
    330330      !!---------------------------------------------------------------------- 
    331331      !!                  ***  ROUTINE bbl  *** 
    332       !!                    
     332      !! 
    333333      !! ** Purpose :   Computes the bottom boundary horizontal and vertical 
    334       !!                advection terms.  
    335       !! 
    336       !! ** Method  :    
     334      !!                advection terms. 
     335      !! 
     336      !! ** Method  : 
    337337      !!        * diffusive bbl (nn_bbl_ldf=1) : 
    338338      !!        When the product grad( rho) * grad(h) < 0 (where grad is an 
     
    353353      !! References : Beckmann, A., and R. Doscher, 1997, J. Phys.Oceanogr., 581-591. 
    354354      !!              Campin, J.-M., and H. Goosse, 1999, Tellus, 412-430. 
    355       !!----------------------------------------------------------------------   
     355      !!---------------------------------------------------------------------- 
    356356      ! 
    357357      INTEGER         , INTENT(in   ) ::   kt       ! ocean time-step index 
     
    399399                                          - 0.121555e-07 ) * pfh 
    400400      !!---------------------------------------------------------------------- 
    401        
     401 
    402402      ! 
    403403      IF( nn_timing == 1 )  CALL timing_start( 'bbl') 
    404404      ! 
    405       CALL wrk_alloc( jpi, jpj, zub, zvb, ztb, zsb, zdep )  
    406       ! 
    407       
     405      CALL wrk_alloc( jpi, jpj, zub, zvb, ztb, zsb, zdep ) 
     406      ! 
     407 
    408408      IF( kt == kit000 )  THEN 
    409409         IF(lwp)  WRITE(numout,*) 
     
    411411         IF(lwp)  WRITE(numout,*) '~~~~~~~~~~' 
    412412      ENDIF 
    413        
     413 
    414414      !                                        !* bottom temperature, salinity, velocity and depth 
    415415#if defined key_vectopt_loop 
     
    426426            ! 
    427427            zub(ji,jj) = un(ji,jj,mbku(ji,jj))      ! bottom velocity 
    428             zvb(ji,jj) = vn(ji,jj,mbkv(ji,jj))  
     428            zvb(ji,jj) = vn(ji,jj,mbkv(ji,jj)) 
    429429         END DO 
    430430      END DO 
    431        
     431 
    432432      !                                   !-------------------! 
    433433      IF( nn_bbl_ldf == 1 ) THEN          !   diffusive bbl   ! 
    434434         !                                !-------------------! 
    435435         DO jj = 1, jpjm1                      ! (criteria for non zero flux: grad(rho).grad(h) < 0 ) 
    436             DO ji = 1, jpim1               
    437                !                                                ! i-direction  
     436            DO ji = 1, jpim1 
     437               !                                                ! i-direction 
    438438               zt = 0.5 * ( ztb (ji,jj) + ztb (ji+1,jj) )  ! T, S anomalie, and depth 
    439439               zs = 0.5 * ( zsb (ji,jj) + zsb (ji+1,jj) ) - 35.0 
     
    442442               zgdrho = (  fsalbt( zt, zs, zh ) * ( ztb(ji+1,jj) - ztb(ji,jj) )    & 
    443443                  &                             - ( zsb(ji+1,jj) - zsb(ji,jj) )  ) * umask(ji,jj,1) 
    444                !                                                      
     444               ! 
    445445               zsign          = SIGN(  0.5, - zgdrho * REAL( mgrhu(ji,jj) )  )    ! sign of ( i-gradient * i-slope ) 
    446446               ahu_bbl(ji,jj) = ( 0.5 - zsign ) * ahu_bbl_0(ji,jj)                  ! masked diffusive flux coeff. 
    447447               ! 
    448                !                                                ! j-direction  
     448               !                                                ! j-direction 
    449449               zt = 0.5 * ( ztb (ji,jj+1) + ztb (ji,jj) )                ! T, S anomalie, and depth 
    450450               zs = 0.5 * ( zsb (ji,jj+1) + zsb (ji,jj) ) - 35.0 
     
    453453               zgdrho = (  fsalbt( zt, zs, zh ) * ( ztb(ji,jj+1) - ztb(ji,jj) )    & 
    454454                  &                             - ( zsb(ji,jj+1) - zsb(ji,jj) )  ) * vmask(ji,jj,1) 
    455                !                                                     
     455               ! 
    456456               zsign          = SIGN(  0.5, -zgdrho * REAL( mgrhv(ji,jj) )  )     ! sign of ( j-gradient * j-slope ) 
    457457               ahv_bbl(ji,jj) = ( 0.5 - zsign ) * ahv_bbl_0(ji,jj) 
     
    475475                  zh = 0.5 * ( zdep(ji,jj) + zdep(ji+1,jj) ) 
    476476                  !                                                           ! masked bbl i-gradient of density 
    477                   zgdrho = (  fsalbt( zt, zs, zh ) * ( ztb(ji+1,jj) - ztb(ji,jj) )    &   
     477                  zgdrho = (  fsalbt( zt, zs, zh ) * ( ztb(ji+1,jj) - ztb(ji,jj) )    & 
    478478                     &                             - ( zsb(ji+1,jj) - zsb(ji,jj) )  ) * umask(ji,jj,1) 
    479                   !                                                          
     479                  ! 
    480480                  zsign = SIGN(  0.5, - zgdrho   * REAL( mgrhu(ji,jj) )  )    ! sign of i-gradient * i-slope 
    481481                  zsigna= SIGN(  0.5, zub(ji,jj) * REAL( mgrhu(ji,jj) )  )    ! sign of u * i-slope 
     
    489489                  zh = 0.5 * ( zdep(ji,jj+1) + zdep(ji,jj) ) 
    490490                  !                                                           ! masked bbl j-gradient of density 
    491                   zgdrho = (  fsalbt( zt, zs, zh ) * ( ztb(ji,jj+1) - ztb(ji,jj) )    &   
     491                  zgdrho = (  fsalbt( zt, zs, zh ) * ( ztb(ji,jj+1) - ztb(ji,jj) )    & 
    492492                     &                             - ( zsb(ji,jj+1) - zsb(ji,jj) )  ) * vmask(ji,jj,1) 
    493493                  zsign = SIGN(  0.5, - zgdrho   * REAL( mgrhv(ji,jj) )  )    ! sign of j-gradient * j-slope 
     
    513513                  zh = 0.5 * ( zdep(ji,jj) + zdep(ji+1,jj) ) 
    514514                  zgdrho =    fsbeta( zt, zs, zh )                                    & 
    515                      &   * (  fsalbt( zt, zs, zh ) * ( ztb(iid,jj) - ztb(iis,jj) )    &   
     515                     &   * (  fsalbt( zt, zs, zh ) * ( ztb(iid,jj) - ztb(iis,jj) )    & 
    516516                     &                             - ( zsb(iid,jj) - zsb(iis,jj) )  ) * umask(ji,jj,1) 
    517517                  zgdrho = MAX( 0.e0, zgdrho )                         ! only if shelf is denser than deep 
     
    530530                  zh = 0.5 * ( zdep(ji,jj) + zdep(ji,jj+1) ) 
    531531                  zgdrho =    fsbeta( zt, zs, zh )                                    & 
    532                      &   * (  fsalbt( zt, zs, zh ) * ( ztb(ji,ijd) - ztb(ji,ijs) )    &   
     532                     &   * (  fsalbt( zt, zs, zh ) * ( ztb(ji,ijd) - ztb(ji,ijs) )    & 
    533533                     &                             - ( zsb(ji,ijd) - zsb(ji,ijs) )  ) * vmask(ji,jj,1) 
    534534                  zgdrho = MAX( 0.e0, zgdrho )                         ! only if shelf is denser than deep 
     
    542542      ENDIF 
    543543      ! 
    544       CALL wrk_dealloc( jpi, jpj, zub, zvb, ztb, zsb, zdep )  
     544      CALL wrk_dealloc( jpi, jpj, zub, zvb, ztb, zsb, zdep ) 
    545545      ! 
    546546      IF( nn_timing == 1 )  CALL timing_stop( 'bbl') 
     
    567567      IF( nn_timing == 1 )  CALL timing_start( 'tra_bbl_init') 
    568568      ! 
    569       CALL wrk_alloc( jpi, jpj, zmbk )  
     569      CALL wrk_alloc( jpi, jpj, zmbk ) 
    570570      ! 
    571571 
     
    588588      !                              ! allocate trabbl arrays 
    589589      IF( tra_bbl_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'tra_bbl_init : unable to allocate arrays' ) 
    590       
     590 
    591591      IF( nn_bbl_adv == 1 )    WRITE(numout,*) '       * Advective BBL using upper velocity' 
    592592      IF( nn_bbl_adv == 2 )    WRITE(numout,*) '       * Advective BBL using velocity = F( delta rho)' 
     
    597597      !                             !* inverse of surface of T-cells 
    598598      r1_e1e2t(:,:) = 1._wp / ( e1t(:,:) * e2t(:,:) ) 
    599        
     599 
    600600      !                             !* vertical index of  "deep" bottom u- and v-points 
    601601      DO jj = 1, jpjm1                    ! (the "shelf" bottom k-indices are mbku and mbkv) 
     
    605605         END DO 
    606606      END DO 
    607       ! converte into REAL to use lbc_lnk ; impose a min value of 1 as a zero can be set in lbclnk  
     607      ! converte into REAL to use lbc_lnk ; impose a min value of 1 as a zero can be set in lbclnk 
    608608      zmbk(:,:) = REAL( mbku_d(:,:), wp )   ;   CALL lbc_lnk(zmbk,'U',1.)   ;   mbku_d(:,:) = MAX( INT( zmbk(:,:) ), 1 ) 
    609609      zmbk(:,:) = REAL( mbkv_d(:,:), wp )   ;   CALL lbc_lnk(zmbk,'V',1.)   ;   mbkv_d(:,:) = MAX( INT( zmbk(:,:) ), 1 ) 
     
    611611                                        !* sign of grad(H) at u- and v-points 
    612612      mgrhu(jpi,:) = 0.    ;    mgrhu(:,jpj) = 0.   ;    mgrhv(jpi,:) = 0.    ;    mgrhv(:,jpj) = 0. 
    613       DO jj = 1, jpjm1                 
     613      DO jj = 1, jpjm1 
    614614         DO ji = 1, jpim1 
    615615            mgrhu(ji,jj) = INT(  SIGN( 1.e0, fsdept_0(ji+1,jj,mbkt(ji+1,jj)) - fsdept_0(ji,jj,mbkt(ji,jj)) )  ) 
     
    618618      END DO 
    619619 
    620       DO jj = 1, jpjm1              !* bbl thickness at u- (v-) point  
     620      DO jj = 1, jpjm1              !* bbl thickness at u- (v-) point 
    621621         DO ji = 1, jpim1                 ! minimum of top & bottom e3u_0 (e3v_0) 
    622             e3u_bbl_0(ji,jj) = MIN( fse3u_0(ji,jj,mbkt(ji+1,jj  )), fse3u_0(ji,jj,mbkt(ji,jj)) )   
    623             e3v_bbl_0(ji,jj) = MIN( fse3v_0(ji,jj,mbkt(ji  ,jj+1)), fse3v_0(ji,jj,mbkt(ji,jj)) )   
    624          END DO  
     622            e3u_bbl_0(ji,jj) = MIN( fse3u_0(ji,jj,mbkt(ji+1,jj  )), fse3u_0(ji,jj,mbkt(ji,jj)) ) 
     623            e3v_bbl_0(ji,jj) = MIN( fse3v_0(ji,jj,mbkt(ji  ,jj+1)), fse3v_0(ji,jj,mbkt(ji,jj)) ) 
     624         END DO 
    625625      END DO 
    626626      CALL lbc_lnk( e3u_bbl_0, 'U', 1. )   ;   CALL lbc_lnk( e3v_bbl_0, 'V', 1. )      ! lateral boundary conditions 
    627627 
    628       !                             !* masked diffusive flux coefficients  
     628      !                             !* masked diffusive flux coefficients 
    629629      ahu_bbl_0(:,:) = rn_ahtbbl * e2u(:,:) * e3u_bbl_0(:,:) / e1u(:,:)  * umask(:,:,1) 
    630630      ahv_bbl_0(:,:) = rn_ahtbbl * e1v(:,:) * e3v_bbl_0(:,:) / e2v(:,:)  * vmask(:,:,1) 
     
    636636         CASE ( 2 )                          ! ORCA_R2 
    637637            ij0 = 102   ;   ij1 = 102              ! Gibraltar enhancement of BBL 
    638             ii0 = 139   ;   ii1 = 140   
     638            ii0 = 139   ;   ii1 = 140 
    639639            ahu_bbl_0(mi0(ii0):mi1(ii1),mj0(ij0):mj1(ij1)) =  4.e0*ahu_bbl_0(mi0(ii0):mi1(ii1),mj0(ij0):mj1(ij1)) 
    640640            ahv_bbl_0(mi0(ii0):mi1(ii1),mj0(ij0):mj1(ij1)) =  4.e0*ahv_bbl_0(mi0(ii0):mi1(ii1),mj0(ij0):mj1(ij1)) 
     
    647647         CASE ( 4 )                          ! ORCA_R4 
    648648            ij0 =  52   ;   ij1 =  52              ! Gibraltar enhancement of BBL 
    649             ii0 =  70   ;   ii1 =  71   
     649            ii0 =  70   ;   ii1 =  71 
    650650            ahu_bbl_0(mi0(ii0):mi1(ii1),mj0(ij0):mj1(ij1)) =  4.e0*ahu_bbl_0(mi0(ii0):mi1(ii1),mj0(ij0):mj1(ij1)) 
    651651            ahv_bbl_0(mi0(ii0):mi1(ii1),mj0(ij0):mj1(ij1)) =  4.e0*ahv_bbl_0(mi0(ii0):mi1(ii1),mj0(ij0):mj1(ij1)) 
     
    654654      ENDIF 
    655655      ! 
    656       CALL wrk_dealloc( jpi, jpj, zmbk )  
     656      CALL wrk_dealloc( jpi, jpj, zmbk ) 
    657657      ! 
    658658      IF( nn_timing == 1 )  CALL timing_stop( 'tra_bbl_init') 
Note: See TracChangeset for help on using the changeset viewer.