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 990 for branches/dev_003_CPL/NEMO/LIM_SRC_3/limadv.F90 – NEMO

Ignore:
Timestamp:
2008-05-23T16:38:21+02:00 (16 years ago)
Author:
smasson
Message:

dev_003_CPL: to the trunk , see ticket #155

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/dev_003_CPL/NEMO/LIM_SRC_3/limadv.F90

    r888 r990  
    6666         pdf ,       &  ! ??? 
    6767         pcrh           ! = 1. : lim_adv_x is called before lim_adv_y 
    68          !              ! = 0. : lim_adv_x is called after  lim_adv_y 
     68      !              ! = 0. : lim_adv_x is called after  lim_adv_y 
    6969      REAL(wp), DIMENSION(jpi,jpj), INTENT(in)  ::  & 
    7070         put            ! i-direction ice velocity at ocean U-point (m/s) 
     
    114114      !  Calculate fluxes and moments between boxes i<-->i+1               
    115115      DO jj = 1, jpj                      !  Flux from i to i+1 WHEN u GT 0  
    116 !i bug   DO ji = 1, jpim1  
    117 !i    DO jj = 1, jpj                      !  Flux from i to i+1 WHEN u GT 0  
     116         !i bug   DO ji = 1, jpim1  
     117         !i    DO jj = 1, jpj                      !  Flux from i to i+1 WHEN u GT 0  
    118118         DO ji = 1, jpi 
    119119            zbet(ji,jj)  =  MAX( rzero, SIGN( rone, put(ji,jj) ) ) 
     
    142142 
    143143      DO jj = 1, jpjm1                      !  Flux from i+1 to i when u LT 0. 
    144 !i    DO jj = 1, fs_jpjm1                   !  Flux from i+1 to i when u LT 0. 
     144         !i    DO jj = 1, fs_jpjm1                   !  Flux from i+1 to i when u LT 0. 
    145145         DO ji = 1, fs_jpim1 
    146146            zalf          = MAX( rzero, -put(ji,jj) ) * zrdt * e2u(ji,jj) / psm(ji+1,jj)  
     
    228228      CALL lbc_lnk( psxy, 'T', 1. ) 
    229229 
    230      IF(ln_ctl) THEN 
     230      IF(ln_ctl) THEN 
    231231         CALL prt_ctl(tab2d_1=psm  , clinfo1=' lim_adv_x: psm  :', tab2d_2=ps0 , clinfo2=' ps0  : ') 
    232232         CALL prt_ctl(tab2d_1=psx  , clinfo1=' lim_adv_x: psx  :', tab2d_2=psxx, clinfo2=' psxx : ') 
    233233         CALL prt_ctl(tab2d_1=psy  , clinfo1=' lim_adv_x: psy  :', tab2d_2=psyy, clinfo2=' psyy : ') 
    234234         CALL prt_ctl(tab2d_1=psxy , clinfo1=' lim_adv_x: psxy :') 
    235      ENDIF 
     235      ENDIF 
    236236 
    237237   END SUBROUTINE lim_adv_x 
     
    260260         pdf,        &  ! ??? 
    261261         pcrh           ! = 1. : lim_adv_x is called before lim_adv_y 
    262          !              ! = 0. : lim_adv_x is called after  lim_adv_y 
     262      !              ! = 0. : lim_adv_x is called after  lim_adv_y 
    263263      REAL(wp), DIMENSION(jpi,jpj), INTENT(in)  :: & 
    264264         pvt            ! j-direction ice velocity at ocean V-point (m/s) 
     
    285285      zrdt = rdt_ice * pdf ! If ice drift field is too fast, use an appropriate time step for advection. 
    286286 
    287        DO jj = 1, jpj 
    288           DO ji = 1, jpi 
    289              zslpmax = MAX( rzero, ps0(ji,jj) ) 
    290              zs1max  = 1.5 * zslpmax 
    291              zs1new  = MIN( zs1max, MAX( -zs1max, psy(ji,jj) ) ) 
    292              zs2new  = MIN(  ( 2.0 * zslpmax - 0.3334 * ABS( zs1new ) ),   & 
    293                 &             MAX( ABS( zs1new )-zslpmax, psyy(ji,jj) )  ) 
    294              zin0    = ( 1.0 - MAX( rzero, sign ( rone, -zslpmax) ) ) * tms(ji,jj)   ! Case of empty boxes & Apply mask 
    295              ps0 (ji,jj) = zslpmax   
    296              psx (ji,jj)  = psx (ji,jj) * zin0 
    297              psxx(ji,jj)  = psxx(ji,jj) * zin0 
    298              psy (ji,jj) = zs1new * zin0 
    299              psyy(ji,jj) = zs2new * zin0 
    300              psxy(ji,jj) = MIN( zslpmax, MAX( -zslpmax, psxy(ji,jj) ) ) * zin0 
    301           END DO 
    302        END DO 
    303  
    304        !  Initialize volumes of boxes (=area if adv_x first called, =psm otherwise) 
    305        psm (:,:)  = MAX( pcrh * area(:,:) + ( 1.0 - pcrh ) * psm(:,:) , epsi20 ) 
    306  
    307        !  Calculate fluxes and moments between boxes j<-->j+1               
    308 !!bug  DO jj = 2, jpjm1 
    309        DO jj = 1, jpj 
    310           DO ji = 1, jpi 
    311 !!bug     DO ji = 1, jpim1 
    312              !  Flux from j to j+1 WHEN v GT 0    
    313              zbet(ji,jj)  =  MAX( rzero, SIGN( rone, pvt(ji,jj) ) ) 
    314              zalf         =  MAX( rzero, pvt(ji,jj) ) * zrdt * e1v(ji,jj) / psm(ji,jj) 
    315              zalfq        =  zalf * zalf 
    316              zalf1        =  1.0 - zalf 
    317              zalf1q       =  zalf1 * zalf1 
    318              zfm (ji,jj)  =  zalf  * psm(ji,jj) 
    319              zf0 (ji,jj)  =  zalf  * ( ps0(ji,jj) + zalf1 * ( psy(ji,jj)  + (zalf1-zalf) * psyy(ji,jj)  ) )  
    320              zfy (ji,jj)  =  zalfq *( psy(ji,jj) + 3.0*zalf1*psyy(ji,jj) ) 
    321              zfyy(ji,jj)  =  zalf  * zalfq * psyy(ji,jj) 
    322              zfx (ji,jj)  =  zalf  * ( psx(ji,jj) + zalf1 * psxy(ji,jj) ) 
    323              zfxy(ji,jj)  =  zalfq * psxy(ji,jj) 
    324              zfxx(ji,jj)  =  zalf  * psxx(ji,jj) 
    325  
    326              !  Readjust moments remaining in the box. 
    327              psm (ji,jj)  =  psm (ji,jj) - zfm(ji,jj) 
    328              ps0 (ji,jj)  =  ps0 (ji,jj) - zf0(ji,jj) 
    329              psy (ji,jj)  =  zalf1q * ( psy(ji,jj) -3.0 * zalf * psyy(ji,jj) ) 
    330              psyy(ji,jj)  =  zalf1 * zalf1q * psyy(ji,jj) 
    331              psx (ji,jj)  =  psx (ji,jj) - zfx(ji,jj) 
    332              psxx(ji,jj)  =  psxx(ji,jj) - zfxx(ji,jj) 
    333              psxy(ji,jj)  =  zalf1q * psxy(ji,jj) 
    334           END DO 
    335        END DO 
    336  
    337        DO jj = 1, jpjm1                   !  Flux from j+1 to j when v LT 0. 
    338           DO ji = 1, jpi 
    339 !i     DO jj = 1, jpjm1                   !  Flux from j+1 to j when v LT 0. 
    340 !i        DO ji = 2, jpim1 
    341              zalf          = ( MAX(rzero, -pvt(ji,jj) ) * zrdt * e1v(ji,jj) ) / psm(ji,jj+1)  
    342              zalg  (ji,jj) = zalf 
    343              zalfq         = zalf * zalf 
    344              zalf1         = 1.0 - zalf 
    345              zalg1 (ji,jj) = zalf1 
    346              zalf1q        = zalf1 * zalf1 
    347              zalg1q(ji,jj) = zalf1q 
    348              zfm   (ji,jj) = zfm (ji,jj) + zalf  * psm(ji,jj+1) 
    349              zf0   (ji,jj) = zf0 (ji,jj) + zalf  * ( ps0(ji,jj+1) - zalf1 * (psy(ji,jj+1) - (zalf1 - zalf ) * psyy(ji,jj+1) ) ) 
    350              zfy   (ji,jj) = zfy (ji,jj) + zalfq * ( psy(ji,jj+1) - 3.0 * zalf1 * psyy(ji,jj+1) ) 
    351              zfyy  (ji,jj) = zfyy(ji,jj) + zalf  * zalfq * psyy(ji,jj+1) 
    352              zfx   (ji,jj) = zfx (ji,jj) + zalf  * ( psx(ji,jj+1) - zalf1 * psxy(ji,jj+1) ) 
    353              zfxy  (ji,jj) = zfxy(ji,jj) + zalfq * psxy(ji,jj+1) 
    354              zfxx  (ji,jj) = zfxx(ji,jj) + zalf  * psxx(ji,jj+1) 
    355           END DO 
    356        END DO 
    357   
    358        !  Readjust moments remaining in the box.  
    359        DO jj = 2, jpj 
    360           DO ji = 1, jpi 
    361              zbt  =         zbet(ji,jj-1) 
    362              zbt1 = ( 1.0 - zbet(ji,jj-1) ) 
    363              psm (ji,jj) = zbt * psm(ji,jj) + zbt1 * ( psm(ji,jj) - zfm(ji,jj-1) ) 
    364              ps0 (ji,jj) = zbt * ps0(ji,jj) + zbt1 * ( ps0(ji,jj) - zf0(ji,jj-1) ) 
    365              psy (ji,jj) = zalg1q(ji,jj-1) * ( psy(ji,jj) + 3.0 * zalg(ji,jj-1) * psyy(ji,jj) ) 
    366              psyy(ji,jj) = zalg1 (ji,jj-1)  * zalg1q(ji,jj-1) * psyy(ji,jj) 
    367              psx (ji,jj) = zbt * psx (ji,jj) + zbt1 * ( psx (ji,jj) - zfx (ji,jj-1) ) 
    368              psxx(ji,jj) = zbt * psxx(ji,jj) + zbt1 * ( psxx(ji,jj) - zfxx(ji,jj-1) ) 
    369              psxy(ji,jj) = zalg1q(ji,jj-1) * psxy(ji,jj) 
    370           END DO 
    371        END DO 
    372  
    373        !   Put the temporary moments into appropriate neighboring boxes.     
    374        DO jj = 2, jpjm1                    !   Flux from j to j+1 IF v GT 0. 
    375           DO ji = 1, jpi 
    376              zbt  =         zbet(ji,jj-1) 
    377              zbt1 = ( 1.0 - zbet(ji,jj-1) ) 
    378              psm(ji,jj)  = zbt * ( psm(ji,jj) + zfm(ji,jj-1) ) + zbt1 * psm(ji,jj)  
    379              zalf        = zbt * zfm(ji,jj-1) / psm(ji,jj)  
    380              zalf1       = 1.0 - zalf 
    381              ztemp       = zalf * ps0(ji,jj) - zalf1 * zf0(ji,jj-1) 
    382              ps0(ji,jj)  = zbt * (ps0(ji,jj) + zf0(ji,jj-1)) + zbt1 * ps0(ji,jj) 
    383  
    384              psy(ji,jj)  = zbt  * ( zalf * zfy(ji,jj-1) + zalf1 * psy(ji,jj) + 3.0 * ztemp )   & 
    385                 &        + zbt1 * psy(ji,jj)   
    386  
    387              psyy(ji,jj) = zbt  * ( zalf * zalf * zfyy(ji,jj-1) + zalf1 * zalf1 * psyy(ji,jj)                             & 
    388                 &                 + 5.0 * ( zalf * zalf1 * ( psy(ji,jj) - zfy(ji,jj-1) ) - ( zalf1 - zalf ) * ztemp ) )   &  
    389                 &        + zbt1 * psyy(ji,jj) 
    390  
    391              psxy(ji,jj) = zbt  * ( zalf * zfxy(ji,jj-1) + zalf1 * psxy(ji,jj)              & 
    392                                   + 3.0 * (- zalf1 * zfx(ji,jj-1) + zalf * psx(ji,jj) ) )   & 
    393                          + zbt1 * psxy(ji,jj) 
    394              psx (ji,jj) = zbt * ( psx (ji,jj) + zfx (ji,jj-1) ) + zbt1 * psx (ji,jj) 
    395              psxx(ji,jj) = zbt * ( psxx(ji,jj) + zfxx(ji,jj-1) ) + zbt1 * psxx(ji,jj) 
    396           END DO 
    397        END DO 
    398  
    399        DO jj = 2, jpjm1                   !  Flux from j+1 to j IF v LT 0. 
    400           DO ji = 1, jpi 
    401              zbt  =         zbet(ji,jj) 
    402              zbt1 = ( 1.0 - zbet(ji,jj) ) 
    403              psm(ji,jj)  = zbt * psm(ji,jj) + zbt1 * ( psm(ji,jj) + zfm(ji,jj) ) 
    404              zalf        = zbt1 * zfm(ji,jj) / psm(ji,jj) 
    405              zalf1       = 1.0 - zalf 
    406              ztemp       = -zalf * ps0(ji,jj) + zalf1 * zf0(ji,jj) 
    407              ps0(ji,jj)  = zbt * ps0(ji,jj) + zbt1 * ( ps0(ji,jj) + zf0(ji,jj) ) 
    408              psy(ji,jj)  = zbt  * psy(ji,jj)  & 
    409                 &        + zbt1 * ( zalf*zfy(ji,jj) + zalf1 * psy(ji,jj) + 3.0 * ztemp ) 
    410              psyy(ji,jj) = zbt  * psyy(ji,jj)  & 
    411                 &        + zbt1 * ( zalf * zalf * zfyy(ji,jj) + zalf1 * zalf1 * psyy(ji,jj)   & 
    412                 &                 + 5.0 *( zalf *zalf1 *( -psy(ji,jj) + zfy(ji,jj) ) + ( zalf1 - zalf ) * ztemp ) ) 
    413              psxy(ji,jj) = zbt  * psxy(ji,jj)   & 
    414                 &        + zbt1 * ( zalf * zfxy(ji,jj) + zalf1 * psxy(ji,jj)   & 
    415                 &                 + 3.0 * ( zalf1 * zfx(ji,jj) - zalf * psx(ji,jj) ) ) 
    416              psx(ji,jj)  = zbt * psx (ji,jj) + zbt1 * ( psx (ji,jj) + zfx (ji,jj) ) 
    417              psxx(ji,jj) = zbt * psxx(ji,jj) + zbt1 * ( psxx(ji,jj) + zfxx(ji,jj) ) 
    418           END DO 
    419        END DO 
     287      DO jj = 1, jpj 
     288         DO ji = 1, jpi 
     289            zslpmax = MAX( rzero, ps0(ji,jj) ) 
     290            zs1max  = 1.5 * zslpmax 
     291            zs1new  = MIN( zs1max, MAX( -zs1max, psy(ji,jj) ) ) 
     292            zs2new  = MIN(  ( 2.0 * zslpmax - 0.3334 * ABS( zs1new ) ),   & 
     293               &             MAX( ABS( zs1new )-zslpmax, psyy(ji,jj) )  ) 
     294            zin0    = ( 1.0 - MAX( rzero, sign ( rone, -zslpmax) ) ) * tms(ji,jj)   ! Case of empty boxes & Apply mask 
     295            ps0 (ji,jj) = zslpmax   
     296            psx (ji,jj)  = psx (ji,jj) * zin0 
     297            psxx(ji,jj)  = psxx(ji,jj) * zin0 
     298            psy (ji,jj) = zs1new * zin0 
     299            psyy(ji,jj) = zs2new * zin0 
     300            psxy(ji,jj) = MIN( zslpmax, MAX( -zslpmax, psxy(ji,jj) ) ) * zin0 
     301         END DO 
     302      END DO 
     303 
     304      !  Initialize volumes of boxes (=area if adv_x first called, =psm otherwise) 
     305      psm (:,:)  = MAX( pcrh * area(:,:) + ( 1.0 - pcrh ) * psm(:,:) , epsi20 ) 
     306 
     307      !  Calculate fluxes and moments between boxes j<-->j+1               
     308      !!bug  DO jj = 2, jpjm1 
     309      DO jj = 1, jpj 
     310         DO ji = 1, jpi 
     311            !!bug     DO ji = 1, jpim1 
     312            !  Flux from j to j+1 WHEN v GT 0    
     313            zbet(ji,jj)  =  MAX( rzero, SIGN( rone, pvt(ji,jj) ) ) 
     314            zalf         =  MAX( rzero, pvt(ji,jj) ) * zrdt * e1v(ji,jj) / psm(ji,jj) 
     315            zalfq        =  zalf * zalf 
     316            zalf1        =  1.0 - zalf 
     317            zalf1q       =  zalf1 * zalf1 
     318            zfm (ji,jj)  =  zalf  * psm(ji,jj) 
     319            zf0 (ji,jj)  =  zalf  * ( ps0(ji,jj) + zalf1 * ( psy(ji,jj)  + (zalf1-zalf) * psyy(ji,jj)  ) )  
     320            zfy (ji,jj)  =  zalfq *( psy(ji,jj) + 3.0*zalf1*psyy(ji,jj) ) 
     321            zfyy(ji,jj)  =  zalf  * zalfq * psyy(ji,jj) 
     322            zfx (ji,jj)  =  zalf  * ( psx(ji,jj) + zalf1 * psxy(ji,jj) ) 
     323            zfxy(ji,jj)  =  zalfq * psxy(ji,jj) 
     324            zfxx(ji,jj)  =  zalf  * psxx(ji,jj) 
     325 
     326            !  Readjust moments remaining in the box. 
     327            psm (ji,jj)  =  psm (ji,jj) - zfm(ji,jj) 
     328            ps0 (ji,jj)  =  ps0 (ji,jj) - zf0(ji,jj) 
     329            psy (ji,jj)  =  zalf1q * ( psy(ji,jj) -3.0 * zalf * psyy(ji,jj) ) 
     330            psyy(ji,jj)  =  zalf1 * zalf1q * psyy(ji,jj) 
     331            psx (ji,jj)  =  psx (ji,jj) - zfx(ji,jj) 
     332            psxx(ji,jj)  =  psxx(ji,jj) - zfxx(ji,jj) 
     333            psxy(ji,jj)  =  zalf1q * psxy(ji,jj) 
     334         END DO 
     335      END DO 
     336 
     337      DO jj = 1, jpjm1                   !  Flux from j+1 to j when v LT 0. 
     338         DO ji = 1, jpi 
     339            !i     DO jj = 1, jpjm1                   !  Flux from j+1 to j when v LT 0. 
     340            !i        DO ji = 2, jpim1 
     341            zalf          = ( MAX(rzero, -pvt(ji,jj) ) * zrdt * e1v(ji,jj) ) / psm(ji,jj+1)  
     342            zalg  (ji,jj) = zalf 
     343            zalfq         = zalf * zalf 
     344            zalf1         = 1.0 - zalf 
     345            zalg1 (ji,jj) = zalf1 
     346            zalf1q        = zalf1 * zalf1 
     347            zalg1q(ji,jj) = zalf1q 
     348            zfm   (ji,jj) = zfm (ji,jj) + zalf  * psm(ji,jj+1) 
     349            zf0   (ji,jj) = zf0 (ji,jj) + zalf  * ( ps0(ji,jj+1) - zalf1 * (psy(ji,jj+1) - (zalf1 - zalf ) * psyy(ji,jj+1) ) ) 
     350            zfy   (ji,jj) = zfy (ji,jj) + zalfq * ( psy(ji,jj+1) - 3.0 * zalf1 * psyy(ji,jj+1) ) 
     351            zfyy  (ji,jj) = zfyy(ji,jj) + zalf  * zalfq * psyy(ji,jj+1) 
     352            zfx   (ji,jj) = zfx (ji,jj) + zalf  * ( psx(ji,jj+1) - zalf1 * psxy(ji,jj+1) ) 
     353            zfxy  (ji,jj) = zfxy(ji,jj) + zalfq * psxy(ji,jj+1) 
     354            zfxx  (ji,jj) = zfxx(ji,jj) + zalf  * psxx(ji,jj+1) 
     355         END DO 
     356      END DO 
     357 
     358      !  Readjust moments remaining in the box.  
     359      DO jj = 2, jpj 
     360         DO ji = 1, jpi 
     361            zbt  =         zbet(ji,jj-1) 
     362            zbt1 = ( 1.0 - zbet(ji,jj-1) ) 
     363            psm (ji,jj) = zbt * psm(ji,jj) + zbt1 * ( psm(ji,jj) - zfm(ji,jj-1) ) 
     364            ps0 (ji,jj) = zbt * ps0(ji,jj) + zbt1 * ( ps0(ji,jj) - zf0(ji,jj-1) ) 
     365            psy (ji,jj) = zalg1q(ji,jj-1) * ( psy(ji,jj) + 3.0 * zalg(ji,jj-1) * psyy(ji,jj) ) 
     366            psyy(ji,jj) = zalg1 (ji,jj-1)  * zalg1q(ji,jj-1) * psyy(ji,jj) 
     367            psx (ji,jj) = zbt * psx (ji,jj) + zbt1 * ( psx (ji,jj) - zfx (ji,jj-1) ) 
     368            psxx(ji,jj) = zbt * psxx(ji,jj) + zbt1 * ( psxx(ji,jj) - zfxx(ji,jj-1) ) 
     369            psxy(ji,jj) = zalg1q(ji,jj-1) * psxy(ji,jj) 
     370         END DO 
     371      END DO 
     372 
     373      !   Put the temporary moments into appropriate neighboring boxes.     
     374      DO jj = 2, jpjm1                    !   Flux from j to j+1 IF v GT 0. 
     375         DO ji = 1, jpi 
     376            zbt  =         zbet(ji,jj-1) 
     377            zbt1 = ( 1.0 - zbet(ji,jj-1) ) 
     378            psm(ji,jj)  = zbt * ( psm(ji,jj) + zfm(ji,jj-1) ) + zbt1 * psm(ji,jj)  
     379            zalf        = zbt * zfm(ji,jj-1) / psm(ji,jj)  
     380            zalf1       = 1.0 - zalf 
     381            ztemp       = zalf * ps0(ji,jj) - zalf1 * zf0(ji,jj-1) 
     382            ps0(ji,jj)  = zbt * (ps0(ji,jj) + zf0(ji,jj-1)) + zbt1 * ps0(ji,jj) 
     383 
     384            psy(ji,jj)  = zbt  * ( zalf * zfy(ji,jj-1) + zalf1 * psy(ji,jj) + 3.0 * ztemp )   & 
     385               &        + zbt1 * psy(ji,jj)   
     386 
     387            psyy(ji,jj) = zbt  * ( zalf * zalf * zfyy(ji,jj-1) + zalf1 * zalf1 * psyy(ji,jj)                             & 
     388               &                 + 5.0 * ( zalf * zalf1 * ( psy(ji,jj) - zfy(ji,jj-1) ) - ( zalf1 - zalf ) * ztemp ) )   &  
     389               &        + zbt1 * psyy(ji,jj) 
     390 
     391            psxy(ji,jj) = zbt  * ( zalf * zfxy(ji,jj-1) + zalf1 * psxy(ji,jj)              & 
     392               + 3.0 * (- zalf1 * zfx(ji,jj-1) + zalf * psx(ji,jj) ) )   & 
     393               + zbt1 * psxy(ji,jj) 
     394            psx (ji,jj) = zbt * ( psx (ji,jj) + zfx (ji,jj-1) ) + zbt1 * psx (ji,jj) 
     395            psxx(ji,jj) = zbt * ( psxx(ji,jj) + zfxx(ji,jj-1) ) + zbt1 * psxx(ji,jj) 
     396         END DO 
     397      END DO 
     398 
     399      DO jj = 2, jpjm1                   !  Flux from j+1 to j IF v LT 0. 
     400         DO ji = 1, jpi 
     401            zbt  =         zbet(ji,jj) 
     402            zbt1 = ( 1.0 - zbet(ji,jj) ) 
     403            psm(ji,jj)  = zbt * psm(ji,jj) + zbt1 * ( psm(ji,jj) + zfm(ji,jj) ) 
     404            zalf        = zbt1 * zfm(ji,jj) / psm(ji,jj) 
     405            zalf1       = 1.0 - zalf 
     406            ztemp       = -zalf * ps0(ji,jj) + zalf1 * zf0(ji,jj) 
     407            ps0(ji,jj)  = zbt * ps0(ji,jj) + zbt1 * ( ps0(ji,jj) + zf0(ji,jj) ) 
     408            psy(ji,jj)  = zbt  * psy(ji,jj)  & 
     409               &        + zbt1 * ( zalf*zfy(ji,jj) + zalf1 * psy(ji,jj) + 3.0 * ztemp ) 
     410            psyy(ji,jj) = zbt  * psyy(ji,jj)  & 
     411               &        + zbt1 * ( zalf * zalf * zfyy(ji,jj) + zalf1 * zalf1 * psyy(ji,jj)   & 
     412               &                 + 5.0 *( zalf *zalf1 *( -psy(ji,jj) + zfy(ji,jj) ) + ( zalf1 - zalf ) * ztemp ) ) 
     413            psxy(ji,jj) = zbt  * psxy(ji,jj)   & 
     414               &        + zbt1 * ( zalf * zfxy(ji,jj) + zalf1 * psxy(ji,jj)   & 
     415               &                 + 3.0 * ( zalf1 * zfx(ji,jj) - zalf * psx(ji,jj) ) ) 
     416            psx(ji,jj)  = zbt * psx (ji,jj) + zbt1 * ( psx (ji,jj) + zfx (ji,jj) ) 
     417            psxx(ji,jj) = zbt * psxx(ji,jj) + zbt1 * ( psxx(ji,jj) + zfxx(ji,jj) ) 
     418         END DO 
     419      END DO 
    420420 
    421421      !-- Lateral boundary conditions 
     
    428428      CALL lbc_lnk( psxy, 'T', 1. ) 
    429429 
    430      IF(ln_ctl) THEN 
     430      IF(ln_ctl) THEN 
    431431         CALL prt_ctl(tab2d_1=psm  , clinfo1=' lim_adv_y: psm  :', tab2d_2=ps0 , clinfo2=' ps0  : ') 
    432432         CALL prt_ctl(tab2d_1=psx  , clinfo1=' lim_adv_y: psx  :', tab2d_2=psxx, clinfo2=' psxx : ') 
    433433         CALL prt_ctl(tab2d_1=psy  , clinfo1=' lim_adv_y: psy  :', tab2d_2=psyy, clinfo2=' psyy : ') 
    434434         CALL prt_ctl(tab2d_1=psxy , clinfo1=' lim_adv_y: psxy :') 
    435      ENDIF 
     435      ENDIF 
    436436 
    437437   END SUBROUTINE lim_adv_y 
Note: See TracChangeset for help on using the changeset viewer.