Changeset 9614


Ignore:
Timestamp:
2018-05-21T11:29:38+02:00 (2 years ago)
Author:
frrh
Message:

Create 3D U and V interior masks to mask out wrap columns
and 1st and last rows. Apply to appropriate grids
at dfinition phase.

Location:
branches/UKMO/dev_r5518_GO6_diag_bitcomp/NEMOGCM/NEMO/OPA_SRC
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_r5518_GO6_diag_bitcomp/NEMOGCM/NEMO/OPA_SRC/DIA/diaptr.F90

    r9207 r9614  
    102102 
    103103      ! 
     104      z2d(:,:) = 0._wp 
    104105      z3d(:,:,:) = 0._wp 
    105106      IF( PRESENT( pvtr ) ) THEN 
     
    246247         ! 
    247248         IF( iom_use("zotemglo") ) THEN    ! i-mean i-k-surface  
     249            zmask(:,:,:) = 0._wp 
     250            zts(:,:,:,:) = 0._wp 
    248251            DO jk = 1, jpkm1 
    249252               DO jj = 1, jpj 
  • branches/UKMO/dev_r5518_GO6_diag_bitcomp/NEMOGCM/NEMO/OPA_SRC/DIA/diawri.F90

    r8400 r9614  
    246246            z3d(:,:,jk) = wn(:,:,jk) * z2d(:,:) 
    247247         END DO 
     248         CALL lbc_lnk( z3d(:,:,:), 'W', 1. ) 
    248249         CALL iom_put( "w_masstr" , z3d )   
    249250         IF( iom_use('w_masstr2') )   CALL iom_put( "w_masstr2", z3d(:,:,:) * z3d(:,:,:) ) 
     
    334335            z2d(:,:) = z2d(:,:) + z3d(:,:,jk) 
    335336         END DO 
     337         CALL lbc_lnk( z3d(:,:,:), 'U', -1. ) 
    336338         CALL iom_put( "u_masstr", z3d )                  ! mass transport in i-direction 
     339         CALL lbc_lnk( z2d(:,:), 'U', -1. ) 
    337340         CALL iom_put( "u_masstr_vint", z2d )             ! mass transport in i-direction vertical sum 
    338341      ENDIF 
     
    370373            z3d(:,:,jk) = rau0 * vn(:,:,jk) * e1v(:,:) * fse3v(:,:,jk) * vmask(:,:,jk) 
    371374         END DO 
     375         CALL lbc_lnk( z3d(:,:,:), 'V', -1. ) 
    372376         CALL iom_put( "v_masstr", z3d )                  ! mass transport in j-direction 
    373377      ENDIF 
  • branches/UKMO/dev_r5518_GO6_diag_bitcomp/NEMOGCM/NEMO/OPA_SRC/DOM/dom_oce.F90

    r9608 r9614  
    254254   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   bathy                              !: ocean depth (meters) 
    255255   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   tmask_i, umask_i, vmask_i, fmask_i !: interior domain T-point mask 
    256    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   tmask_i_3d       !: 3D T-point mask of wrap and redundant N-fold points only. 
     256   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: tmask_i_3d       !: 3D T-point mask of wrap and redundant N-fold points only. 
     257   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: umask_i_3d       !: 3D U-point mask of wrap and redundant N-fold points only. 
     258   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: vmask_i_3d       !: 3D V-point mask of wrap and redundant N-fold points only. 
    257259   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   bmask                              !: land/ocean mask of barotropic stream function 
    258260 
     
    408410      ALLOCATE( tmask(jpi,jpj,jpk) , umask(jpi,jpj,jpk),     &  
    409411         &      vmask(jpi,jpj,jpk) , fmask(jpi,jpj,jpk),     & 
    410                 tmask_i_3d(jpi,jpj,jpk),       STAT=ierr(11) ) 
     412                tmask_i_3d(jpi,jpj,jpk),       & 
     413                umask_i_3d(jpi,jpj,jpk),       & 
     414                vmask_i_3d(jpi,jpj,jpk),       & 
     415                STAT=ierr(11) ) 
    411416 
    412417      ALLOCATE( wmask(jpi,jpj,jpk) , wumask(jpi,jpj,jpk), wvmask(jpi,jpj,jpk) , STAT=ierr(12) ) 
  • branches/UKMO/dev_r5518_GO6_diag_bitcomp/NEMOGCM/NEMO/OPA_SRC/DOM/dommsk.F90

    r9608 r9614  
    256256         ENDIF 
    257257      ENDIF 
     258 
     259 
    258260      IF( jperio == 5 .OR. jperio == 6 ) THEN      ! F-point pivot 
    259261         tpol(     1    :jpiglo) = 0._wp 
     
    292294      CALL lbc_lnk( vmask_i, 'V', 1._wp ) 
    293295      CALL lbc_lnk( fmask_i, 'F', 1._wp ) 
     296 
     297      ! Set up interior 3d U mask 
     298      umask_i_3d(:,:,:) = umask(:,:,:)  
     299      ! Now mask out any wrap columns 
     300      umask_i_3d( 1 :iif,:,:) = 0._wp       ! first columns 
     301      umask_i_3d(iil:jpi,:,:) = 0._wp       ! last  columns (including mpp extra columns) 
     302      ! Now mask out any extra rows 
     303      umask_i_3d(:,1:ijf,:) = 0._wp         ! first rows 
     304      umask_i_3d(:,ijl:jpj,:) = 0._wp       ! last  rows (including mpp extra rows) 
     305 
     306      ! Set up interior 3d V mask 
     307      vmask_i_3d(:,:,:) = vmask(:,:,:)  
     308      ! Now mask out any wrap columns 
     309      vmask_i_3d( 1 :iif,:,:) = 0._wp       ! first columns 
     310      vmask_i_3d(iil:jpi,:,:) = 0._wp       ! last  columns (including mpp extra columns) 
     311      ! Now mask out any extra rows 
     312      vmask_i_3d(:,1:ijf,:) = 0._wp         ! first rows 
     313      vmask_i_3d(:,ijl:jpj,:) = 0._wp       ! last  rows (including mpp extra rows) 
     314 
    294315 
    295316      ! 3. Ocean/land mask at wu-, wv- and w points  
  • branches/UKMO/dev_r5518_GO6_diag_bitcomp/NEMOGCM/NEMO/OPA_SRC/IOM/iom.F90

    r9608 r9614  
    14021402         SELECT CASE ( cdgrd ) 
    14031403         CASE('T')    
    1404             zmask(:,:,:)       = tmask_i_3d(:,:,:) 
     1404            zmask(:,:,:) = tmask_i_3d(:,:,:) 
    14051405         CASE('U') 
    1406             zmask(2:jpim1,:,:) = tmask_i_3d(2:jpim1,:,:) + tmask_i_3d(3:jpi,:,:)    
    1407             CALL lbc_lnk( zmask, 'U', 1. ) 
     1406            zmask(:,:,:) = umask_i_3d(:,:,:)  
    14081407         CASE('V')  
    1409             zmask(:,2:jpjm1,:) = tmask_i_3d(:,2:jpjm1,:) + tmask_i_3d(:,3:jpj,:)    
    1410             CALL lbc_lnk( zmask, 'V', 1. ) 
     1408            zmask(:,:,:) = vmask_i_3d(:,:,:)  
    14111409         CASE('W')    
    14121410            zmask(:,:,2:jpk  ) = tmask_i_3d(:,:,1:jpkm1) + tmask_i_3d(:,:,2:jpk)    
Note: See TracChangeset for help on using the changeset viewer.