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 6225 for branches/2014/dev_r4704_NOC5_MPP_BDY_UPDATE/NEMOGCM/NEMO/TOP_SRC/trcsub.F90 – NEMO

Ignore:
Timestamp:
2016-01-08T10:35:19+01:00 (8 years ago)
Author:
jamesharle
Message:

Update MPP_BDY_UPDATE branch to be consistent with head of trunk

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2014/dev_r4704_NOC5_MPP_BDY_UPDATE/NEMOGCM/NEMO/TOP_SRC/trcsub.F90

    • Property svn:keywords set to Id
    r4611 r6225  
    2525   USE zdf_oce 
    2626   USE domvvl 
    27    USE divcur          ! hor. divergence and curl      (div & cur routines) 
     27   USE divhor          ! horizontal divergence            (div_hor routine) 
    2828   USE sbcrnf, ONLY: h_rnf, nk_rnf   ! River runoff  
    2929   USE bdy_oce 
     
    4040   PUBLIC   trc_sub_ssh      ! called by trc_stp to reset physics variables 
    4141 
    42    !!* Module variables 
    4342   REAL(wp)  :: r1_ndttrc     !    1 /  nn_dttrc  
    4443   REAL(wp)  :: r1_ndttrcp1   !    1 / (nn_dttrc+1)  
    4544 
    46    !!* Substitution 
    47 #  include "top_substitute.h90" 
     45   !                                                       !* iso-neutral slopes (if l_ldfslp=T) 
     46   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)   ::  uslp_temp, vslp_temp, wslpi_temp, wslpj_temp   !: hold current values  
     47   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)   ::  uslp_tm  , vslp_tm  , wslpi_tm  , wslpj_tm     !: time mean  
     48 
    4849   !!---------------------------------------------------------------------- 
    4950   !! NEMO/TOP 3.3 , NEMO Consortium (2010) 
    50    !! $Id: trcstp.F90 2528 2010-12-27 17:33:53Z rblod $  
     51   !! $Id$  
    5152   !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 
    5253   !!---------------------------------------------------------------------- 
     
    8485       IF( MOD( kt , nn_dttrc ) /= 0 ) THEN 
    8586          ! 
    86           un_tm   (:,:,:)        = un_tm   (:,:,:)        + un   (:,:,:)        * fse3u(:,:,:)  
    87           vn_tm   (:,:,:)        = vn_tm   (:,:,:)        + vn   (:,:,:)        * fse3v(:,:,:)  
    88           tsn_tm  (:,:,:,jp_tem) = tsn_tm  (:,:,:,jp_tem) + tsn  (:,:,:,jp_tem) * fse3t(:,:,:)   
    89           tsn_tm  (:,:,:,jp_sal) = tsn_tm  (:,:,:,jp_sal) + tsn  (:,:,:,jp_sal) * fse3t(:,:,:)   
    90           rhop_tm (:,:,:)        = rhop_tm (:,:,:)        + rhop (:,:,:)        * fse3t(:,:,:)   
    91           avt_tm  (:,:,:)        = avt_tm  (:,:,:)        + avt  (:,:,:)        * fse3w(:,:,:)   
    92 # if defined key_zdfddm 
    93           avs_tm  (:,:,:)        = avs_tm  (:,:,:)        + avs  (:,:,:)        * fse3w(:,:,:)   
    94 # endif 
    95 #if defined key_ldfslp 
    96           wslpi_tm(:,:,:)        = wslpi_tm(:,:,:)        + wslpi(:,:,:) 
    97           wslpj_tm(:,:,:)        = wslpj_tm(:,:,:)        + wslpj(:,:,:) 
    98           uslp_tm (:,:,:)        = uslp_tm (:,:,:)        + uslp (:,:,:) 
    99           vslp_tm (:,:,:)        = vslp_tm (:,:,:)        + vslp (:,:,:) 
    100 #endif 
     87          un_tm   (:,:,:)        = un_tm   (:,:,:)        + un   (:,:,:)        * e3u_n(:,:,:)  
     88          vn_tm   (:,:,:)        = vn_tm   (:,:,:)        + vn   (:,:,:)        * e3v_n(:,:,:)  
     89          tsn_tm  (:,:,:,jp_tem) = tsn_tm  (:,:,:,jp_tem) + tsn  (:,:,:,jp_tem) * e3t_n(:,:,:)   
     90          tsn_tm  (:,:,:,jp_sal) = tsn_tm  (:,:,:,jp_sal) + tsn  (:,:,:,jp_sal) * e3t_n(:,:,:)   
     91          rhop_tm (:,:,:)        = rhop_tm (:,:,:)        + rhop (:,:,:)        * e3t_n(:,:,:)   
     92          avt_tm  (:,:,:)        = avt_tm  (:,:,:)        + avt  (:,:,:)        * e3w_n(:,:,:)   
     93# if defined key_zdfddm 
     94          avs_tm  (:,:,:)        = avs_tm  (:,:,:)        + avs  (:,:,:)        * e3w_n(:,:,:)   
     95# endif 
     96         IF( l_ldfslp ) THEN 
     97            uslp_tm (:,:,:)      = uslp_tm (:,:,:)        + uslp (:,:,:) 
     98            vslp_tm (:,:,:)      = vslp_tm (:,:,:)        + vslp (:,:,:) 
     99            wslpi_tm(:,:,:)      = wslpi_tm(:,:,:)        + wslpi(:,:,:) 
     100            wslpj_tm(:,:,:)      = wslpj_tm(:,:,:)        + wslpj(:,:,:) 
     101         ENDIF 
    101102# if defined key_trabbl 
    102103          IF( nn_bbl_ldf == 1 ) THEN 
     
    131132         avs_temp   (:,:,:)      = avs   (:,:,:) 
    132133# endif 
    133 #if defined key_ldfslp 
    134          wslpi_temp (:,:,:)      = wslpi (:,:,:) 
    135          wslpj_temp (:,:,:)      = wslpj (:,:,:) 
    136          uslp_temp  (:,:,:)      = uslp  (:,:,:) 
    137          vslp_temp  (:,:,:)      = vslp  (:,:,:) 
    138 #endif 
     134         IF( l_ldfslp ) THEN 
     135            uslp_temp  (:,:,:)   = uslp  (:,:,:)   ;   wslpi_temp (:,:,:)   = wslpi (:,:,:) 
     136            vslp_temp  (:,:,:)   = vslp  (:,:,:)   ;   wslpj_temp (:,:,:)   = wslpj (:,:,:) 
     137         ENDIF 
    139138# if defined key_trabbl 
    140139          IF( nn_bbl_ldf == 1 ) THEN 
     
    160159         wndm_temp  (:,:)        = wndm  (:,:) 
    161160         !                                    !  Variables reset in trc_sub_ssh 
    162          rotn_temp  (:,:,:)      = rotn  (:,:,:) 
    163161         hdivn_temp (:,:,:)      = hdivn (:,:,:) 
    164          rotb_temp  (:,:,:)      = rotb  (:,:,:) 
    165          hdivb_temp (:,:,:)      = hdivb (:,:,:) 
    166162         ! 
    167163         ! 2. Create averages and reassign variables 
    168          un_tm    (:,:,:)        = un_tm   (:,:,:)        + un   (:,:,:)        * fse3u(:,:,:)  
    169          vn_tm    (:,:,:)        = vn_tm   (:,:,:)        + vn   (:,:,:)        * fse3v(:,:,:)  
    170          tsn_tm   (:,:,:,jp_tem) = tsn_tm  (:,:,:,jp_tem) + tsn  (:,:,:,jp_tem) * fse3t(:,:,:)   
    171          tsn_tm   (:,:,:,jp_sal) = tsn_tm  (:,:,:,jp_sal) + tsn  (:,:,:,jp_sal) * fse3t(:,:,:)   
    172          rhop_tm (:,:,:)         = rhop_tm (:,:,:)        + rhop (:,:,:)        * fse3t(:,:,:)   
    173          avt_tm   (:,:,:)        = avt_tm  (:,:,:)        + avt  (:,:,:)        * fse3w(:,:,:)   
    174 # if defined key_zdfddm 
    175          avs_tm   (:,:,:)        = avs_tm  (:,:,:)        + avs  (:,:,:)        * fse3w(:,:,:)   
    176 # endif 
    177 #if defined key_ldfslp 
    178          wslpi_tm (:,:,:)        = wslpi_tm(:,:,:)        + wslpi(:,:,:)  
    179          wslpj_tm (:,:,:)        = wslpj_tm(:,:,:)        + wslpj(:,:,:)  
    180          uslp_tm  (:,:,:)        = uslp_tm (:,:,:)        + uslp (:,:,:)  
    181          vslp_tm  (:,:,:)        = vslp_tm (:,:,:)        + vslp (:,:,:) 
    182 #endif 
     164         un_tm    (:,:,:)        = un_tm   (:,:,:)        + un   (:,:,:)        * e3u_n(:,:,:)  
     165         vn_tm    (:,:,:)        = vn_tm   (:,:,:)        + vn   (:,:,:)        * e3v_n(:,:,:)  
     166         tsn_tm   (:,:,:,jp_tem) = tsn_tm  (:,:,:,jp_tem) + tsn  (:,:,:,jp_tem) * e3t_n(:,:,:)   
     167         tsn_tm   (:,:,:,jp_sal) = tsn_tm  (:,:,:,jp_sal) + tsn  (:,:,:,jp_sal) * e3t_n(:,:,:)   
     168         rhop_tm (:,:,:)         = rhop_tm (:,:,:)        + rhop (:,:,:)        * e3t_n(:,:,:)   
     169         avt_tm   (:,:,:)        = avt_tm  (:,:,:)        + avt  (:,:,:)        * e3w_n(:,:,:)   
     170# if defined key_zdfddm 
     171         avs_tm   (:,:,:)        = avs_tm  (:,:,:)        + avs  (:,:,:)        * e3w_n(:,:,:)   
     172# endif 
     173         IF( l_ldfslp ) THEN 
     174            uslp_tm  (:,:,:)     = uslp_tm (:,:,:)        + uslp (:,:,:)  
     175            vslp_tm  (:,:,:)     = vslp_tm (:,:,:)        + vslp (:,:,:) 
     176            wslpi_tm (:,:,:)     = wslpi_tm(:,:,:)        + wslpi(:,:,:)  
     177            wslpj_tm (:,:,:)     = wslpj_tm(:,:,:)        + wslpj(:,:,:)  
     178         ENDIF 
    183179# if defined key_trabbl 
    184180          IF( nn_bbl_ldf == 1 ) THEN 
     
    245241            DO jj = 1, jpj 
    246242               DO ji = 1, jpi 
    247                   z1_ne3t = r1_ndttrcp1  / fse3t(ji,jj,jk) 
    248                   z1_ne3u = r1_ndttrcp1  / fse3u(ji,jj,jk) 
    249                   z1_ne3v = r1_ndttrcp1  / fse3v(ji,jj,jk) 
    250                   z1_ne3w = r1_ndttrcp1  / fse3w(ji,jj,jk) 
     243                  z1_ne3t = r1_ndttrcp1  / e3t_n(ji,jj,jk) 
     244                  z1_ne3u = r1_ndttrcp1  / e3u_n(ji,jj,jk) 
     245                  z1_ne3v = r1_ndttrcp1  / e3v_n(ji,jj,jk) 
     246                  z1_ne3w = r1_ndttrcp1  / e3w_n(ji,jj,jk) 
    251247                  ! 
    252248                  un   (ji,jj,jk)        = un_tm   (ji,jj,jk)        * z1_ne3u 
     
    255251                  tsn  (ji,jj,jk,jp_sal) = tsn_tm  (ji,jj,jk,jp_sal) * z1_ne3t 
    256252                  rhop (ji,jj,jk)        = rhop_tm (ji,jj,jk)        * z1_ne3t 
     253!!gm : BUG? ==>> for avt & avs I don't understand the division by e3w 
    257254                  avt  (ji,jj,jk)        = avt_tm  (ji,jj,jk)        * z1_ne3w 
    258255# if defined key_zdfddm 
    259256                  avs  (ji,jj,jk)        = avs_tm  (ji,jj,jk)        * z1_ne3w 
    260257# endif 
    261 #if defined key_ldfslp 
    262                   wslpi(ji,jj,jk)        = wslpi_tm(ji,jj,jk)  
    263                   wslpj(ji,jj,jk)        = wslpj_tm(ji,jj,jk) 
    264                   uslp (ji,jj,jk)        = uslp_tm (ji,jj,jk) 
    265                   vslp (ji,jj,jk)        = vslp_tm (ji,jj,jk) 
    266 #endif 
    267                ENDDO 
    268             ENDDO 
    269          ENDDO 
     258               END DO 
     259            END DO 
     260         END DO 
     261         IF( l_ldfslp ) THEN 
     262            wslpi(:,:,:)        = wslpi_tm(:,:,:)  
     263            wslpj(:,:,:)        = wslpj_tm(:,:,:) 
     264            uslp (:,:,:)        = uslp_tm (:,:,:) 
     265            vslp (:,:,:)        = vslp_tm (:,:,:) 
     266         ENDIF 
    270267         ! 
    271268         CALL trc_sub_ssh( kt )         ! after ssh & vertical velocity 
     
    276273      ! 
    277274   END SUBROUTINE trc_sub_stp 
     275 
    278276 
    279277   SUBROUTINE trc_sub_ini 
     
    299297      IF( ierr /= 0 )   CALL ctl_stop( 'STOP', 'top_sub_alloc : unable to allocate standard ocean arrays' ) 
    300298 
    301       un_tm   (:,:,:)        = un   (:,:,:)        * fse3u(:,:,:)  
    302       vn_tm   (:,:,:)        = vn   (:,:,:)        * fse3v(:,:,:)  
    303       tsn_tm  (:,:,:,jp_tem) = tsn  (:,:,:,jp_tem) * fse3t(:,:,:)   
    304       tsn_tm  (:,:,:,jp_sal) = tsn  (:,:,:,jp_sal) * fse3t(:,:,:)   
    305       rhop_tm (:,:,:)        = rhop (:,:,:)        * fse3t(:,:,:)   
    306       avt_tm  (:,:,:)        = avt  (:,:,:)        * fse3w(:,:,:)   
    307 # if defined key_zdfddm 
    308       avs_tm  (:,:,:)        = avs  (:,:,:)        * fse3w(:,:,:)   
    309 # endif 
    310 #if defined key_ldfslp 
    311       wslpi_tm(:,:,:)        = wslpi(:,:,:) 
    312       wslpj_tm(:,:,:)        = wslpj(:,:,:) 
    313       uslp_tm (:,:,:)        = uslp (:,:,:) 
    314       vslp_tm (:,:,:)        = vslp (:,:,:) 
    315 #endif 
     299      un_tm   (:,:,:)        = un   (:,:,:)        * e3u_n(:,:,:)  
     300      vn_tm   (:,:,:)        = vn   (:,:,:)        * e3v_n(:,:,:)  
     301      tsn_tm  (:,:,:,jp_tem) = tsn  (:,:,:,jp_tem) * e3t_n(:,:,:)   
     302      tsn_tm  (:,:,:,jp_sal) = tsn  (:,:,:,jp_sal) * e3t_n(:,:,:)   
     303      rhop_tm (:,:,:)        = rhop (:,:,:)        * e3t_n(:,:,:)   
     304!!gm : BUG? ==>> for avt & avs I don't understand the division by e3w 
     305      avt_tm  (:,:,:)        = avt  (:,:,:)        * e3w_n(:,:,:)   
     306# if defined key_zdfddm 
     307      avs_tm  (:,:,:)        = avs  (:,:,:)        * e3w_n(:,:,:)   
     308# endif 
     309      IF( l_ldfslp ) THEN 
     310         wslpi_tm(:,:,:)     = wslpi(:,:,:) 
     311         wslpj_tm(:,:,:)     = wslpj(:,:,:) 
     312         uslp_tm (:,:,:)     = uslp (:,:,:) 
     313         vslp_tm (:,:,:)     = vslp (:,:,:) 
     314      ENDIF 
    316315      sshn_tm  (:,:) = sshn  (:,:)  
    317316      rnf_tm   (:,:) = rnf   (:,:)  
     
    365364      avs   (:,:,:)   =  avs_temp   (:,:,:) 
    366365# endif 
    367 #if defined key_ldfslp 
    368       wslpi (:,:,:)   =  wslpi_temp (:,:,:) 
    369       wslpj (:,:,:)   =  wslpj_temp (:,:,:) 
    370       uslp  (:,:,:)   =  uslp_temp  (:,:,:) 
    371       vslp  (:,:,:)   =  vslp_temp  (:,:,:) 
    372 #endif 
     366      IF( l_ldfslp ) THEN 
     367         wslpi (:,:,:)=  wslpi_temp (:,:,:) 
     368         wslpj (:,:,:)=  wslpj_temp (:,:,:) 
     369         uslp  (:,:,:)=  uslp_temp  (:,:,:) 
     370         vslp  (:,:,:)=  vslp_temp  (:,:,:) 
     371      ENDIF 
    373372      sshn  (:,:)     =  sshn_temp  (:,:) 
    374373      sshb  (:,:)     =  sshb_temp  (:,:) 
     
    396395      ! 
    397396      hdivn (:,:,:)   =  hdivn_temp (:,:,:) 
    398       rotn  (:,:,:)   =  rotn_temp  (:,:,:) 
    399       hdivb (:,:,:)   =  hdivb_temp (:,:,:) 
    400       rotb  (:,:,:)   =  rotb_temp  (:,:,:) 
    401397      !                                       
    402  
    403398      ! Start new averages 
    404          un_tm   (:,:,:)        = un   (:,:,:)        * fse3u(:,:,:)  
    405          vn_tm   (:,:,:)        = vn   (:,:,:)        * fse3v(:,:,:)  
    406          tsn_tm  (:,:,:,jp_tem) = tsn  (:,:,:,jp_tem) * fse3t(:,:,:)   
    407          tsn_tm  (:,:,:,jp_sal) = tsn  (:,:,:,jp_sal) * fse3t(:,:,:)   
    408          rhop_tm (:,:,:)        = rhop (:,:,:)        * fse3t(:,:,:)   
    409          avt_tm  (:,:,:)        = avt  (:,:,:)        * fse3w(:,:,:)   
    410 # if defined key_zdfddm 
    411          avs_tm  (:,:,:)        = avs  (:,:,:)        * fse3w(:,:,:)   
    412 # endif 
    413 #if defined key_ldfslp 
     399         un_tm   (:,:,:)        = un   (:,:,:)        * e3u_n(:,:,:)  
     400         vn_tm   (:,:,:)        = vn   (:,:,:)        * e3v_n(:,:,:)  
     401         tsn_tm  (:,:,:,jp_tem) = tsn  (:,:,:,jp_tem) * e3t_n(:,:,:)   
     402         tsn_tm  (:,:,:,jp_sal) = tsn  (:,:,:,jp_sal) * e3t_n(:,:,:)   
     403         rhop_tm (:,:,:)        = rhop (:,:,:)        * e3t_n(:,:,:)   
     404         avt_tm  (:,:,:)        = avt  (:,:,:)        * e3w_n(:,:,:)   
     405# if defined key_zdfddm 
     406         avs_tm  (:,:,:)        = avs  (:,:,:)        * e3w_n(:,:,:)   
     407# endif 
     408      IF( l_ldfslp ) THEN 
     409         uslp_tm (:,:,:)        = uslp (:,:,:) 
     410         vslp_tm (:,:,:)        = vslp (:,:,:) 
    414411         wslpi_tm(:,:,:)        = wslpi(:,:,:)  
    415412         wslpj_tm(:,:,:)        = wslpj(:,:,:) 
    416          uslp_tm (:,:,:)        = uslp (:,:,:) 
    417          vslp_tm (:,:,:)        = vslp (:,:,:) 
    418 #endif 
     413      ENDIF 
    419414      ! 
    420415      sshb_hold  (:,:) = sshn  (:,:) 
     
    451446      !!                    
    452447      !! ** Purpose :   compute the after ssh (ssha), the now vertical velocity 
    453       !!              and update the now vertical coordinate (lk_vvl=T). 
     448      !!              and update the now vertical coordinate (ln_linssh=F). 
    454449      !! 
    455450      !! ** Method  : - Using the incompressibility hypothesis, the vertical  
     
    460455      !! ** action  :   ssha    : after sea surface height 
    461456      !!                wn      : now vertical velocity 
    462       !!                sshu_a, sshv_a, sshf_a  : after sea surface height (lk_vvl=T) 
     457      !!                sshu_a, sshv_a, sshf_a  : after sea surface height (ln_linssh=F) 
    463458      !! 
    464459      !! Reference  : Leclair, M., and G. Madec, 2009, Ocean Modelling. 
    465460      !!---------------------------------------------------------------------- 
    466       ! 
    467461      INTEGER, INTENT(in) ::   kt   ! time step 
    468462      ! 
     
    475469      ! 
    476470      ! Allocate temporary workspace 
    477       CALL wrk_alloc( jpi, jpj, zhdiv ) 
     471      CALL wrk_alloc( jpi,jpj,  zhdiv ) 
    478472 
    479473      IF( kt == nittrc000 ) THEN 
     
    487481      ENDIF 
    488482      ! 
    489       CALL div_cur( kt )                              ! Horizontal divergence & Relative vorticity 
     483!!gm BUG here !   hdivn will include the runoff divergence at the wrong timestep !!!! 
     484      CALL div_hor( kt )                              ! Horizontal divergence & Relative vorticity 
    490485      ! 
    491486      z2dt = 2._wp * rdt                              ! set time step size (Euler/Leapfrog) 
     
    497492      zhdiv(:,:) = 0._wp 
    498493      DO jk = 1, jpkm1                                 ! Horizontal divergence of barotropic transports 
    499         zhdiv(:,:) = zhdiv(:,:) + fse3t(:,:,jk) * hdivn(:,:,jk) 
     494        zhdiv(:,:) = zhdiv(:,:) + e3t_n(:,:,jk) * hdivn(:,:,jk) 
    500495      END DO 
    501496      !                                                ! Sea surface elevation time stepping 
     
    515510#endif 
    516511#endif 
    517  
    518  
     512      ! 
    519513      !                                           !------------------------------! 
    520514      !                                           !     Now Vertical Velocity    ! 
     
    522516      z1_2dt = 1.e0 / z2dt 
    523517      DO jk = jpkm1, 1, -1                             ! integrate from the bottom the hor. divergence 
    524          ! - ML - need 3 lines here because replacement of fse3t by its expression yields too long lines otherwise 
    525          wn(:,:,jk) = wn(:,:,jk+1) -   fse3t_n(:,:,jk) * hdivn(:,:,jk)        & 
    526             &                      - ( fse3t_a(:,:,jk) - fse3t_b(:,:,jk) )    & 
     518         ! - ML - need 3 lines here because replacement of e3t by its expression yields too long lines otherwise 
     519         wn(:,:,jk) = wn(:,:,jk+1) -   e3t_n(:,:,jk) * hdivn(:,:,jk)        & 
     520            &                      - ( e3t_a(:,:,jk) - e3t_b(:,:,jk) )    & 
    527521            &                         * tmask(:,:,jk) * z1_2dt 
    528522#if defined key_bdy 
     
    530524#endif 
    531525      END DO 
    532  
    533       ! 
    534       CALL wrk_dealloc( jpi, jpj, zhdiv ) 
     526      ! 
     527      CALL wrk_dealloc( jpi,jpj,   zhdiv ) 
    535528      ! 
    536529      IF( nn_timing == 1 )  CALL timing_stop('trc_sub_ssh') 
    537530      ! 
    538531   END SUBROUTINE trc_sub_ssh 
     532 
    539533 
    540534   INTEGER FUNCTION trc_sub_alloc() 
     
    551545         &      sshn_temp(jpi,jpj)          ,  sshb_temp(jpi,jpj) ,      & 
    552546         &      ssha_temp(jpi,jpj)          ,                           & 
    553 #if defined key_ldfslp 
    554          &      wslpi_temp(jpi,jpj,jpk)     ,  wslpj_temp(jpi,jpj,jpk),  & 
    555          &      uslp_temp(jpi,jpj,jpk)      ,  vslp_temp(jpi,jpj,jpk),   & 
    556 #endif 
    557547#if defined key_trabbl 
    558548         &      ahu_bbl_temp(jpi,jpj)       ,  ahv_bbl_temp(jpi,jpj),    & 
     
    569559# endif 
    570560         &      hdivn_temp(jpi,jpj,jpk)     ,  hdivb_temp(jpi,jpj,jpk),  & 
    571          &      rotn_temp(jpi,jpj,jpk)      ,  rotb_temp(jpi,jpj,jpk),   & 
    572561         &      un_tm(jpi,jpj,jpk)          ,  vn_tm(jpi,jpj,jpk)  ,     & 
    573562         &      avt_tm(jpi,jpj,jpk)                                ,     & 
     
    577566         &      emp_b_hold(jpi,jpj)         ,                            & 
    578567         &      hmld_tm(jpi,jpj)            ,  qsr_tm(jpi,jpj) ,         & 
    579 #if defined key_ldfslp 
    580          &      wslpi_tm(jpi,jpj,jpk)       ,  wslpj_tm(jpi,jpj,jpk),    & 
    581          &      uslp_tm(jpi,jpj,jpk)        ,  vslp_tm(jpi,jpj,jpk),     & 
    582 #endif 
    583568#if defined key_trabbl 
    584569         &      ahu_bbl_tm(jpi,jpj)         ,  ahv_bbl_tm(jpi,jpj),      & 
    585570         &      utr_bbl_tm(jpi,jpj)         ,  vtr_bbl_tm(jpi,jpj),      & 
    586571#endif 
    587          &      rnf_tm(jpi,jpj)             ,  h_rnf_tm(jpi,jpj) ,       & 
    588          &                                    STAT=trc_sub_alloc )   
     572         &      rnf_tm(jpi,jpj)             ,  h_rnf_tm(jpi,jpj) , STAT=trc_sub_alloc )   
     573      ! 
    589574      IF( trc_sub_alloc /= 0 )   CALL ctl_warn('trc_sub_alloc: failed to allocate arrays') 
    590  
     575      ! 
     576      IF( l_ldfslp ) THEN 
     577         ALLOCATE( uslp_temp(jpi,jpj,jpk)   ,  wslpi_temp(jpi,jpj,jpk),      & 
     578            &      vslp_temp(jpi,jpj,jpk)   ,  wslpj_temp(jpi,jpj,jpk),      & 
     579            &      uslp_tm  (jpi,jpj,jpk)   ,  wslpi_tm  (jpi,jpj,jpk),      & 
     580            &      vslp_tm  (jpi,jpj,jpk)   ,  wslpj_tm  (jpi,jpj,jpk),  STAT=trc_sub_alloc ) 
     581      ENDIF 
     582      ! 
     583      IF( trc_sub_alloc /= 0 )   CALL ctl_warn('trc_sub_alloc: failed to allocate ldf_slp arrays') 
    591584      ! 
    592585   END FUNCTION trc_sub_alloc 
     
    603596      WRITE(*,*) 'trc_sub_ini: You should not have seen this print! error?', kt 
    604597   END SUBROUTINE trc_sub_ini 
    605  
    606598#endif 
    607599 
Note: See TracChangeset for help on using the changeset viewer.