Changeset 10727 for utils/tools_AGRIF_CMEMS_2020/DOMAINcfg/src/dommsk.F90
- Timestamp:
- 2019-02-27T17:02:02+01:00 (5 years ago)
- File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
utils/tools_AGRIF_CMEMS_2020/DOMAINcfg/src/dommsk.F90
r10725 r10727 120 120 !!--------------------------------------------------------------------- 121 121 ! 122 IF( nn_timing == 1 ) CALL timing_start('dom_msk')122 ! IF( nn_timing == 1 ) CALL timing_start('dom_msk') 123 123 ! 124 124 CALL wrk_alloc( jpi, jpj, imsk ) … … 180 180 ! Interior domain mask (used for global sum) 181 181 ! -------------------- 182 tmask_i(:,:) = ssmask(:,:) ! (ISH) tmask_i = 1 even on the ice shelf183 184 tmask_h(:,:) = 1._wp ! 0 on the halo and 1 elsewhere185 iif = jpreci ! ???186 iil = nlci - jpreci + 1187 ijf = jprecj ! ???188 ijl = nlcj - jprecj + 1189 190 tmask_h( 1 :iif, : ) = 0._wp ! first columns191 tmask_h(iil:jpi, : ) = 0._wp ! last columns (including mpp extra columns)192 tmask_h( : , 1 :ijf) = 0._wp ! first rows193 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) 194 194 195 195 ! north fold mask 196 196 ! --------------- 197 tpol(1:jpiglo) = 1._wp198 fpol(1:jpiglo) = 1._wp199 IF( jperio == 3 .OR. jperio == 4 ) THEN ! T-point pivot200 tpol(jpiglo/2+1:jpiglo) = 0._wp201 fpol( 1 :jpiglo) = 0._wp202 IF( mjg(nlej) == jpjglo ) THEN ! only half of the nlcj-1 row203 DO ji = iif+1, iil-1204 tmask_h(ji,nlej-1) = tmask_h(ji,nlej-1) * tpol(mig(ji))205 END DO206 ENDIF207 ENDIF197 ! 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 208 208 209 tmask_i(:,:) = tmask_i(:,:) * tmask_h(:,:)210 211 IF( jperio == 5 .OR. jperio == 6 ) THEN ! F-point pivot212 tpol( 1 :jpiglo) = 0._wp213 fpol(jpiglo/2+1:jpiglo) = 0._wp214 ENDIF209 ! 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 215 215 216 216 ! 2. Ocean/land mask at u-, v-, and z-points (computed from tmask) … … 229 229 END DO 230 230 ! (ISF) MIN(1,SUM(umask)) is here to check if you have effectively at least 1 wet cell at u point 231 232 DO ji = 1, jpim1 ! vector loop233 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 DO236 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 DO240 END DO241 CALL lbc_lnk( umask , 'U', 1._wp ) ! Lateral boundary conditions242 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 conditions245 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 ) 247 247 248 248 ! 3. Ocean/land mask at wu-, wv- and w points … … 355 355 ENDIF 356 356 ! 357 CALL lbc_lnk( fmask, 'F', 1._wp ) ! Lateral boundary conditions on fmask357 CALL lbc_lnk( 'toto',fmask, 'F', 1._wp ) ! Lateral boundary conditions on fmask 358 358 ! 359 359 ! CAUTION : The fmask may be further modified in dyn_vor_init ( dynvor.F90 ) … … 362 362 CALL wrk_dealloc( jpi, jpj, zwf ) 363 363 ! 364 IF( nn_timing == 1 ) CALL timing_stop('dom_msk')364 ! IF( nn_timing == 1 ) CALL timing_stop('dom_msk') 365 365 ! 366 366 END SUBROUTINE dom_msk
Note: See TracChangeset
for help on using the changeset viewer.