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 642 for trunk/NEMO – NEMO

Changeset 642 for trunk/NEMO


Ignore:
Timestamp:
2007-03-15T12:17:58+01:00 (17 years ago)
Author:
opalod
Message:

nemo_v2_bugfix_028 : CT : correction to be able to compile without compilation stop when using key_zco cpp key

Location:
trunk/NEMO/OPA_SRC
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/OPA_SRC/DOM/domvvl.F90

    r592 r642  
    3232   PUBLIC dom_vvl_ssh    ! called by trazdf.F90 
    3333   PUBLIC dom_vvl        ! called by istate.F90 and step.F90 
     34   PUBLIC sfe3ini        !  
     35   PUBLIC sfe3           !  
    3436 
    3537   !! * Module variables 
     
    299301   END SUBROUTINE dom_vvl_ssh 
    300302 
     303   FUNCTION sfe3( zssh, gridp ) 
     304      !!---------------------------------------------------------------------- 
     305      !!                ***  ROUTINE sfe3  *** 
     306      !!                    
     307      !! ** Purpose :  compute vertical scale factor at each time step 
     308      !!---------------------------------------------------------------------- 
     309      !! * Arguments 
     310      CHARACTER(LEN=1)                , INTENT( in ) :: gridp   ! grid point type 
     311      REAL(wp), DIMENSION(jpi,jpj)    , INTENT( in ) :: zssh    ! 2D workspace 
     312      REAL(wp), DIMENSION(jpi,jpj,jpk)               :: sfe3    ! 3D workspace 
     313 
     314      !! * Local declarations 
     315      INTEGER  ::   jk                                      ! dummy loop indices 
     316      !!---------------------------------------------------------------------- 
     317 
     318      SELECT CASE (gridp) 
     319 
     320      CASE ('U') 
     321         ! 
     322         DO jk = 1, jpk 
     323            sfe3(:,:,jk)  = fsve3u(:,:,jk) * ( 1 + zssh(:,:) * muu(:,:,jk) ) 
     324         ENDDO 
     325 
     326      CASE ('V') 
     327         ! 
     328         DO jk = 1, jpk 
     329            sfe3(:,:,jk)  = fsve3v(:,:,jk) * ( 1 + zssh(:,:) * muv(:,:,jk) ) 
     330         ENDDO 
     331 
     332      CASE ('T') 
     333         ! 
     334         DO jk = 1, jpk 
     335            sfe3(:,:,jk)  = fsve3t(:,:,jk) * ( 1 + zssh(:,:) * mut(:,:,jk) ) 
     336         ENDDO 
     337 
     338      END SELECT 
     339 
     340      END FUNCTION sfe3 
     341 
     342   FUNCTION sfe3ini( gridp ) 
     343      !!---------------------------------------------------------------------- 
     344      !!                ***  ROUTINE sfe3  *** 
     345      !!                    
     346      !! ** Purpose :  affect the appropriate vertical scale factor. It is done 
     347      !!               to avoid compiling error when using key_zco cpp key 
     348      !!---------------------------------------------------------------------- 
     349      !! * Arguments 
     350      CHARACTER(LEN=1)                , INTENT( in ) :: gridp      ! grid point type 
     351      REAL(wp), DIMENSION(jpi,jpj,jpk)               :: sfe3ini    ! 3D workspace 
     352      !!---------------------------------------------------------------------- 
     353 
     354      SELECT CASE (gridp) 
     355 
     356      CASE ('U') 
     357         ! 
     358         sfe3ini(:,:,:)  = fse3u(:,:,:) 
     359 
     360      CASE ('V') 
     361         ! 
     362         sfe3ini(:,:,:)  = fse3v(:,:,:) 
     363 
     364      CASE ('T') 
     365         ! 
     366         sfe3ini(:,:,:)  = fse3t(:,:,:) 
     367 
     368      END SELECT 
     369 
     370      END FUNCTION sfe3ini 
    301371#else 
    302372   !!---------------------------------------------------------------------- 
     
    312382      WRITE(*,*) 'dom_vvl_ssh: You should not have seen this print! error?', kt 
    313383   END SUBROUTINE dom_vvl_ssh 
     384   FUNCTION sfe3( zssh, gridp )  
     385      !! * Arguments 
     386      CHARACTER(LEN=1)                , INTENT( in ) :: gridp   ! grid point type 
     387      REAL(wp), DIMENSION(jpi,jpj)    , INTENT( in ) :: zssh    ! 2D workspace 
     388      REAL(wp), DIMENSION(jpi,jpj,jpk)               :: sfe3    ! 3D workspace 
     389      sfe3(:,:,:) = 0.e0 
     390      WRITE(*,*) 'sfe3: You should not have seen this print! error?', gridp 
     391      WRITE(*,*) 'sfe3: You should not have seen this print! error?', zssh(1,1) 
     392   END FUNCTION sfe3 
     393   FUNCTION sfe3ini( gridp )  
     394      !! * Arguments 
     395      CHARACTER(LEN=1)                , INTENT( in ) :: gridp    ! grid point type 
     396      REAL(wp), DIMENSION(jpi,jpj,jpk)               :: sfe3ini  ! 3D workspace 
     397      sfe3ini(:,:,:) = 0.e0 
     398      WRITE(*,*) 'sfe3ini: You should not have seen this print! error?', gridp 
     399   END FUNCTION sfe3ini 
    314400#endif 
    315401 
  • trunk/NEMO/OPA_SRC/DOM/domzgr_substitute.h90

    r592 r642  
    5656#   define  fsve3vw(i,j,k)  e3vw_1(i,j,k) 
    5757#else 
    58 #   define  fsvdept(i,j,k)  gdept(i,j,k) 
     58#   define  fsvdept(i,j,k)  fsdept(i,j,k) 
    5959 
    60 #   define  fsvdepw(i,j,k)  gdepw(i,j,k) 
    61 #   define  fsvde3w(i,j,k)  gdep3w(i,j,k) 
     60#   define  fsvdepw(i,j,k)  fsdepw(i,j,k) 
     61#   define  fsvde3w(i,j,k)  fsde3w(i,j,k) 
    6262 
    63 #   define  fsve3t(i,j,k)   e3t(i,j,k) 
    64 #   define  fsve3u(i,j,k)   e3u(i,j,k) 
    65 #   define  fsve3v(i,j,k)   e3v(i,j,k) 
    66 #   define  fsve3f(i,j,k)   e3f(i,j,k) 
     63#   define  fsve3t(i,j,k)   fse3t(i,j,k) 
     64#   define  fsve3u(i,j,k)   fse3u(i,j,k) 
     65#   define  fsve3v(i,j,k)   fse3v(i,j,k) 
     66#   define  fsve3f(i,j,k)   fse3f(i,j,k) 
    6767 
    68 #   define  fsve3w(i,j,k)   e3w(i,j,k) 
    69 #   define  fsve3uw(i,j,k)  e3uw(i,j,k) 
    70 #   define  fsve3vw(i,j,k)  e3vw(i,j,k) 
     68#   define  fsve3w(i,j,k)   fse3w(i,j,k) 
     69#   define  fsve3uw(i,j,k)  fse3uw(i,j,k) 
     70#   define  fsve3vw(i,j,k)  fse3vw(i,j,k) 
    7171#endif 
    7272 
  • trunk/NEMO/OPA_SRC/DYN/dynnxt.F90

    r592 r642  
    7373      INTEGER  ::   ji, jj, jk   ! dummy loop indices 
    7474      REAL(wp) ::   z2dt         ! temporary scalar 
     75      REAL(wp) ::   zsshun1, zsshvn1         ! temporary scalar 
    7576      !! Variable volume 
    76       REAL(wp) ::   zsshun, zsshvn           ! temporary scalars 
    77       REAL(wp), DIMENSION(jpi,jpj)     ::  & 
    78          zsshub, zsshua, zsshvb, zsshva      ! 2D workspace 
     77      REAL(wp), DIMENSION(jpi,jpj)     ::  & ! 2D workspace 
     78         zsshub, zsshun, zsshua,           & 
     79         zsshvb, zsshvn, zsshva 
    7980      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  & 
    8081         zfse3ub, zfse3un, zfse3ua, &        ! 3D workspace 
     
    134135         ! Scale factors at before and after time step 
    135136         ! ------------------------------------------- 
    136          DO jk = 1, jpkm1 
    137             zfse3ub(:,:,jk)  = fsve3u(:,:,jk) * ( 1 + zsshub(:,:) * muu(:,:,jk) ) 
    138             zfse3ua(:,:,jk)  = fsve3u(:,:,jk) * ( 1 + zsshua(:,:) * muu(:,:,jk) ) 
    139             zfse3vb(:,:,jk)  = fsve3v(:,:,jk) * ( 1 + zsshvb(:,:) * muv(:,:,jk) ) 
    140             zfse3va(:,:,jk)  = fsve3v(:,:,jk) * ( 1 + zsshva(:,:) * muv(:,:,jk) ) 
    141          END DO 
     137         zfse3ub(:,:,:) = sfe3( zsshub, 'U' )   ;    zfse3ua(:,:,:) = sfe3( zsshua, 'U' ) 
     138         zfse3vb(:,:,:) = sfe3( zsshvb, 'V' )   ;    zfse3va(:,:,:) = sfe3( zsshva, 'V' ) 
    142139 
    143140         ! Asselin filtered scale factor at now time step 
    144141         ! ---------------------------------------------- 
    145142         IF( (neuler == 0 .AND. kt == nit000) .OR. lk_dynspg_ts ) THEN 
    146             zfse3un(:,:,:) = fse3u(:,:,:) 
    147             zfse3vn(:,:,:) = fse3v(:,:,:) 
     143            zfse3un(:,:,:) = sfe3ini( 'U' ) 
     144            zfse3vn(:,:,:) = sfe3ini( 'V' ) 
    148145         ELSE 
    149             DO jk = 1, jpkm1 
    150                DO jj = 1, jpj 
    151                   DO ji = 1, jpi 
    152                      zsshun = atfp * ( zsshub(ji,jj) + zsshua(ji,jj) ) + atfp1 * sshu(ji,jj) 
    153                      zsshvn = atfp * ( zsshvb(ji,jj) + zsshva(ji,jj) ) + atfp1 * sshv(ji,jj) 
    154                      zfse3un(ji,jj,jk) = fsve3u(ji,jj,jk) * ( 1 + zsshun * muu(ji,jj,jk) ) 
    155                      zfse3vn(ji,jj,jk) = fsve3v(ji,jj,jk) * ( 1 + zsshvn * muv(ji,jj,jk) ) 
    156                   END DO 
    157                END DO 
    158             END DO 
     146            zsshun(:,:) = atfp * ( zsshub(:,:) + zsshua(:,:) ) + atfp1 * sshu(:,:) 
     147            zsshvn(:,:) = atfp * ( zsshvb(:,:) + zsshva(:,:) ) + atfp1 * sshv(:,:) 
     148            zfse3un(:,:,:) = sfe3( zsshun, 'U' )   ;    zfse3vn(:,:,:) = sfe3( zsshvn, 'V' ) 
    159149         ENDIF 
    160150 
    161151         ! Thickness weighting 
    162152         ! ------------------- 
    163          ua(:,:,1:jpkm1) = ua(:,:,1:jpkm1) * fse3u (:,:,1:jpkm1) 
    164          va(:,:,1:jpkm1) = va(:,:,1:jpkm1) * fse3v (:,:,1:jpkm1) 
    165  
    166          un(:,:,1:jpkm1) = un(:,:,1:jpkm1) * fse3u (:,:,1:jpkm1) 
    167          vn(:,:,1:jpkm1) = vn(:,:,1:jpkm1) * fse3v (:,:,1:jpkm1) 
    168  
    169          ub(:,:,1:jpkm1) = ub(:,:,1:jpkm1) * zfse3ub(:,:,1:jpkm1) 
    170          vb(:,:,1:jpkm1) = vb(:,:,1:jpkm1) * zfse3vb(:,:,1:jpkm1) 
     153         DO jk = 1, jpkm1 
     154            DO jj = 1, jpj 
     155               DO ji = 1, jpi 
     156                  ua(ji,jj,jk) = ua(ji,jj,jk) * fse3u(ji,jj,jk) 
     157                  va(ji,jj,jk) = va(ji,jj,jk) * fse3v(ji,jj,jk) 
     158 
     159                  un(ji,jj,jk) = un(ji,jj,jk) * fse3u(ji,jj,jk) 
     160                  vn(ji,jj,jk) = vn(ji,jj,jk) * fse3v(ji,jj,jk) 
     161 
     162                  ub(ji,jj,jk) = ub(ji,jj,jk) * zfse3ub(ji,jj,jk) 
     163                  vb(ji,jj,jk) = vb(ji,jj,jk) * zfse3vb(ji,jj,jk) 
     164               END DO 
     165            END DO 
     166         END DO 
    171167 
    172168      ENDIF 
     
    241237               DO jj = 1, jpj 
    242238                  DO ji = 1, jpi 
    243                      zsshun = umask(ji,jj,jk) / fse3u(ji,jj,jk) 
    244                      zsshvn = vmask(ji,jj,jk) / fse3v(ji,jj,jk) 
    245                      ub(ji,jj,jk) = un(ji,jj,jk) * zsshun * umask(ji,jj,jk) 
    246                      vb(ji,jj,jk) = vn(ji,jj,jk) * zsshvn * vmask(ji,jj,jk) 
    247                      zsshun = umask(ji,jj,jk) / zfse3ua(ji,jj,jk) 
    248                      zsshvn = vmask(ji,jj,jk) / zfse3va(ji,jj,jk) 
    249                      un(ji,jj,jk) = ua(ji,jj,jk) * zsshun * umask(ji,jj,jk) 
    250                      vn(ji,jj,jk) = va(ji,jj,jk) * zsshvn * vmask(ji,jj,jk) 
     239                     zsshun1 = umask(ji,jj,jk) / fse3u(ji,jj,jk) 
     240                     zsshvn1 = vmask(ji,jj,jk) / fse3v(ji,jj,jk) 
     241                     ub(ji,jj,jk) = un(ji,jj,jk) * zsshun1 * umask(ji,jj,jk) 
     242                     vb(ji,jj,jk) = vn(ji,jj,jk) * zsshvn1 * vmask(ji,jj,jk) 
     243                     zsshun1 = umask(ji,jj,jk) / zfse3ua(ji,jj,jk) 
     244                     zsshvn1 = vmask(ji,jj,jk) / zfse3va(ji,jj,jk) 
     245                     un(ji,jj,jk) = ua(ji,jj,jk) * zsshun1 * umask(ji,jj,jk) 
     246                     vn(ji,jj,jk) = va(ji,jj,jk) * zsshvn1 * vmask(ji,jj,jk) 
    251247                  END DO 
    252248               END DO 
     
    268264               DO jj = 1, jpj 
    269265                  DO ji = 1, jpi 
    270                      zsshun = umask(ji,jj,jk) / zfse3un(ji,jj,jk) 
    271                      zsshvn = vmask(ji,jj,jk) / zfse3vn(ji,jj,jk) 
     266                     zsshun1 = umask(ji,jj,jk) / zfse3un(ji,jj,jk) 
     267                     zsshvn1 = vmask(ji,jj,jk) / zfse3vn(ji,jj,jk) 
    272268                     ub(ji,jj,jk) = ( atfp  * ( ub(ji,jj,jk) + ua(ji,jj,jk) ) & 
    273                        &            + atfp1 * un(ji,jj,jk) ) * zsshun 
     269                       &            + atfp1 * un(ji,jj,jk) ) * zsshun1 
    274270                     vb(ji,jj,jk) = ( atfp  * ( vb(ji,jj,jk) + va(ji,jj,jk) ) & 
    275                        &            + atfp1 * vn(ji,jj,jk) ) * zsshvn 
    276                      zsshun = umask(ji,jj,jk) / zfse3ua(ji,jj,jk) 
    277                      zsshvn = vmask(ji,jj,jk) / zfse3va(ji,jj,jk) 
    278                      un(ji,jj,jk) = ua(ji,jj,jk) * zsshun 
    279                      vn(ji,jj,jk) = va(ji,jj,jk) * zsshvn 
     271                       &            + atfp1 * vn(ji,jj,jk) ) * zsshvn1 
     272                     zsshun1 = umask(ji,jj,jk) / zfse3ua(ji,jj,jk) 
     273                     zsshvn1 = vmask(ji,jj,jk) / zfse3va(ji,jj,jk) 
     274                     un(ji,jj,jk) = ua(ji,jj,jk) * zsshun1 
     275                     vn(ji,jj,jk) = va(ji,jj,jk) * zsshvn1 
    280276                  END DO 
    281277               END DO 
  • trunk/NEMO/OPA_SRC/DYN/dynspg_flt.F90

    r592 r642  
    187187         ! Scale factors at before and after time step 
    188188         ! ------------------------------------------- 
    189          DO jk = 1, jpkm1 
    190             zfse3ua(:,:,jk)  = fsve3u(:,:,jk) * ( 1 + zsshua(:,:) * muu(:,:,jk) ) 
    191             zfse3va(:,:,jk)  = fsve3v(:,:,jk) * ( 1 + zsshva(:,:) * muv(:,:,jk) ) 
    192             zfse3ub(:,:,jk)  = fsve3u(:,:,jk) * ( 1 + zsshub(:,:) * muu(:,:,jk) ) 
    193             zfse3vb(:,:,jk)  = fsve3v(:,:,jk) * ( 1 + zsshvb(:,:) * muv(:,:,jk) ) 
    194          END DO 
     189         zfse3ua(:,:,:) = sfe3( zsshua, 'U' )    ;    zfse3ub(:,:,:) = sfe3( zsshub, 'U' ) 
     190         zfse3va(:,:,:) = sfe3( zsshva, 'V' )    ;    zfse3vb(:,:,:) = sfe3( zsshvb, 'V' ) 
    195191 
    196192         ! Thickness weighting 
    197193         ! ------------------- 
    198          ua(:,:,1:jpkm1) = ua(:,:,1:jpkm1) * fse3u(:,:,1:jpkm1) 
    199          va(:,:,1:jpkm1) = va(:,:,1:jpkm1) * fse3v(:,:,1:jpkm1) 
    200  
    201          zub(:,:,1:jpkm1) = ub(:,:,1:jpkm1) * zfse3ub(:,:,1:jpkm1) 
    202          zvb(:,:,1:jpkm1) = vb(:,:,1:jpkm1) * zfse3vb(:,:,1:jpkm1) 
     194         DO jk = 1, jpkm1 
     195            DO jj = 1, jpj 
     196               DO ji = 1, jpi 
     197                  ua(ji,jj,jk) = ua(ji,jj,jk) * fse3u(ji,jj,jk) 
     198                  va(ji,jj,jk) = va(ji,jj,jk) * fse3v(ji,jj,jk) 
     199 
     200                  zub(ji,jj,jk) = ub(ji,jj,jk) * zfse3ub(ji,jj,jk) 
     201                  zvb(ji,jj,jk) = vb(ji,jj,jk) * zfse3vb(ji,jj,jk) 
     202               END DO 
     203            END DO 
     204         END DO 
    203205 
    204206         ! Evaluate the masked next velocity (effect of the additional force not included) 
  • trunk/NEMO/OPA_SRC/DYN/dynspg_ts.F90

    r592 r642  
    511511            ! Scale factors at before and after time step 
    512512            ! ------------------------------------------- 
    513             DO jk = 1, jpkm1 
    514                zfse3un_e(:,:,jk)  = fsve3u(:,:,jk) * ( 1 + zsshun_e(:,:) * muu(:,:,jk) ) 
    515                zfse3vn_e(:,:,jk)  = fsve3v(:,:,jk) * ( 1 + zsshvn_e(:,:) * muv(:,:,jk) ) 
    516             END DO 
     513            zfse3un_e(:,:,:) = sfe3( zsshun_e, 'U' )    ;    zfse3vn_e(:,:,:) = sfe3( zsshvn_e, 'V' ) 
    517514 
    518515            ! Ocean depth at U- and V-points 
  • trunk/NEMO/OPA_SRC/TRA/tranxt.F90

    r592 r642  
    8686      INTEGER, INTENT(in) ::   kt    ! ocean time-step index 
    8787      !! 
    88       INTEGER  ::   ji, jj, jk   ! dummy loop indices 
    89       REAL(wp) ::   zt, zs      ! temporary scalars 
    90       REAL(wp) ::   zfact        ! temporary scalar 
     88      INTEGER  ::   ji, jj, jk    ! dummy loop indices 
     89      REAL(wp) ::   zt, zs, zssh1 ! temporary scalars 
     90      REAL(wp) ::   zfact         ! temporary scalar 
    9191      !! Variable volume 
    92       REAL(wp) ::   zssh                         ! temporary scalars 
     92      REAL(wp), DIMENSION(jpi,jpj) ::   zssh                         ! temporary scalars 
    9393      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zfse3tb, zfse3tn, zfse3ta  ! 3D workspace 
    9494 
     
    100100         ! Scale factors at before and after time step 
    101101         ! ------------------------------------------- 
    102          DO jk = 1, jpkm1 
    103             zfse3tb(:,:,jk)  = fsve3t(:,:,jk) * ( 1 + sshb(:,:) * mut(:,:,jk) ) 
    104             zfse3ta(:,:,jk)  = fsve3t(:,:,jk) * ( 1 + ssha(:,:) * mut(:,:,jk) ) 
    105          END DO 
     102         zfse3tb(:,:,:) = sfe3( sshb, 'T' )    ;    zfse3ta(:,:,:) = sfe3( ssha, 'T' ) 
    106103 
    107104         ! Asselin filtered scale factor at now time step 
    108105         ! ---------------------------------------------- 
    109106         IF( (neuler == 0 .AND. kt == nit000) .OR. lk_dynspg_ts ) THEN 
    110             zfse3tn(:,:,:) = fse3t(:,:,:) 
     107            zfse3tn(:,:,:) = sfe3ini( 'T' ) 
    111108         ELSE 
    112             DO jk = 1, jpkm1 
    113                DO jj = 1, jpj 
    114                   DO ji = 1, jpi 
    115                      zssh = atfp * ( sshb(ji,jj) + ssha(ji,jj) ) + atfp1 * sshn(ji,jj) 
    116                      zfse3tn(ji,jj,jk) = fsve3t(ji,jj,jk) * ( 1 + zssh * mut(ji,jj,jk) ) 
    117                   END DO 
     109            zssh(:,:) = atfp * ( sshb(:,:) + ssha(:,:) ) + atfp1 * sshn(:,:) 
     110            zfse3tn(:,:,:) = sfe3( zssh, 'T' ) 
     111         ENDIF 
     112 
     113         ! Thickness weighting 
     114         ! ------------------- 
     115         DO jk = 1, jpkm1 
     116            DO jj = 1, jpj 
     117               DO ji = 1, jpi 
     118                  ta(ji,jj,jk) = ta(ji,jj,jk) * fse3t(ji,jj,jk) 
     119                  sa(ji,jj,jk) = sa(ji,jj,jk) * fse3t(ji,jj,jk) 
     120 
     121                  tn(ji,jj,jk) = tn(ji,jj,jk) * fse3t(ji,jj,jk) 
     122                  sn(ji,jj,jk) = sn(ji,jj,jk) * fse3t(ji,jj,jk) 
     123 
     124                  tb(ji,jj,jk) = tb(ji,jj,jk) * zfse3tb(ji,jj,jk) 
     125                  sb(ji,jj,jk) = sb(ji,jj,jk) * zfse3tb(ji,jj,jk) 
    118126               END DO 
    119127            END DO 
    120          ENDIF 
    121  
    122          ! Thickness weighting 
    123          ! ------------------- 
    124          ta(:,:,1:jpkm1) = ta(:,:,1:jpkm1) * fse3t (:,:,1:jpkm1) 
    125          sa(:,:,1:jpkm1) = sa(:,:,1:jpkm1) * fse3t (:,:,1:jpkm1) 
    126  
    127          tn(:,:,1:jpkm1) = tn(:,:,1:jpkm1) * fse3t (:,:,1:jpkm1) 
    128          sn(:,:,1:jpkm1) = sn(:,:,1:jpkm1) * fse3t (:,:,1:jpkm1) 
    129  
    130          tb(:,:,1:jpkm1) = tb(:,:,1:jpkm1) * zfse3tb(:,:,1:jpkm1) 
    131          sb(:,:,1:jpkm1) = sb(:,:,1:jpkm1) * zfse3tb(:,:,1:jpkm1) 
     128         END DO 
    132129 
    133130      ENDIF 
     
    221218                  DO jj = 1, jpj 
    222219                     DO ji = 1, jpi 
    223                         zssh = tmask(ji,jj,jk) / fse3t(ji,jj,jk) 
    224                         tb(ji,jj,jk) = tn(ji,jj,jk) * zssh * tmask(ji,jj,jk) 
    225                         sb(ji,jj,jk) = sn(ji,jj,jk) * zssh * tmask(ji,jj,jk) 
    226                         zssh = tmask(ji,jj,jk) / zfse3ta(ji,jj,jk) 
    227                         tn(ji,jj,jk) = ta(ji,jj,jk) * zssh * tmask(ji,jj,jk) 
    228                         sn(ji,jj,jk) = sa(ji,jj,jk) * zssh * tmask(ji,jj,jk) 
     220                        zssh1 = tmask(ji,jj,jk) / fse3t(ji,jj,jk) 
     221                        tb(ji,jj,jk) = tn(ji,jj,jk) * zssh1 * tmask(ji,jj,jk) 
     222                        sb(ji,jj,jk) = sn(ji,jj,jk) * zssh1 * tmask(ji,jj,jk) 
     223                        zssh1 = tmask(ji,jj,jk) / zfse3ta(ji,jj,jk) 
     224                        tn(ji,jj,jk) = ta(ji,jj,jk) * zssh1 * tmask(ji,jj,jk) 
     225                        sn(ji,jj,jk) = sa(ji,jj,jk) * zssh1 * tmask(ji,jj,jk) 
    229226                     END DO 
    230227                  END DO 
     
    255252                  DO jj = 1, jpj 
    256253                     DO ji = 1, jpi 
    257                         zssh = tmask(ji,jj,jk) / zfse3tn(ji,jj,jk) 
     254                        zssh1 = tmask(ji,jj,jk) / zfse3tn(ji,jj,jk) 
    258255                        tb(ji,jj,jk) = ( atfp  * ( tb(ji,jj,jk) + ta(ji,jj,jk) ) & 
    259                           &            + atfp1 * tn(ji,jj,jk) ) * zssh 
     256                          &            + atfp1 * tn(ji,jj,jk) ) * zssh1 
    260257                        sb(ji,jj,jk) = ( atfp  * ( sb(ji,jj,jk) + sa(ji,jj,jk) ) & 
    261                           &            + atfp1 * sn(ji,jj,jk) ) * zssh 
    262                         zssh = tmask(ji,jj,1) / zfse3ta(ji,jj,jk) 
    263                         tn(ji,jj,jk) = ta(ji,jj,jk) * zssh 
    264                         sn(ji,jj,jk) = sa(ji,jj,jk) * zssh 
     258                          &            + atfp1 * sn(ji,jj,jk) ) * zssh1 
     259                        zssh1 = tmask(ji,jj,1) / zfse3ta(ji,jj,jk) 
     260                        tn(ji,jj,jk) = ta(ji,jj,jk) * zssh1 
     261                        sn(ji,jj,jk) = sa(ji,jj,jk) * zssh1 
    265262                     END DO 
    266263                  END DO 
Note: See TracChangeset for help on using the changeset viewer.