Changeset 6948
- Timestamp:
- 2016-09-23T14:56:46+02:00 (8 years ago)
- Location:
- branches/NERC/dev_r5840_BDY_MSK/NEMOGCM/NEMO/OPA_SRC
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/NERC/dev_r5840_BDY_MSK/NEMOGCM/NEMO/OPA_SRC/BDY/bdyini.F90
r5836 r6948 1116 1116 ! = 0 elsewhere 1117 1117 1118 bdytmask(:,:) = ssmask(:,:) 1119 1118 1120 IF( ln_mask_file ) THEN 1119 1121 CALL iom_open( cn_mask_file, inum ) … … 1132 1134 CALL lbc_lnk( bdyumask(:,:), 'U', 1. ) ; CALL lbc_lnk( bdyvmask(:,:), 'V', 1. ) ! Lateral boundary cond. 1133 1135 1134 1135 ! Mask corrections1136 ! ----------------1137 DO ik = 1, jpkm11138 DO ij = 1, jpj1139 DO ii = 1, jpi1140 tmask(ii,ij,ik) = tmask(ii,ij,ik) * bdytmask(ii,ij)1141 umask(ii,ij,ik) = umask(ii,ij,ik) * bdyumask(ii,ij)1142 vmask(ii,ij,ik) = vmask(ii,ij,ik) * bdyvmask(ii,ij)1143 bmask(ii,ij) = bmask(ii,ij) * bdytmask(ii,ij)1144 END DO1145 END DO1146 END DO1147 1148 DO ik = 1, jpkm11149 DO ij = 2, jpjm11150 DO ii = 2, jpim11151 fmask(ii,ij,ik) = fmask(ii,ij,ik) * bdytmask(ii,ij ) * bdytmask(ii+1,ij ) &1152 & * bdytmask(ii,ij+1) * bdytmask(ii+1,ij+1)1153 END DO1154 END DO1155 END DO1156 1157 tmask_i (:,:) = ssmask(:,:) * tmask_i(:,:)1158 1159 1136 ENDIF ! ln_mask_file=.TRUE. 1160 1137 1161 bdytmask(:,:) = ssmask(:,:)1162 1138 IF( .not. ln_mask_file ) THEN 1163 1139 ! If .not. ln_mask_file then we need to derive mask on U and V grid -
branches/NERC/dev_r5840_BDY_MSK/NEMOGCM/NEMO/OPA_SRC/DOM/dommsk.F90
r5836 r6948 25 25 USE oce ! ocean dynamics and tracers 26 26 USE dom_oce ! ocean space and time domain 27 USE bdy_oce 27 28 USE in_out_manager ! I/O manager 28 29 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 29 30 USE lib_mpp 31 USE iom 30 32 USE dynspg_oce ! choice/control of key cpp for surface pressure gradient 31 33 USE wrk_nemo ! Memory allocation … … 115 117 INTEGER :: iif, iil, ii0, ii1, ii ! local integers 116 118 INTEGER :: ijf, ijl, ij0, ij1 ! - - 117 INTEGER :: ios 119 INTEGER :: ios, inum 118 120 INTEGER :: isrow ! index for ORCA1 starting row 119 121 INTEGER , POINTER, DIMENSION(:,:) :: imsk … … 121 123 !! 122 124 NAMELIST/namlbc/ rn_shlat, ln_vorlat 125 #if defined key_bdy 126 NAMELIST/nambdy/ nb_bdy, ln_coords_file, cn_coords_file, & 127 & ln_mask_file, cn_mask_file, cn_dyn2d, nn_dyn2d_dta, & 128 & cn_dyn3d, nn_dyn3d_dta, cn_tra, nn_tra_dta, & 129 & ln_tra_dmp, ln_dyn3d_dmp, rn_time_dmp, rn_time_dmp_out, & 130 & cn_ice_lim, nn_ice_lim_dta, & 131 & rn_ice_tem, rn_ice_sal, rn_ice_age, & 132 & ln_vol, nn_volctl, nn_rimwidth, nb_jpk_bdy 133 #endif 123 134 !!--------------------------------------------------------------------- 124 135 ! … … 168 179 END DO 169 180 181 #if defined key_bdy 182 REWIND( numnam_ref ) ! Namelist nambdy in reference namelist :Unstructured open boundaries 183 READ ( numnam_ref, nambdy, IOSTAT = ios, ERR = 901) 184 903 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambdy in reference namelist', lwp ) 185 186 REWIND( numnam_cfg ) ! Namelist nambdy in configuration namelist :Unstructured open boundaries 187 READ ( numnam_cfg, nambdy, IOSTAT = ios, ERR = 902 ) 188 904 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambdy in configuration namelist', lwp ) 189 IF(lwm) WRITE ( numond, nambdy ) 190 191 IF( ln_mask_file ) THEN ! correct for bdy mask 192 CALL iom_open( cn_mask_file, inum ) 193 CALL iom_get ( inum, jpdom_data, 'bdy_msk', bdytmask(:,:) ) 194 CALL iom_close( inum ) 195 196 ! Derive mask on U and V grid from mask on T grid 197 bdyumask(:,:) = 0.e0 198 bdyvmask(:,:) = 0.e0 199 DO jj=1, jpjm1 200 DO ji=1, jpim1 201 bdyumask(ji,jj)=bdytmask(ji,jj)*bdytmask(ji+1, jj ) 202 bdyvmask(ji,jj)=bdytmask(ji,jj)*bdytmask(ji ,jj+1) 203 END DO 204 END DO 205 CALL lbc_lnk( bdyumask(:,:), 'U', 1. ) ; CALL lbc_lnk( bdyvmask(:,:), 'V', 1. ) ! Lateral boundary cond. 206 207 208 ! Mask corrections 209 ! ---------------- 210 DO jk = 1, jpkm1 211 DO jj = 1, jpj 212 DO ji = 1, jpi 213 tmask(ji,jj,jk) = tmask(ji,jj,jk) * bdytmask(ji,jj) 214 END DO 215 END DO 216 END DO 217 ENDIF 218 #endif 170 219 ! (ISF) define barotropic mask and mask the ice shelf point 171 220 ssmask(:,:)=tmask(:,:,1) ! at this stage ice shelf is not masked
Note: See TracChangeset
for help on using the changeset viewer.