- Timestamp:
- 2016-12-20T15:40:04+01:00 (8 years ago)
- Location:
- branches/2016/dev_merge_2016/NEMOGCM/CONFIG/WAD_TEST_CASES
- Files:
-
- 8 deleted
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2016/dev_merge_2016/NEMOGCM/CONFIG/WAD_TEST_CASES/EXP00/README.py
r7412 r7514 1 ncks -d y,17,17,1 WAD_1ts_00010101_00010101_grid_T.nc sshtime.nc 2 ncks -4 -A -v gdepw_0,bathy -d y,17,17,1 -d z,9,9,1 -C mesh_mask_wad1.nc sshtime.nc 1 ncks -O -d y,17,17,1 WAD_1ts_00010101_00010101_grid_T.nc sshtime.nc 2 ncks -4 -A -v gdepw_0,ht_wd -d y,17,17,1 -d z,10,10,1 -C mesh_mask.nc sshtime.nc 3 4 python2.7 matpoly2.py sshtime.nc 5 animate wadfr*.png -
branches/2016/dev_merge_2016/NEMOGCM/CONFIG/WAD_TEST_CASES/EXP00/matpoly2.py
r7412 r7514 21 21 fw = Dataset(pathin) 22 22 ssh = fw.variables['sossheig'][:,:,:] 23 #bat = fw.variables['gdepw_0'][0,0,:,:]24 bat = fw.variables['bathy'][0,:,:]23 bat = fw.variables['gdepw_0'][0,0,:,:] 24 #bat = fw.variables['ht_wd'][0,:,:] 25 25 #vot = fw.variables['votemper'][:,0,:,:] 26 26 vot = fw.variables['sosaline'][:,:,:] … … 49 49 dy = np.int(t/24.0) 50 50 51 tfac = 1 2.0/3600.051 tfac = 18.0/3600.0 52 52 t24 = np.int(np.mod(t*tfac,24)) 53 53 dy = np.int(t*tfac/24.0) … … 112 112 p.set_array(np.array(colors)) 113 113 114 ax.set_ylim([-10., 4.0]) 115 ax.set_xlim([0., 50.0]) 114 116 ax.add_collection(p) 115 117 ax.plot(xs,ys, '--', color='black', ms=10) -
branches/2016/dev_merge_2016/NEMOGCM/CONFIG/WAD_TEST_CASES/MY_SRC/usrdef_istate.F90
r7467 r7514 14 14 !!---------------------------------------------------------------------- 15 15 USE par_oce ! ocean space and time domain 16 USE dom_oce , ONLY : mi0, mig, mjg, glamt, ht_016 USE dom_oce , ONLY : mi0, mig, mjg, glamt, gphit, ht_0 17 17 USE phycst ! physical constants 18 18 USE wet_dry ! Wetting and drying … … 74 74 !!---------------------------------------------------------------------- 75 75 ! 76 ! Uniform T & S in alltest cases76 ! Uniform T & S in most test cases 77 77 pts(:,:,:,jp_tem) = 10._wp 78 !tsb(:,:,:,jp_tem) = 10._wp79 78 pts(:,:,:,jp_sal) = 35._wp 80 !tsb(:,:,:,jp_sal) = 35._wp81 79 SELECT CASE ( nn_cfg ) 82 80 ! ! ==================== … … 90 88 do ji = 1,jpi 91 89 pssh(ji,:) = ( -5.5_wp + 5.5_wp*glamt(ji,1)/50._wp)*ptmask(ji,:,1) 92 !write(*,*) 'SSH ',jpk,mig(ji),pssh(ji,1),ht_0(ji,1),-5.5_wp+5.5_wp*glamt(ji,1)/50._wp,ptmask(ji,1,1)93 90 end do 94 91 ! ! ==================== … … 101 98 ! 102 99 do ji = 1,jpi 103 pssh(ji,:) = ( -5.5_wp + 3.9_wp*FLOAT(jpiglo - mig(ji))/FLOAT(jpiglo-1))*ptmask(ji,:,1)100 pssh(ji,:) = ( -5.5_wp + 6.5_wp*glamt(ji,1)/50._wp)*ptmask(ji,:,1) 104 101 end do 105 102 ! ! ==================== … … 112 109 ! 113 110 do ji = 1,jpi 114 pssh(ji,:) = ( - 7.5_wp + 6.9_wp*FLOAT(jpiglo - mig(ji))/FLOAT(jpiglo-1))*ptmask(ji,:,1)111 pssh(ji,:) = ( -5.5_wp + 5.5_wp*glamt(ji,1)/50._wp)*ptmask(ji,:,1) 115 112 end do 116 113 … … 125 122 ! 126 123 DO ji = 1, jpi 127 zi = MAX(1.0- FLOAT((mig(ji)-25)**2)/400.0, 0.0 )124 zi = MAX(1.0-((glamt(ji,1)-25._wp)**2)/400.0, 0.0 ) 128 125 DO jj = 1, jpj 129 zj = MAX(1.0- FLOAT((mjg(jj)-17)**2)/144.0, 0.0 )126 zj = MAX(1.0-((gphit(1,jj)-17._wp)**2)/144.0, 0.0 ) 130 127 pssh(ji,jj) = -8.5_wp + 8.5_wp*zi*zj 131 128 END DO … … 141 138 IF(lwp) WRITE(numout,*) '~~~~~~~~~~' 142 139 ! 143 ! Needed rn_wdmin2 increased to 0.01 for this case?144 140 do ji = 1,jpi 145 pssh(ji,:) = ( -5.5_wp + 9.0_wp*FLOAT(mig(ji))/FLOAT(jpiglo-1))*ptmask(ji,:,1)141 pssh(ji,:) = ( -5.5_wp + 5.5_wp*glamt(ji,1)/50._wp)*ptmask(ji,:,1) 146 142 end do 147 143 … … 166 162 !pssh(ji,:) = ( -4.5_wp + 8.0_wp*FLOAT(jpiglo - mig(ji))/FLOAT(jpiglo-1))*ptmask(ji,:,1) 167 163 !6e 168 pssh(ji,:) = ( -3.5_wp + 7.0_wp*FLOAT(jpiglo - mig(ji))/FLOAT(jpiglo-1))*ptmask(ji,:,1)164 pssh(ji,:) = ( -3.5_wp + 5.5_wp*(50._wp-glamt(ji,1))/50._wp)*ptmask(ji,:,1) 169 165 !6f 170 166 !pssh(ji,:) = ( 0.5_wp + 3.75_wp*FLOAT(jpiglo - mig(ji))/FLOAT(jpiglo-1))*ptmask(ji,:,1) … … 173 169 do ji = mi0(jpiglo/2), mi0(jpiglo) 174 170 pts(ji,:,:,jp_sal) = 30._wp 175 !tsb(ji,:,:,jp_sal) = 30._wp176 171 end do 177 172 ! … … 191 186 IF( ht_wd(ji,jj) + pssh(ji,jj) < rn_wdmin1 ) THEN 192 187 pssh(ji,jj) = ptmask(ji,jj,1)*( rn_wdmin1 - ht_wd(ji,jj) ) 193 !IF (jj.eq.4) write(*,*) 'SSH2 ',mig(ji),pssh(ji,4),ht_0(ji,4),-5.5_wp+5.5_wp*glamt(ji,4)/50._wp,ptmask(ji,4,1)194 188 ENDIF 195 189 end do 196 190 end do 197 !sshb = sshn198 !ssha = sshn199 191 ! 200 ! CALL wad_istate ! WAD test configuration : start from pre-defined T-S fields and initial ssh slope201 !202 192 END SUBROUTINE usr_def_istate 203 193 -
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.