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 6069 for branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/DOM/dommsk.F90 – NEMO

Ignore:
Timestamp:
2015-12-16T16:44:35+01:00 (8 years ago)
Author:
timgraham
Message:

Merge of dev_MetOffice_merge_2015 into branch (only NEMO directory for now).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/DOM/dommsk.F90

    r6060 r6069  
    174174      ! -------------------- 
    175175      tmask_i(:,:) = ssmask(:,:)            ! (ISH) tmask_i = 1 even on the ice shelf 
     176 
     177      tmask_h(:,:) = 1._wp                 ! 0 on the halo and 1 elsewhere 
    176178      iif = jpreci                         ! ??? 
    177179      iil = nlci - jpreci + 1 
     
    179181      ijl = nlcj - jprecj + 1 
    180182 
    181       tmask_i( 1 :iif,   :   ) = 0._wp      ! first columns 
    182       tmask_i(iil:jpi,   :   ) = 0._wp      ! last  columns (including mpp extra columns) 
    183       tmask_i(   :   , 1 :ijf) = 0._wp      ! first rows 
    184       tmask_i(   :   ,ijl:jpj) = 0._wp      ! last  rows (including mpp extra rows) 
     183      tmask_h( 1 :iif,   :   ) = 0._wp      ! first columns 
     184      tmask_h(iil:jpi,   :   ) = 0._wp      ! last  columns (including mpp extra columns) 
     185      tmask_h(   :   , 1 :ijf) = 0._wp      ! first rows 
     186      tmask_h(   :   ,ijl:jpj) = 0._wp      ! last  rows (including mpp extra rows) 
    185187 
    186188      ! north fold mask 
     
    193195         IF( mjg(nlej) == jpjglo ) THEN                  ! only half of the nlcj-1 row 
    194196            DO ji = iif+1, iil-1 
    195                tmask_i(ji,nlej-1) = tmask_i(ji,nlej-1) * tpol(mig(ji)) 
     197               tmask_h(ji,nlej-1) = tmask_h(ji,nlej-1) * tpol(mig(ji)) 
    196198            END DO 
    197199         ENDIF 
    198200      ENDIF 
     201      
     202      tmask_i(:,:) = tmask_i(:,:) * tmask_h(:,:) 
     203 
    199204      IF( jperio == 5 .OR. jperio == 6 ) THEN      ! F-point pivot 
    200205         tpol(     1    :jpiglo) = 0._wp 
     
    216221         END DO 
    217222      END DO 
    218       ! (ISF) MIN(1,SUM(umask)) is here to check if you have effectively at least 1 wet u point 
     223      ! (ISF) MIN(1,SUM(umask)) is here to check if you have effectively at least 1 wet cell at u point 
    219224      DO jj = 1, jpjm1 
    220225         DO ji = 1, fs_jpim1   ! vector loop 
    221             umask_i(ji,jj)  = ssmask(ji,jj) * ssmask(ji+1,jj  )  * MIN(1._wp,SUM(umask(ji,jj,:))) 
    222             vmask_i(ji,jj)  = ssmask(ji,jj) * ssmask(ji  ,jj+1)  * MIN(1._wp,SUM(vmask(ji,jj,:))) 
     226            ssumask(ji,jj)  = ssmask(ji,jj) * ssmask(ji+1,jj  )  * MIN(1._wp,SUM(umask(ji,jj,:))) 
     227            ssvmask(ji,jj)  = ssmask(ji,jj) * ssmask(ji  ,jj+1)  * MIN(1._wp,SUM(vmask(ji,jj,:))) 
    223228         END DO 
    224229         DO ji = 1, jpim1      ! NO vector opt. 
    225             fmask_i(ji,jj) =  ssmask(ji,jj  ) * ssmask(ji+1,jj  )   & 
     230            ssfmask(ji,jj) =  ssmask(ji,jj  ) * ssmask(ji+1,jj  )   & 
    226231               &            * ssmask(ji,jj+1) * ssmask(ji+1,jj+1) * MIN(1._wp,SUM(fmask(ji,jj,:))) 
    227232         END DO 
    228233      END DO 
    229       CALL lbc_lnk( umask, 'U', 1._wp )      ! Lateral boundary conditions 
    230       CALL lbc_lnk( vmask, 'V', 1._wp ) 
    231       CALL lbc_lnk( fmask, 'F', 1._wp ) 
    232       CALL lbc_lnk( umask_i, 'U', 1._wp )      ! Lateral boundary conditions 
    233       CALL lbc_lnk( vmask_i, 'V', 1._wp ) 
    234       CALL lbc_lnk( fmask_i, 'F', 1._wp ) 
     234      CALL lbc_lnk( umask  , 'U', 1._wp )      ! Lateral boundary conditions 
     235      CALL lbc_lnk( vmask  , 'V', 1._wp ) 
     236      CALL lbc_lnk( fmask  , 'F', 1._wp ) 
     237      CALL lbc_lnk( ssumask, 'U', 1._wp )      ! Lateral boundary conditions 
     238      CALL lbc_lnk( ssvmask, 'V', 1._wp ) 
     239      CALL lbc_lnk( ssfmask, 'F', 1._wp ) 
    235240 
    236241      ! 3. Ocean/land mask at wu-, wv- and w points  
Note: See TracChangeset for help on using the changeset viewer.