Changeset 3994
- Timestamp:
- 2013-07-30T15:20:03+02:00 (11 years ago)
- Location:
- branches/2013/dev_r3987_METO1_MERCATOR6_OBC_BDY_merge/NEMOGCM/NEMO/OPA_SRC
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2013/dev_r3987_METO1_MERCATOR6_OBC_BDY_merge/NEMOGCM/NEMO/OPA_SRC/BDY/bdydyn2d.F90
r3991 r3994 220 220 igrd = 2 ! Orlanski bc on u-velocity; 221 221 ! 222 CALL bdy_orlanski_2d( idx, igrd, pub2d, pua2d, dta%u2d, ll_npo )222 CALL bdy_orlanski_2d( idx, igrd, pub2d, pua2d, dta%u2d, umask(:,:,1), ll_npo ) 223 223 224 224 igrd = 3 ! Orlanski bc on v-velocity 225 225 ! 226 CALL bdy_orlanski_2d( idx, igrd, pvb2d, pva2d, dta%v2d, ll_npo )226 CALL bdy_orlanski_2d( idx, igrd, pvb2d, pva2d, dta%v2d, vmask(:,:,1), ll_npo ) 227 227 ! 228 228 IF( nn_timing == 1 ) CALL timing_stop('bdy_dyn2d_orlanski') -
branches/2013/dev_r3987_METO1_MERCATOR6_OBC_BDY_merge/NEMOGCM/NEMO/OPA_SRC/BDY/bdydyn3d.F90
r3991 r3994 239 239 igrd = 2 ! Orlanski bc on u-velocity; 240 240 ! 241 CALL bdy_orlanski_3d( idx, igrd, ub, ua, dta%u3d, ll_npo )241 CALL bdy_orlanski_3d( idx, igrd, ub, ua, dta%u3d, umask, ll_npo ) 242 242 243 243 igrd = 3 ! Orlanski bc on v-velocity 244 244 ! 245 CALL bdy_orlanski_3d( idx, igrd, vb, va, dta%v3d, ll_npo )245 CALL bdy_orlanski_3d( idx, igrd, vb, va, dta%v3d, vmask, ll_npo ) 246 246 ! 247 247 CALL lbc_bdy_lnk( ua, 'U', -1., ib_bdy ) ! Boundary points should be updated -
branches/2013/dev_r3987_METO1_MERCATOR6_OBC_BDY_merge/NEMOGCM/NEMO/OPA_SRC/BDY/bdylib.F90
r3991 r3994 34 34 CONTAINS 35 35 36 SUBROUTINE bdy_orlanski_2d( idx, igrd, phib, phia, phi_ext, ll_npo )36 SUBROUTINE bdy_orlanski_2d( idx, igrd, phib, phia, phi_ext, mask, ll_npo ) 37 37 !!---------------------------------------------------------------------- 38 38 !! *** SUBROUTINE bdy_orlanski_2d *** … … 50 50 REAL(wp), DIMENSION(:,:), INTENT(inout) :: phia ! model after 2D field (to be updated) 51 51 REAL(wp), DIMENSION(:), INTENT(in) :: phi_ext ! external forcing data 52 REAL(wp), DIMENSION(:,:), INTENT(in) :: mask ! land/sea mask 52 53 LOGICAL, INTENT(in) :: ll_npo ! switch for NPO version 53 54 … … 95 96 & + (1. - zsign_ups) * ( phib(iibm1jp1,ijbm1jp1) - phib(iibm1 ,ijbm1 ) ) 96 97 znor2 = zdx * zdx + zdy * zdy 98 znor2 = max(znor2,rsmall) 97 99 zcx = zdt * zdx / znor2 98 100 zcy = zdt * zdy / znor2 … … 115 117 end if 116 118 phia(ii,ij) = phia(ii,ij) + zwgt * ( phi_ext(jb) - phia(ii,ij) ) 119 phia(ii,ij) = phia(ii,ij) * mask(ii,ij) 117 120 END DO 118 121 ! … … 122 125 123 126 124 SUBROUTINE bdy_orlanski_3d( idx, igrd, phib, phia, phi_ext, ll_npo )127 SUBROUTINE bdy_orlanski_3d( idx, igrd, phib, phia, phi_ext, mask, ll_npo ) 125 128 !!---------------------------------------------------------------------- 126 129 !! *** SUBROUTINE bdy_orlanski_3d *** … … 138 141 REAL(wp), DIMENSION(:,:,:), INTENT(inout) :: phia ! model after 3D field (to be updated) 139 142 REAL(wp), DIMENSION(:,:), INTENT(in) :: phi_ext ! external forcing data 143 REAL(wp), DIMENSION(:,:,:), INTENT(in) :: mask ! land/sea mask 140 144 LOGICAL, INTENT(in) :: ll_npo ! switch for NPO version 141 145 … … 184 188 & + (1. - zsign_ups) * ( phib(iibm1jp1,ijbm1jp1,jk) - phib(iibm1 ,ijbm1 ,jk) ) 185 189 znor2 = zdx * zdx + zdy * zdy 190 znor2 = max(znor2,rsmall) 186 191 zcx = zdt * zdx / znor2 187 192 zcy = zdt * zdy / znor2 … … 204 209 end if 205 210 phia(ii,ij,jk) = phia(ii,ij,jk) + zwgt * ( phi_ext(jb,jk) - phia(ii,ij,jk) ) 211 phia(ii,ij,jk) = phia(ii,ij,jk) * mask(ii,ij,jk) 206 212 END DO 207 213 ! -
branches/2013/dev_r3987_METO1_MERCATOR6_OBC_BDY_merge/NEMOGCM/NEMO/OPA_SRC/BDY/bdytra.F90
r3991 r3994 224 224 igrd = 1 ! Orlanski bc on temperature; 225 225 ! 226 CALL bdy_orlanski_3d( idx, igrd, tsb(:,:,:,jp_tem), tsa(:,:,:,jp_tem), dta%tem, ll_npo )226 CALL bdy_orlanski_3d( idx, igrd, tsb(:,:,:,jp_tem), tsa(:,:,:,jp_tem), dta%tem, tmask, ll_npo ) 227 227 228 228 igrd = 1 ! Orlanski bc on salinity; 229 229 ! 230 CALL bdy_orlanski_3d( idx, igrd, tsb(:,:,:,jp_sal), tsa(:,:,:,jp_sal), dta%sal, ll_npo )230 CALL bdy_orlanski_3d( idx, igrd, tsb(:,:,:,jp_sal), tsa(:,:,:,jp_sal), dta%sal, tmask, ll_npo ) 231 231 ! 232 232 IF( nn_timing == 1 ) CALL timing_stop('bdy_tra_orlanski') -
branches/2013/dev_r3987_METO1_MERCATOR6_OBC_BDY_merge/NEMOGCM/NEMO/OPA_SRC/DOM/dom_oce.F90
r3851 r3994 193 193 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: bmask !: land/ocean mask of barotropic stream function 194 194 195 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: tmask, umask, vmask, fmask !: land/ocean mask at T-, U-, V- and F-pts195 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:), TARGET :: tmask, umask, vmask, fmask !: land/ocean mask at T-, U-, V- and F-pts 196 196 197 197 REAL(wp), PUBLIC, DIMENSION(jpiglo) :: tpol, fpol !: north fold mask (jperio= 3 or 4)
Note: See TracChangeset
for help on using the changeset viewer.