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 62 for trunk/NEMO/OPA_SRC/DOM/dommsk.F90 – NEMO

Ignore:
Timestamp:
2004-04-22T13:53:53+02:00 (20 years ago)
Author:
opalod
Message:

CT : BUGFIX036 : # Loop indice correction for the North fold in rigid lid and mpp case PLUS

# Use logical key "lk_isl" instead of "l_isl"
# Addition of the logical key lk_dynspg_fsc_atsk in parallel to the lk_dynspg_fsc one

File:
1 edited

Legend:

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

    r32 r62  
    1919   USE solisl          ! ??? 
    2020   USE dynspg_fsc      ! 
     21   USE dynspg_fsc_atsk ! 
    2122 
    2223   IMPLICIT NONE 
     
    4647      !!      tropic stream function  points (b). 
    4748      !!        Set mbathy to the number of non-zero w-levels of a water column 
    48       !!      (if island in the domain (l_isl=T), this is done latter in 
     49      !!      (if island in the domain (lk_isl=T), this is done latter in 
    4950      !!      routine solver_init) 
    5051      !! 
     
    139140         WRITE(numout,*) 'dommsk : ocean mask ' 
    140141         WRITE(numout,*) '~~~~~~' 
     142         WRITE(numout,*) '         Namelist namlbc' 
    141143         WRITE(numout,*) '            lateral momentum boundary cond. shlat = ',shlat 
    142144      ENDIF 
    143145 
    144       IF(lwp)WRITE(numout,*) '     ocean lateral:' 
    145146      IF ( shlat == 0. ) THEN 
    146           IF(lwp)WRITE(numout,*) '        free-slip ' 
     147          IF(lwp) WRITE(numout,*) '         ocean lateral free-slip ' 
    147148        ELSEIF ( shlat  ==  2. ) THEN 
    148           IF(lwp) WRITE(numout,*) '        no-slip ' 
     149          IF(lwp) WRITE(numout,*) '         ocean lateral  no-slip ' 
    149150        ELSEIF ( 0. < shlat .AND. shlat < 2. ) THEN 
    150           IF(lwp) WRITE(numout,*) '        partial-slip ' 
     151          IF(lwp) WRITE(numout,*) '         ocean lateral  partial-slip ' 
    151152        ELSEIF ( 2. < shlat ) THEN 
    152           IF(lwp) WRITE(numout,*) '        strong-slip ' 
     153          IF(lwp) WRITE(numout,*) '         ocean lateral  strong-slip ' 
    153154        ELSE 
    154           IF(lwp)WRITE(numout,cform_err) 
    155           IF(lwp)WRITE(numout,*) ' shlat is negative = ', shlat 
     155          IF(lwp) WRITE(numout,cform_err) 
     156          IF(lwp) WRITE(numout,*) ' shlat is negative = ', shlat 
    156157          nstop = nstop + 1 
    157158      ENDIF 
    158  
    159159 
    160160      ! 1. Ocean/land mask at t-point (computed from mbathy) 
     
    215215               vmask(ji,jj,jk) = tmask(ji,jj  ,jk) * tmask(ji  ,jj+1,jk) 
    216216               fmask(ji,jj,jk) = tmask(ji,jj  ,jk) * tmask(ji+1,jj  ,jk)   & 
    217                                * tmask(ji,jj+1,jk) * tmask(ji+1,jj+1,jk) 
     217                  &            * tmask(ji,jj+1,jk) * tmask(ji+1,jj+1,jk) 
    218218            END DO 
    219219         END DO 
     
    246246       
    247247      ! Computation 
    248       IF( lk_dynspg_fsc ) THEN 
     248      IF( lk_dynspg_fsc .OR. lk_dynspg_fsc_tsk ) THEN 
    249249         bmask(:,:) = tmask(:,:,1)       ! elliptic equation is written at t-point 
    250250      ELSE 
     
    266266      !   north fold :  
    267267      IF( nperio == 3 .OR. nperio == 4 ) THEN 
    268          IF( lk_dynspg_fsc ) THEN 
     268         IF( lk_dynspg_fsc .OR. lk_dynspg_fsc_tsk ) THEN 
    269269            ! T-pt pivot and T-pt elliptic eq. : bmask set to 0. on row jpj and on half jpjglo-1 row 
    270270            DO ji = 1, jpi 
     
    280280      ENDIF 
    281281      IF( nperio == 5 .OR. nperio == 6 ) THEN 
    282          IF( lk_dynspg_fsc ) THEN 
     282         IF( lk_dynspg_fsc .OR. lk_dynspg_fsc_tsk ) THEN 
    283283            ! F-pt pivot and T-pt elliptic eq. : bmask set to 0. on row jpj 
    284284            bmask(:,jpj) = 0.e0 
     
    304304         ! north fold : bmask must be set to 0. on rows jpj-1 and jpj  
    305305         IF( npolj == 3 .OR. npolj == 4 ) THEN 
    306             IF( lk_dynspg_fsc ) THEN 
     306            IF( lk_dynspg_fsc .OR. lk_dynspg_fsc_tsk ) THEN 
    307307               DO ji = 1, nlci 
    308308                  ii = ji + nimpp - 1 
     
    318318         ENDIF 
    319319         IF( npolj == 5 .OR. npolj == 6 ) THEN 
    320             IF( lk_dynspg_fsc ) THEN 
     320            IF( lk_dynspg_fsc .OR. lk_dynspg_fsc_tsk ) THEN 
    321321               DO ji = 1, nlci 
    322                   ii = ji + nimpp - 1 
    323322                  bmask(ji,nlcj  ) = 0.e0 
    324323               END DO 
    325324            ELSE 
    326325               DO ji = 1, nlci 
     326                  ii = ji + nimpp - 1 
    327327                  bmask(ji,nlcj-1) = bmask(ji,nlcj-1) * fpol(ii) 
    328328                  bmask(ji,nlcj  ) = 0.e0 
     
    410410      ! Mbathy set to the number of w-level (minimum value 2) 
    411411      ! ----------------------------------- 
    412       IF( l_isl ) THEN 
     412      IF( lk_isl ) THEN 
    413413         ! this is done at the end of solver_init routine 
    414414      ELSE 
Note: See TracChangeset for help on using the changeset viewer.