- Timestamp:
- 2016-12-20T15:40:04+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2016/dev_merge_2016/NEMOGCM/CONFIG/WAD_TEST_CASES/MY_SRC/usrdef_zgr.F90
r7467 r7514 106 106 zi = MIN((glamt(ji,1) - 10.0)/40.0, 1.0 ) 107 107 zht(ji,:) = MAX(zbathy*zi, 1.5) 108 IF(lwp)write(numout,*) 'ZDTA ',ji,zi,zht(ji,1)109 108 END DO 110 109 zht(mi0(1):mi1(1),:) = -4._wp … … 122 121 DO ji = 1, jpi 123 122 zi = MAX(1.0-((glamt(ji,1)-25.0)**2)/484.0, 0.0 ) 124 zi = MAX(1.0-((glamt(ji,1)-25.0)**2)/484.0, -2.0 ) 125 zht(ji,:) = MAX(zbathy*zi, -20.0) 126 IF(lwp)write(numout,*) 'ZDTA ',ji,zi,zht(ji,1) 127 END DO 128 zht(mi0(1):mi1(2),:) = -4._wp 129 zht(mi0(jpiglo-1):mi1(jpiglo),:) = -4._wp 123 zht(ji,:) = MAX(zbathy*zi, 1.5) 124 END DO 125 zht(mi0(1):mi1(1),:) = -4._wp 126 zht(mi0(jpiglo):mi1(jpiglo),:) = -4._wp 130 127 zht(:,mj0(1):mj1(1)) = -4._wp 131 128 zht(:,mj0(jpjglo):mj1(jpjglo)) = -4._wp … … 142 139 DO jj = 1, jpj 143 140 zj = MAX(1.0-((gphit(1,jj)-17.0)**2)/196.0, -2.0 ) 144 zht(ji,jj) = MAX(zbathy*zi*zj, -2.0) 145 END DO 146 IF(lwp)write(numout,*) 'ZDTA ',ji,zi,zht(ji,1) 141 zht(ji,jj) = MAX(zbathy*zi*zj, 1.5) 142 END DO 147 143 END DO 148 144 zht(mi0(1):mi1(1),:) = -4._wp 149 zht(mi0(jpiglo -1):mi1(jpiglo),:) = -4._wp145 zht(mi0(jpiglo):mi1(jpiglo),:) = -4._wp 150 146 zht(:,mj0(1):mj1(1)) = -4._wp 151 147 zht(:,mj0(jpjglo):mj1(jpjglo)) = -4._wp … … 160 156 DO ji = 1, jpi 161 157 zi = MIN(glamt(ji,1)/45.0, 1.0 ) 162 zht(ji,:) = MAX(zbathy*zi, 0.5)158 zht(ji,:) = MAX(zbathy*zi, 1.5) 163 159 IF( glamt(ji,1) >= 46.0 ) THEN 164 160 zht(ji,:) = 10.0 … … 170 166 ELSE IF( glamt(ji,1) >= 4.0 .AND. glamt(ji,1) < 15.0 ) THEN 171 167 zi = 2.0/11.0 172 zht(ji,:) = MAX(2.5 - zi*(16.0-glamt(ji,1)), 0.5)168 zht(ji,:) = MAX(2.5 - zi*(16.0-glamt(ji,1)), 1.5) 173 169 ELSE IF( glamt(ji,1) >= 1.0 .AND. glamt(ji,1) < 4.0 ) THEN 174 zht(ji,:) = 0.5170 zht(ji,:) = 1.5 175 171 ENDIF 176 IF(lwp)write(numout,*) 'ZDTA ',ji,zi,zht(ji,1)177 172 END DO 178 173 ! ! =========================== … … 192 187 zi = MAX(1.0-((glamt(ji,1)-25.0)**2)/484.0, -2.0 ) 193 188 zj = 0.95*MAX(EXP(-1.0*((glamt(ji,1)-25.0)**2)/32.0) , 0.0 ) 194 zht(ji,:) = MAX(zbathy*(zi-zj), -2.0) 195 IF(lwp)write(numout,*) 'ZDTA ',ji,zi,zht(ji,1) 189 zht(ji,:) = MAX(zbathy*(zi-zj), 1.0) 196 190 END DO 197 191 zht(mi0(1):mi1(1),:) = -4._wp … … 214 208 zhu(ji,:) = 0.5_wp * ( zht(ji,:) + zht(ji+1,:) ) 215 209 END DO 216 IF(lwp) write(numout,*) 'E3a zu ', MINVAL(zht(:,:)), MINVAL(zhu(:,:)), MINVAL(zhv(:,:))217 210 CALL lbc_lnk( zhu, 'U', 1. ) ! boundary condition: this mask the surrounding grid-points 218 211 ! ! ==>>> set by hand non-zero value on first/last columns & rows 219 IF(lwp) write(numout,*) 'E3b zu ', MINVAL(zht(:,:)), MINVAL(zhu(:,:)), MINVAL(zhv(:,:))220 212 DO ji = mi0(1), mi1(1) ! first row of global domain only 221 213 zhu(ji,:) = zht(1,:) … … 224 216 zhu(ji,:) = zht(jpi,:) 225 217 END DO 226 IF(lwp) write(numout,*) 'E3c zu ', MINVAL(zht(:,:)), MINVAL(zhu(:,:)), MINVAL(zhv(:,:))227 218 ! at v-point: averaging zht 228 219 zhv = 0._wp … … 231 222 END DO 232 223 CALL lbc_lnk( zhv, 'V', 1. ) ! boundary condition: this mask the surrounding grid-points 233 IF(lwp) write(numout,*) 'E3d zu ', MINVAL(zht(:,:)), MINVAL(zhu(:,:)), MINVAL(zhv(:,:))234 224 !avoid the zero depth on T- (U-,V-,F-) points 235 225 DO jj = 1, jpj … … 243 233 END DO 244 234 END DO 245 IF(lwp) write(numout,*) 'E3e zu ', MINVAL(zht(:,:)), MINVAL(zhu(:,:)), MINVAL(zhv(:,:))246 235 ! 247 236 CALL zgr_z1d( pdept_1d, pdepw_1d, pe3t_1d , pe3w_1d ) ! Reference z-coordinate system … … 274 263 DO ji = 1, jpi 275 264 IF( zht(ji,jj) <= -(rn_wdld - rn_wdmin2)) THEN 276 !WRITE(numout,*) 'KBOT ',ji,jj,zht(ji,jj),rn_wdld,rn_wdmin2277 265 k_bot(ji,jj) = 0 278 266 zht(ji,jj) = rn_wdmin1 * REAL( jpkm1 , wp) * 0.5_wp … … 280 268 k_bot(ji,jj) = 2 281 269 zht(ji,jj) = rn_wdmin1 * REAL( jpkm1 , wp) * 0.5_wp 282 !WRITE(numout,*) 'KBOT1 ',ji,jj,zht(ji,jj),rn_wdmin1283 270 ENDIF 284 271 END DO … … 287 274 zhu(ji,:) = 0.5_wp * ( zht(ji,:) + zht(ji+1,:) ) 288 275 END DO 289 IF(lwp) write(numout,*) 'E3f zu ', MINVAL(zht(:,:)), MINVAL(zhu(:,:)), MINVAL(zhv(:,:))290 276 ! ! ==>>> set by hand non-zero value on 291 277 ! first/last columns & rows 292 IF(lwp) write(numout,*) 'E3f Zu ', MINVAL(zht(:,:)), MINVAL(zhu(:,:)), MINVAL(zhv(:,:))293 278 CALL lbc_lnk( zhu, 'U', 1. ) ! boundary condition: this mask the surrounding grid-points 294 IF(lwp) write(numout,*) 'E3F zu ', MINVAL(zht(:,:)), MINVAL(zhu(:,:)), MINVAL(zhv(:,:))295 279 DO ji = mi0(1), mi1(1) ! first row of global domain only 296 280 zhu(ji,:) = zht(ji,:) … … 300 284 END DO 301 285 ! at v-point: averaging zht 302 IF(lwp) write(numout,*) 'E3g zu ', MINVAL(zht(:,:)), MINVAL(zhu(:,:)), MINVAL(zhv(:,:))303 286 zhv = 0._wp 304 287 DO jj = 1, jpjm1 305 288 zhv(:,jj) = 0.5_wp * ( zht(:,jj) + zht(:,jj+1) ) 306 289 END DO 307 IF(lwp) write(numout,*) 'E3h zu ', MINVAL(zht(:,:)), MINVAL(zhu(:,:)), MINVAL(zhv(:,:))308 290 CALL lbc_lnk( zhv, 'V', 1. ) 309 IF(lwp) write(numout,*) 'E3H zu ', MINVAL(zht(:,:)), MINVAL(zhu(:,:)), MINVAL(zhv(:,:))310 291 DO jj = mj0(1), mj1(1) ! first row of global domain only 311 292 zhv(:,jj) = zht(:,jj) … … 359 340 CALL lbc_lnk( pe3vw, 'V', 1. ) 360 341 CALL lbc_lnk( pe3f , 'F', 1. ) 361 WHERE( pe3t (:,:,:) == 0._wp ) pe3t (:,:,:) = 1._wp 362 WHERE( pe3u (:,:,:) == 0._wp ) pe3u (:,:,:) = 1._wp 363 WHERE( pe3v (:,:,:) == 0._wp ) pe3v (:,:,:) = 1._wp 364 WHERE( pe3f (:,:,:) == 0._wp ) pe3f (:,:,:) = 1._wp 365 WHERE( pe3w (:,:,:) == 0._wp ) pe3w (:,:,:) = 1._wp 366 WHERE( pe3uw(:,:,:) == 0._wp ) pe3uw(:,:,:) = 1._wp 367 WHERE( pe3vw(:,:,:) == 0._wp ) pe3vw(:,:,:) = 1._wp 368 IF(lwp) write(numout,*) 'E3 TU ',SUM(0._wp/pe3t(:,:,:)), MINVAL(pe3t(:,:,:)), rn_wdmin1 ; CALL FLUSH(numout) 369 IF(lwp) write(numout,*) 'E3 tu ',SUM(0._wp/pe3u(:,:,:)), MINVAL(pe3u(:,:,:)) 370 IF(lwp) write(numout,*) 'E3 tv ',SUM(0._wp/pe3v(:,:,:)), MINVAL(pe3v(:,:,:)) 371 IF(lwp) write(numout,*) 'E3 tf ',SUM(0._wp/pe3f(:,:,:)), MINVAL(pe3f(:,:,:)) 372 IF(lwp) write(numout,*) 'E3 zu ', MINVAL(zht(:,:)), MINVAL(zhu(:,:)), MINVAL(zhv(:,:)) 342 WHERE( pe3t (:,:,:) == 0._wp ) pe3t (:,:,:) = 1._wp 343 WHERE( pe3u (:,:,:) == 0._wp ) pe3u (:,:,:) = 1._wp 344 WHERE( pe3v (:,:,:) == 0._wp ) pe3v (:,:,:) = 1._wp 345 WHERE( pe3f (:,:,:) == 0._wp ) pe3f (:,:,:) = 1._wp 346 WHERE( pe3w (:,:,:) == 0._wp ) pe3w (:,:,:) = 1._wp 347 WHERE( pe3uw(:,:,:) == 0._wp ) pe3uw(:,:,:) = 1._wp 348 WHERE( pe3vw(:,:,:) == 0._wp ) pe3vw(:,:,:) = 1._wp 373 349 ENDIF 374 350 !
Note: See TracChangeset
for help on using the changeset viewer.