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 10727 for utils/tools_AGRIF_CMEMS_2020/DOMAINcfg/src/dommsk.F90 – NEMO

Ignore:
Timestamp:
2019-02-27T17:02:02+01:00 (5 years ago)
Author:
rblod
Message:

new nesting tools (attempt) and brutal cleaning of DOMAINcfg, see ticket #2129

File:
1 moved

Legend:

Unmodified
Added
Removed
  • utils/tools_AGRIF_CMEMS_2020/DOMAINcfg/src/dommsk.F90

    r10725 r10727  
    120120      !!--------------------------------------------------------------------- 
    121121      ! 
    122       IF( nn_timing == 1 )  CALL timing_start('dom_msk') 
     122  !    IF( nn_timing == 1 )  CALL timing_start('dom_msk') 
    123123      ! 
    124124      CALL wrk_alloc( jpi, jpj, imsk ) 
     
    180180      ! Interior domain mask (used for global sum) 
    181181      ! -------------------- 
    182       tmask_i(:,:) = ssmask(:,:)            ! (ISH) tmask_i = 1 even on the ice shelf 
    183  
    184       tmask_h(:,:) = 1._wp                 ! 0 on the halo and 1 elsewhere 
    185       iif = jpreci                         ! ??? 
    186       iil = nlci - jpreci + 1 
    187       ijf = jprecj                         ! ??? 
    188       ijl = nlcj - jprecj + 1 
    189  
    190       tmask_h( 1 :iif,   :   ) = 0._wp      ! first columns 
    191       tmask_h(iil:jpi,   :   ) = 0._wp      ! last  columns (including mpp extra columns) 
    192       tmask_h(   :   , 1 :ijf) = 0._wp      ! first rows 
    193       tmask_h(   :   ,ijl:jpj) = 0._wp      ! last  rows (including mpp extra rows) 
     182   !   tmask_i(:,:) = ssmask(:,:)            ! (ISH) tmask_i = 1 even on the ice shelf 
     183 
     184  !    tmask_h(:,:) = 1._wp                 ! 0 on the halo and 1 elsewhere 
     185  !    iif = jpreci                         ! ??? 
     186  !    iil = nlci - jpreci + 1 
     187  !    ijf = jprecj                         ! ??? 
     188  !    ijl = nlcj - jprecj + 1 
     189 
     190   !   tmask_h( 1 :iif,   :   ) = 0._wp      ! first columns 
     191   !   tmask_h(iil:jpi,   :   ) = 0._wp      ! last  columns (including mpp extra columns) 
     192   !   tmask_h(   :   , 1 :ijf) = 0._wp      ! first rows 
     193   !   tmask_h(   :   ,ijl:jpj) = 0._wp      ! last  rows (including mpp extra rows) 
    194194 
    195195      ! north fold mask 
    196196      ! --------------- 
    197       tpol(1:jpiglo) = 1._wp  
    198       fpol(1:jpiglo) = 1._wp 
    199       IF( jperio == 3 .OR. jperio == 4 ) THEN      ! T-point pivot 
    200          tpol(jpiglo/2+1:jpiglo) = 0._wp 
    201          fpol(     1    :jpiglo) = 0._wp 
    202          IF( mjg(nlej) == jpjglo ) THEN                  ! only half of the nlcj-1 row 
    203             DO ji = iif+1, iil-1 
    204                tmask_h(ji,nlej-1) = tmask_h(ji,nlej-1) * tpol(mig(ji)) 
    205             END DO 
    206          ENDIF 
    207       ENDIF 
     197   !   tpol(1:jpiglo) = 1._wp  
     198   !   fpol(1:jpiglo) = 1._wp 
     199   !   IF( jperio == 3 .OR. jperio == 4 ) THEN      ! T-point pivot 
     200   !      tpol(jpiglo/2+1:jpiglo) = 0._wp 
     201   !      fpol(     1    :jpiglo) = 0._wp 
     202   !      IF( mjg(nlej) == jpjglo ) THEN                  ! only half of the nlcj-1 row 
     203   !         DO ji = iif+1, iil-1 
     204   !            tmask_h(ji,nlej-1) = tmask_h(ji,nlej-1) * tpol(mig(ji)) 
     205   !         END DO 
     206   !      ENDIF 
     207   !   ENDIF 
    208208      
    209       tmask_i(:,:) = tmask_i(:,:) * tmask_h(:,:) 
    210  
    211       IF( jperio == 5 .OR. jperio == 6 ) THEN      ! F-point pivot 
    212          tpol(     1    :jpiglo) = 0._wp 
    213          fpol(jpiglo/2+1:jpiglo) = 0._wp 
    214       ENDIF 
     209   !   tmask_i(:,:) = tmask_i(:,:) * tmask_h(:,:) 
     210 
     211  !    IF( jperio == 5 .OR. jperio == 6 ) THEN      ! F-point pivot 
     212  !       tpol(     1    :jpiglo) = 0._wp 
     213  !       fpol(jpiglo/2+1:jpiglo) = 0._wp 
     214  !    ENDIF 
    215215 
    216216      ! 2. Ocean/land mask at u-,  v-, and z-points (computed from tmask) 
     
    229229      END DO 
    230230      ! (ISF) MIN(1,SUM(umask)) is here to check if you have effectively at least 1 wet cell at u point 
    231       DO jj = 1, jpjm1 
    232          DO ji = 1, jpim1   ! vector loop 
    233             ssumask(ji,jj)  = ssmask(ji,jj) * ssmask(ji+1,jj  )  * MIN(1._wp,SUM(umask(ji,jj,:))) 
    234             ssvmask(ji,jj)  = ssmask(ji,jj) * ssmask(ji  ,jj+1)  * MIN(1._wp,SUM(vmask(ji,jj,:))) 
    235          END DO 
    236          DO ji = 1, jpim1      ! NO vector opt. 
    237             ssfmask(ji,jj) =  ssmask(ji,jj  ) * ssmask(ji+1,jj  )   & 
    238                &            * ssmask(ji,jj+1) * ssmask(ji+1,jj+1) * MIN(1._wp,SUM(fmask(ji,jj,:))) 
    239          END DO 
    240       END DO 
    241       CALL lbc_lnk( umask  , 'U', 1._wp )      ! Lateral boundary conditions 
    242       CALL lbc_lnk( vmask  , 'V', 1._wp ) 
    243       CALL lbc_lnk( fmask  , 'F', 1._wp ) 
    244       CALL lbc_lnk( ssumask, 'U', 1._wp )      ! Lateral boundary conditions 
    245       CALL lbc_lnk( ssvmask, 'V', 1._wp ) 
    246       CALL lbc_lnk( ssfmask, 'F', 1._wp ) 
     231!     DO jj = 1, jpjm1 
     232!         DO ji = 1, jpim1   ! vector loop 
     233!            ssumask(ji,jj)  = ssmask(ji,jj) * ssmask(ji+1,jj  )  * MIN(1._wp,SUM(umask(ji,jj,:))) 
     234!            ssvmask(ji,jj)  = ssmask(ji,jj) * ssmask(ji  ,jj+1)  * MIN(1._wp,SUM(vmask(ji,jj,:))) 
     235!!         END DO 
     236!         DO ji = 1, jpim1      ! NO vector opt. 
     237!            ssfmask(ji,jj) =  ssmask(ji,jj  ) * ssmask(ji+1,jj  )   & 
     238!               &            * ssmask(ji,jj+1) * ssmask(ji+1,jj+1) * MIN(1._wp,SUM(fmask(ji,jj,:))) 
     239!         END DO 
     240!      END DO 
     241      CALL lbc_lnk( 'toto',umask  , 'U', 1._wp )      ! Lateral boundary conditions 
     242      CALL lbc_lnk( 'toto',vmask  , 'V', 1._wp ) 
     243      CALL lbc_lnk( 'toto',fmask  , 'F', 1._wp ) 
     244 !     CALL lbc_lnk( 'toto',ssumask, 'U', 1._wp )      ! Lateral boundary conditions 
     245 !     CALL lbc_lnk( 'toto',ssvmask, 'V', 1._wp ) 
     246 !     CALL lbc_lnk( 'toto',ssfmask, 'F', 1._wp ) 
    247247 
    248248      ! 3. Ocean/land mask at wu-, wv- and w points  
     
    355355      ENDIF 
    356356      ! 
    357       CALL lbc_lnk( fmask, 'F', 1._wp )      ! Lateral boundary conditions on fmask 
     357      CALL lbc_lnk( 'toto',fmask, 'F', 1._wp )      ! Lateral boundary conditions on fmask 
    358358      ! 
    359359      ! CAUTION : The fmask may be further modified in dyn_vor_init ( dynvor.F90 ) 
     
    362362      CALL wrk_dealloc( jpi, jpj, zwf  ) 
    363363      ! 
    364       IF( nn_timing == 1 )  CALL timing_stop('dom_msk') 
     364  !    IF( nn_timing == 1 )  CALL timing_stop('dom_msk') 
    365365      ! 
    366366   END SUBROUTINE dom_msk 
Note: See TracChangeset for help on using the changeset viewer.