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 5737 for branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/OPA_SRC/SOL/solmat.F90 – NEMO

Ignore:
Timestamp:
2015-09-13T09:42:41+02:00 (9 years ago)
Author:
gm
Message:

#1593: LDF-ADV, step I: Phasing of horizontal scale factors correct 2

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/OPA_SRC/SOL/solmat.F90

    r4328 r5737  
    8989         DO ji = 2, jpim1 
    9090            zcoef = z2dt * z2dt * grav * bmask(ji,jj) 
    91             zcoefs = -zcoef * hv(ji  ,jj-1) * e1v(ji  ,jj-1) / e2v(ji  ,jj-1)    ! south coefficient 
    92             zcoefw = -zcoef * hu(ji-1,jj  ) * e2u(ji-1,jj  ) / e1u(ji-1,jj  )    ! west coefficient 
    93             zcoefe = -zcoef * hu(ji  ,jj  ) * e2u(ji  ,jj  ) / e1u(ji  ,jj  )    ! east coefficient 
    94             zcoefn = -zcoef * hv(ji  ,jj  ) * e1v(ji  ,jj  ) / e2v(ji  ,jj  )    ! north coefficient 
     91            zcoefs = -zcoef * hv(ji  ,jj-1) * e1_e2v(ji  ,jj-1)    ! south coefficient 
     92            zcoefw = -zcoef * hu(ji-1,jj  ) * e2_e1u(ji-1,jj  )    ! west coefficient 
     93            zcoefe = -zcoef * hu(ji  ,jj  ) * e2_e1u(ji  ,jj  )    ! east coefficient 
     94            zcoefn = -zcoef * hv(ji  ,jj  ) * e1_e2v(ji  ,jj  )    ! north coefficient 
    9595            gcp(ji,jj,1) = zcoefs 
    9696            gcp(ji,jj,2) = zcoefw 
    9797            gcp(ji,jj,3) = zcoefe 
    9898            gcp(ji,jj,4) = zcoefn 
    99             gcdmat(ji,jj) = e1t(ji,jj) * e2t(ji,jj) * bmask(ji,jj)    &          ! diagonal coefficient 
     99            gcdmat(ji,jj) = e1e2t(ji,jj) * bmask(ji,jj)    &          ! diagonal coefficient 
    100100               &          - zcoefs -zcoefw -zcoefe -zcoefn 
    101101         END DO 
     
    110110 
    111111            !  south coefficient 
    112             zcoefs = -zcoef * hv(ji,jj-1) * e1v(ji,jj-1)/e2v(ji,jj-1) 
     112            zcoefs = -zcoef * hv(ji,jj-1) * e1_e2v(ji,jj-1) 
    113113            zcoefs = zcoefs * bdyvmask(ji,jj-1) 
    114114            gcp(ji,jj,1) = zcoefs 
    115115 
    116116            !  west coefficient 
    117             zcoefw = -zcoef * hu(ji-1,jj) * e2u(ji-1,jj)/e1u(ji-1,jj) 
     117            zcoefw = -zcoef * hu(ji-1,jj) * e2_e1u(ji-1,jj) 
    118118            zcoefw = zcoefw * bdyumask(ji-1,jj) 
    119119            gcp(ji,jj,2) = zcoefw 
    120120 
    121121            !  east coefficient 
    122             zcoefe = -zcoef * hu(ji,jj) * e2u(ji,jj)/e1u(ji,jj) 
     122            zcoefe = -zcoef * hu(ji,jj) * e2_e1u(ji,jj) 
    123123            zcoefe = zcoefe * bdyumask(ji,jj) 
    124124            gcp(ji,jj,3) = zcoefe 
    125125 
    126126            !  north coefficient 
    127             zcoefn = -zcoef * hv(ji,jj) * e1v(ji,jj)/e2v(ji,jj) 
     127            zcoefn = -zcoef * hv(ji,jj) * e1_e2v(ji,jj) 
    128128            zcoefn = zcoefn * bdyvmask(ji,jj) 
    129129            gcp(ji,jj,4) = zcoefn 
    130130 
    131131            ! diagonal coefficient 
    132             gcdmat(ji,jj) = e1t(ji,jj)*e2t(ji,jj)*bmask(ji,jj) & 
    133                             - zcoefs -zcoefw -zcoefe -zcoefn 
     132            gcdmat(ji,jj) = e1e2t(ji,jj)*bmask(ji,jj) - zcoefs -zcoefw -zcoefe -zcoefn 
    134133         END DO 
    135134      END DO 
     
    149148               !  south coefficient 
    150149               IF( ( nbondj == -1 .OR. nbondj == 2 ) .AND. ( jj == 3 ) ) THEN 
    151                   zcoefs = -zcoef * hv(ji,jj-1) * e1v(ji,jj-1)/e2v(ji,jj-1)*(1.-vmask(ji,jj-1,1)) 
     150                  zcoefs = -zcoef * hv(ji,jj-1) * e1_e2v(ji,jj-1)*(1.-vmask(ji,jj-1,1)) 
    152151               ELSE 
    153                   zcoefs = -zcoef * hv(ji,jj-1) * e1v(ji,jj-1)/e2v(ji,jj-1) 
     152                  zcoefs = -zcoef * hv(ji,jj-1) * e1_e2v(ji,jj-1) 
    154153               END IF 
    155154               gcp(ji,jj,1) = zcoefs 
     
    157156               !  west coefficient 
    158157               IF( ( nbondi == -1 .OR. nbondi == 2 ) .AND. ( ji == 3 )  ) THEN 
    159                   zcoefw = -zcoef * hu(ji-1,jj) * e2u(ji-1,jj)/e1u(ji-1,jj)*(1.-umask(ji-1,jj,1)) 
     158                  zcoefw = -zcoef * hu(ji-1,jj) * e2_e1u(ji-1,jj)*(1.-umask(ji-1,jj,1)) 
    160159               ELSE 
    161                   zcoefw = -zcoef * hu(ji-1,jj) * e2u(ji-1,jj)/e1u(ji-1,jj) 
     160                  zcoefw = -zcoef * hu(ji-1,jj) * e2_e1u(ji-1,jj) 
    162161               END IF 
    163162               gcp(ji,jj,2) = zcoefw 
     
    165164               !   east coefficient 
    166165               IF( ( nbondi == 1 .OR. nbondi == 2 ) .AND. ( ji == nlci-2 ) ) THEN 
    167                   zcoefe = -zcoef * hu(ji,jj) * e2u(ji,jj)/e1u(ji,jj)*(1.-umask(ji,jj,1)) 
     166                  zcoefe = -zcoef * hu(ji,jj) * e2_e1u(ji,jj)*(1.-umask(ji,jj,1)) 
    168167               ELSE 
    169                   zcoefe = -zcoef * hu(ji,jj) * e2u(ji,jj)/e1u(ji,jj) 
     168                  zcoefe = -zcoef * hu(ji,jj) * e2_e1u(ji,jj) 
    170169               END IF 
    171170               gcp(ji,jj,3) = zcoefe 
     
    173172               !   north coefficient 
    174173               IF( ( nbondj == 1 .OR. nbondj == 2 ) .AND. ( jj == nlcj-2 ) ) THEN 
    175                   zcoefn = -zcoef * hv(ji,jj) * e1v(ji,jj)/e2v(ji,jj)*(1.-vmask(ji,jj,1)) 
     174                  zcoefn = -zcoef * hv(ji,jj) * e1_e2v(ji,jj)*(1.-vmask(ji,jj,1)) 
    176175               ELSE 
    177                   zcoefn = -zcoef * hv(ji,jj) * e1v(ji,jj)/e2v(ji,jj) 
     176                  zcoefn = -zcoef * hv(ji,jj) * e1_e2v(ji,jj) 
    178177               END IF 
    179178               gcp(ji,jj,4) = zcoefn 
    180179               ! 
    181180               ! diagonal coefficient 
    182                gcdmat(ji,jj) = e1t(ji,jj)*e2t(ji,jj)*bmask(ji,jj)   & 
    183                   &            - zcoefs -zcoefw -zcoefe -zcoefn 
     181               gcdmat(ji,jj) = e1e2t(ji,jj)*bmask(ji,jj) - zcoefs -zcoefw -zcoefe -zcoefn 
    184182            END DO 
    185183         END DO 
Note: See TracChangeset for help on using the changeset viewer.