Ticket #1618: bdyini.patch
File bdyini.patch, 1.7 KB (added by jamesharle, 8 years ago) |
---|
-
bdyini.F90
1115 1115 ! bdytmask = 1 on the computational domain AND on open boundaries 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 ) 1120 1122 CALL iom_get ( inum, jpdom_data, 'bdy_msk', bdytmask(:,:) ) … … 1131 1133 END DO 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 1164 1140 ! from mask on T grid here.