Changeset 8977
- Timestamp:
- 2017-12-11T14:51:28+01:00 (7 years ago)
- Location:
- branches/UKMO/ROMS_WAD_7832/NEMOGCM
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/ROMS_WAD_7832/NEMOGCM/CONFIG/TEST_CASES/WAD/MY_SRC/usrdef_zgr.F90
r8956 r8977 235 235 236 236 ! increase the depth of the bathymetry by rn_ssh_ref and rn_ht_0 237 !zht(:,:) = zht(:,:) + rn_ssh_ref + rn_ht_0238 237 !zht(:,:) = zht(:,:) + rn_ssh_ref + rn_ht_0 239 238 -
branches/UKMO/ROMS_WAD_7832/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_ts.F90
r8956 r8977 190 190 z1_2 = 0.5_wp 191 191 zraur = 1._wp / rau0 192 zwdramp = 1._wp /rn_wdmin1 ! simplest ramp192 zwdramp = r_rn_wdmin1 ! simplest ramp 193 193 ! zwdramp = 1._wp / (rn_wdmin2 - rn_wdmin1) ! more general ramp 194 194 ! ! reciprocal of baroclinic time step … … 693 693 ztwdmask(ji,jj) = 1._wp 694 694 ELSE IF ( zsshp2_e(ji,jj) + ht_0(ji,jj) > rn_wdmin1 ) THEN 695 ztwdmask(ji,jj) = (tanh(50._wp*( ( zsshp2_e(ji,jj) + ht_0(ji,jj) - rn_wdmin1 ) /rn_wdmin1)) )695 ztwdmask(ji,jj) = (tanh(50._wp*( ( zsshp2_e(ji,jj) + ht_0(ji,jj) - rn_wdmin1 )*r_rn_wdmin1)) ) 696 696 ELSE 697 697 ztwdmask(ji,jj) = 0._wp -
branches/UKMO/ROMS_WAD_7832/NEMOGCM/NEMO/OPA_SRC/DYN/wet_dry.F90
r8956 r8977 41 41 REAL(wp), PUBLIC :: rn_wdmin0 !: depth at which wetting/drying starts 42 42 REAL(wp), PUBLIC :: rn_wdmin1 !: minimum water depth on dried cells 43 REAL(wp), PUBLIC :: r_rn_wdmin1 !: 1/minimum water depth on dried cells 43 44 REAL(wp), PUBLIC :: rn_wdmin2 !: tolerance of minimum water depth on dried cells 44 45 REAL(wp), PUBLIC :: rn_wdld !: land elevation below which wetting/drying will be considered … … 101 102 WRITE(numout,*) ' the height (z) at which ht_0=0: rn_ht_0 = ', rn_ht_0 102 103 ENDIF 103 !104 r_rn_wdmin1=1/rn_wdmin1 104 105 ll_wd = .FALSE. 105 106 IF(ln_wd_il .OR. ln_wd_dl) THEN … … 142 143 IF( nn_timing == 1 ) CALL timing_start('wad_lmt') 143 144 144 IF( ln_wd_il ) THEN 145 146 CALL wrk_alloc( jpi, jpj, zflxp, zflxn, zflxu, zflxv, zflxu1, zflxv1 ) 147 CALL wrk_alloc( jpi, jpj, zwdlmtu, zwdlmtv) 148 ! 149 150 jflag = 0 151 zdepwd = 50._wp !maximum depth on which that W/D could possibly happen 152 153 154 zflxp(:,:) = 0._wp 155 zflxn(:,:) = 0._wp 156 zflxu(:,:) = 0._wp 157 zflxv(:,:) = 0._wp 158 159 zwdlmtu(:,:) = 1._wp 160 zwdlmtv(:,:) = 1._wp 161 162 ! Horizontal Flux in u and v direction 163 DO jk = 1, jpkm1 164 DO jj = 1, jpj 165 DO ji = 1, jpi 166 zflxu(ji,jj) = zflxu(ji,jj) + e3u_n(ji,jj,jk) * un(ji,jj,jk) * umask(ji,jj,jk) 167 zflxv(ji,jj) = zflxv(ji,jj) + e3v_n(ji,jj,jk) * vn(ji,jj,jk) * vmask(ji,jj,jk) 168 END DO 169 END DO 170 END DO 171 172 zflxu(:,:) = zflxu(:,:) * e2u(:,:) 173 zflxv(:,:) = zflxv(:,:) * e1v(:,:) 174 175 wdmask(:,:) = 1 176 DO jj = 2, jpj 177 DO ji = 2, jpi 178 179 IF( tmask(ji, jj, 1) < 0.5_wp ) CYCLE ! we don't care about land cells 180 IF( ht_0(ji,jj) - rn_ssh_ref > zdepwd ) CYCLE ! and cells which are unlikely to dry 181 182 zflxp(ji,jj) = max(zflxu(ji,jj), 0._wp) - min(zflxu(ji-1,jj), 0._wp) + & 183 & max(zflxv(ji,jj), 0._wp) - min(zflxv(ji, jj-1), 0._wp) 184 zflxn(ji,jj) = min(zflxu(ji,jj), 0._wp) - max(zflxu(ji-1,jj), 0._wp) + & 185 & min(zflxv(ji,jj), 0._wp) - max(zflxv(ji, jj-1), 0._wp) 186 187 zdep2 = ht_0(ji,jj) + sshb1(ji,jj) - rn_wdmin1 188 IF(zdep2 .le. 0._wp) THEN !add more safty, but not necessary 189 sshb1(ji,jj) = rn_wdmin1 - ht_0(ji,jj) 190 IF(zflxu(ji, jj) > 0._wp) zwdlmtu(ji ,jj) = 0._wp 191 IF(zflxu(ji-1,jj) < 0._wp) zwdlmtu(ji-1,jj) = 0._wp 192 IF(zflxv(ji, jj) > 0._wp) zwdlmtv(ji ,jj) = 0._wp 193 IF(zflxv(ji,jj-1) < 0._wp) zwdlmtv(ji,jj-1) = 0._wp 194 wdmask(ji,jj) = 0._wp 195 END IF 196 ENDDO 197 END DO 145 146 CALL wrk_alloc( jpi, jpj, zflxp, zflxn, zflxu, zflxv, zflxu1, zflxv1 ) 147 CALL wrk_alloc( jpi, jpj, zwdlmtu, zwdlmtv) 148 ! 149 150 jflag = 0 151 zdepwd = 50._wp !maximum depth on which that W/D could possibly happen 152 153 154 zflxp(:,:) = 0._wp 155 zflxn(:,:) = 0._wp 156 zflxu(:,:) = 0._wp 157 zflxv(:,:) = 0._wp 158 159 zwdlmtu(:,:) = 1._wp 160 zwdlmtv(:,:) = 1._wp 161 162 ! Horizontal Flux in u and v direction 163 DO jk = 1, jpkm1 164 DO jj = 1, jpj 165 DO ji = 1, jpi 166 zflxu(ji,jj) = zflxu(ji,jj) + e3u_n(ji,jj,jk) * un(ji,jj,jk) * umask(ji,jj,jk) 167 zflxv(ji,jj) = zflxv(ji,jj) + e3v_n(ji,jj,jk) * vn(ji,jj,jk) * vmask(ji,jj,jk) 168 END DO 169 END DO 170 END DO 171 172 zflxu(:,:) = zflxu(:,:) * e2u(:,:) 173 zflxv(:,:) = zflxv(:,:) * e1v(:,:) 174 175 wdmask(:,:) = 1 176 DO jj = 2, jpj 177 DO ji = 2, jpi 178 179 IF( tmask(ji, jj, 1) < 0.5_wp ) CYCLE ! we don't care about land cells 180 IF( ht_0(ji,jj) - rn_ssh_ref > zdepwd ) CYCLE ! and cells which are unlikely to dry 181 182 zflxp(ji,jj) = max(zflxu(ji,jj), 0._wp) - min(zflxu(ji-1,jj), 0._wp) + & 183 & max(zflxv(ji,jj), 0._wp) - min(zflxv(ji, jj-1), 0._wp) 184 zflxn(ji,jj) = min(zflxu(ji,jj), 0._wp) - max(zflxu(ji-1,jj), 0._wp) + & 185 & min(zflxv(ji,jj), 0._wp) - max(zflxv(ji, jj-1), 0._wp) 186 187 zdep2 = ht_0(ji,jj) + sshb1(ji,jj) - rn_wdmin1 188 IF(zdep2 .le. 0._wp) THEN !add more safty, but not necessary 189 sshb1(ji,jj) = rn_wdmin1 - ht_0(ji,jj) 190 IF(zflxu(ji, jj) > 0._wp) zwdlmtu(ji ,jj) = 0._wp 191 IF(zflxu(ji-1,jj) < 0._wp) zwdlmtu(ji-1,jj) = 0._wp 192 IF(zflxv(ji, jj) > 0._wp) zwdlmtv(ji ,jj) = 0._wp 193 IF(zflxv(ji,jj-1) < 0._wp) zwdlmtv(ji,jj-1) = 0._wp 194 wdmask(ji,jj) = 0._wp 195 END IF 196 ENDDO 197 END DO 198 198 199 199 200 200 ! HPG limiter from jholt 201 201 wdramp(:,:) = min((ht_0(:,:) + sshb1(:,:) - rn_wdmin1)/(rn_wdmin0 - rn_wdmin1),1.0_wp) 202 202 !jth assume don't need a lbc_lnk here 203 204 205 206 207 208 203 DO jj = 1, jpjm1 204 DO ji = 1, jpim1 205 wdrampu(ji,jj) = min(wdramp(ji,jj),wdramp(ji+1,jj)) 206 wdrampv(ji,jj) = min(wdramp(ji,jj),wdramp(ji,jj+1)) 207 END DO 208 END DO 209 209 ! end HPG limiter 210 210 … … 212 212 213 213 !! start limiter iterations 214 215 216 217 218 219 220 221 222 214 DO jk1 = 1, nn_wdit + 1 215 216 217 zflxu1(:,:) = zflxu(:,:) * zwdlmtu(:,:) 218 zflxv1(:,:) = zflxv(:,:) * zwdlmtv(:,:) 219 jflag = 0 ! flag indicating if any further iterations are needed 220 221 DO jj = 2, jpj 222 DO ji = 2, jpi 223 223 224 225 224 IF( tmask(ji, jj, 1) < 0.5_wp ) CYCLE 225 IF( ht_0(ji,jj) > zdepwd ) CYCLE 226 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 227 ztmp = e1e2t(ji,jj) 228 229 zzflxp = max(zflxu1(ji,jj), 0._wp) - min(zflxu1(ji-1,jj), 0._wp) + & 230 & max(zflxv1(ji,jj), 0._wp) - min(zflxv1(ji, jj-1), 0._wp) 231 zzflxn = min(zflxu1(ji,jj), 0._wp) - max(zflxu1(ji-1,jj), 0._wp) + & 232 & min(zflxv1(ji,jj), 0._wp) - max(zflxv1(ji, jj-1), 0._wp) 233 234 zdep1 = (zzflxp + zzflxn) * z2dt / ztmp 235 zdep2 = ht_0(ji,jj) + sshb1(ji,jj) - rn_wdmin1 - z2dt * sshemp(ji,jj) 236 237 IF( zdep1 > zdep2 ) THEN 238 wdmask(ji, jj) = 0 239 zcoef = ( ( zdep2 - rn_wdmin2 ) * ztmp - zzflxn * z2dt ) / ( zflxp(ji,jj) * z2dt ) 240 !zcoef = ( ( zdep2 - rn_wdmin2 ) * ztmp - zzflxn * z2dt ) / ( zzflxp * z2dt ) 241 ! flag if the limiter has been used but stop flagging if the only 242 ! changes have zeroed the coefficient since further iterations will 243 ! not change anything 244 IF( zcoef > 0._wp ) THEN 245 jflag = 1 246 ELSE 247 zcoef = 0._wp 248 ENDIF 249 IF(jk1 > nn_wdit) zcoef = 0._wp 250 IF(zflxu1(ji, jj) > 0._wp) zwdlmtu(ji ,jj) = zcoef 251 IF(zflxu1(ji-1,jj) < 0._wp) zwdlmtu(ji-1,jj) = zcoef 252 IF(zflxv1(ji, jj) > 0._wp) zwdlmtv(ji ,jj) = zcoef 253 IF(zflxv1(ji,jj-1) < 0._wp) zwdlmtv(ji,jj-1) = zcoef 254 END IF 255 END DO ! ji loop 256 END DO ! jj loop 257 258 CALL lbc_lnk( zwdlmtu, 'U', 1. ) 259 CALL lbc_lnk( zwdlmtv, 'V', 1. ) 260 261 IF(lk_mpp) CALL mpp_max(jflag) !max over the global domain 262 263 IF(jflag == 0) EXIT 264 265 END DO ! jk1 loop 266 267 DO jk = 1, jpkm1 268 un(:,:,jk) = un(:,:,jk) * zwdlmtu(:, :) 269 vn(:,:,jk) = vn(:,:,jk) * zwdlmtv(:, :) 270 END DO 271 272 CALL lbc_lnk( un, 'U', -1. ) 273 CALL lbc_lnk( vn, 'V', -1. ) 274 274 ! 275 un_b(:,:) = un_b(:,:) * zwdlmtu(:, :) 276 vn_b(:,:) = vn_b(:,:) * zwdlmtv(:, :) 277 CALL lbc_lnk( un_b, 'U', -1. ) 278 CALL lbc_lnk( vn_b, 'V', -1. ) 279 280 IF(jflag == 1 .AND. lwp) WRITE(numout,*) 'Need more iterations in wad_lmt!!!' 281 282 !IF( ln_rnf ) CALL sbc_rnf_div( hdivn ) ! runoffs (update hdivn field) 283 !IF( nn_cla == 1 ) CALL cla_div ( kt ) ! Cross Land Advection (update hdivn field) 284 ! 285 ! 286 CALL wrk_dealloc( jpi, jpj, zflxp, zflxn, zflxu, zflxv, zflxu1, zflxv1 ) 287 CALL wrk_dealloc( jpi, jpj, zwdlmtu, zwdlmtv) 288 ! 289 ENDIF 275 un_b(:,:) = un_b(:,:) * zwdlmtu(:, :) 276 vn_b(:,:) = vn_b(:,:) * zwdlmtv(:, :) 277 CALL lbc_lnk( un_b, 'U', -1. ) 278 CALL lbc_lnk( vn_b, 'V', -1. ) 279 280 IF(jflag == 1 .AND. lwp) WRITE(numout,*) 'Need more iterations in wad_lmt!!!' 281 282 !IF( ln_rnf ) CALL sbc_rnf_div( hdivn ) ! runoffs (update hdivn field) 283 !IF( nn_cla == 1 ) CALL cla_div ( kt ) ! Cross Land Advection (update hdivn field) 284 ! 285 ! 286 CALL wrk_dealloc( jpi, jpj, zflxp, zflxn, zflxu, zflxv, zflxu1, zflxv1 ) 287 CALL wrk_dealloc( jpi, jpj, zwdlmtu, zwdlmtv) 288 ! 290 289 ! 291 290 IF( nn_timing == 1 ) CALL timing_stop('wad_lmt') … … 321 320 IF( nn_timing == 1 ) CALL timing_start('wad_lmt_bt') 322 321 323 IF( ln_wd_il ) THEN 324 325 CALL wrk_alloc( jpi, jpj, zflxp, zflxn, zflxu1, zflxv1 ) 326 CALL wrk_alloc( jpi, jpj, zwdlmtu, zwdlmtv) 327 ! 328 329 !IF(lwp) WRITE(numout,*) 330 !IF(lwp) WRITE(numout,*) 'wad_lmt_bt : wetting/drying limiters and velocity limiting' 331 332 jflag = 0 333 zdepwd = 50._wp !maximum depth that ocean cells can have W/D processes 334 335 z2dt = rdtbt 336 337 zflxp(:,:) = 0._wp 338 zflxn(:,:) = 0._wp 339 340 zwdlmtu(:,:) = 1._wp 341 zwdlmtv(:,:) = 1._wp 322 323 CALL wrk_alloc( jpi, jpj, zflxp, zflxn, zflxu1, zflxv1 ) 324 CALL wrk_alloc( jpi, jpj, zwdlmtu, zwdlmtv) 325 ! 326 327 !IF(lwp) WRITE(numout,*) 328 !IF(lwp) WRITE(numout,*) 'wad_lmt_bt : wetting/drying limiters and velocity limiting' 329 330 jflag = 0 331 zdepwd = 50._wp !maximum depth that ocean cells can have W/D processes 332 333 z2dt = rdtbt 334 335 zflxp(:,:) = 0._wp 336 zflxn(:,:) = 0._wp 337 338 zwdlmtu(:,:) = 1._wp 339 zwdlmtv(:,:) = 1._wp 342 340 343 341 ! Horizontal Flux in u and v direction 344 342 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 343 DO jj = 2, jpj 344 DO ji = 2, jpi 345 346 IF( tmask(ji, jj, 1 ) < 0.5_wp) CYCLE ! we don't care about land cells 347 IF( ht_0(ji,jj) > zdepwd ) CYCLE ! and cells which are unlikely to dry 348 349 zflxp(ji,jj) = max(zflxu(ji,jj), 0._wp) - min(zflxu(ji-1,jj), 0._wp) + & 350 & max(zflxv(ji,jj), 0._wp) - min(zflxv(ji, jj-1), 0._wp) 351 zflxn(ji,jj) = min(zflxu(ji,jj), 0._wp) - max(zflxu(ji-1,jj), 0._wp) + & 352 & min(zflxv(ji,jj), 0._wp) - max(zflxv(ji, jj-1), 0._wp) 353 354 zdep2 = ht_0(ji,jj) + sshn_e(ji,jj) - rn_wdmin1 355 IF(zdep2 .le. 0._wp) THEN !add more safety, but not necessary 356 sshn_e(ji,jj) = rn_wdmin1 - ht_0(ji,jj) 357 IF(zflxu(ji, jj) > 0._wp) zwdlmtu(ji ,jj) = 0._wp 358 IF(zflxu(ji-1,jj) < 0._wp) zwdlmtu(ji-1,jj) = 0._wp 359 IF(zflxv(ji, jj) > 0._wp) zwdlmtv(ji ,jj) = 0._wp 360 IF(zflxv(ji,jj-1) < 0._wp) zwdlmtv(ji,jj-1) = 0._wp 361 END IF 362 ENDDO 363 END DO 366 364 367 365 368 369 370 371 372 373 374 375 376 377 366 !! start limiter iterations 367 DO jk1 = 1, nn_wdit + 1 368 369 370 zflxu1(:,:) = zflxu(:,:) * zwdlmtu(:,:) 371 zflxv1(:,:) = zflxv(:,:) * zwdlmtv(:,:) 372 jflag = 0 ! flag indicating if any further iterations are needed 373 374 DO jj = 2, jpj 375 DO ji = 2, jpi 378 376 379 380 377 IF( tmask(ji, jj, 1 ) < 0.5_wp) CYCLE 378 IF( ht_0(ji,jj) > zdepwd ) CYCLE 381 379 382 ztmp = e1e2t(ji,jj) 383 384 zzflxp = max(zflxu1(ji,jj), 0._wp) - min(zflxu1(ji-1,jj), 0._wp) + & 385 & max(zflxv1(ji,jj), 0._wp) - min(zflxv1(ji, jj-1), 0._wp) 386 zzflxn = min(zflxu1(ji,jj), 0._wp) - max(zflxu1(ji-1,jj), 0._wp) + & 387 & min(zflxv1(ji,jj), 0._wp) - max(zflxv1(ji, jj-1), 0._wp) 388 389 zdep1 = (zzflxp + zzflxn) * z2dt / ztmp 390 zdep2 = ht_0(ji,jj) + sshn_e(ji,jj) - rn_wdmin1 - z2dt * zssh_frc(ji,jj) 391 392 IF(zdep1 > zdep2) THEN 393 zcoef = ( ( zdep2 - rn_wdmin2 ) * ztmp - zzflxn * z2dt ) / ( zflxp(ji,jj) * z2dt ) 394 !zcoef = ( ( zdep2 - rn_wdmin2 ) * ztmp - zzflxn * z2dt ) / ( zzflxp * z2dt ) 395 ! flag if the limiter has been used but stop flagging if the only 396 ! changes have zeroed the coefficient since further iterations will 397 ! not change anything 398 IF( zcoef > 0._wp ) THEN 399 jflag = 1 400 ELSE 401 zcoef = 0._wp 402 ENDIF 403 IF(jk1 > nn_wdit) zcoef = 0._wp 404 IF(zflxu1(ji, jj) > 0._wp) zwdlmtu(ji ,jj) = zcoef 405 IF(zflxu1(ji-1,jj) < 0._wp) zwdlmtu(ji-1,jj) = zcoef 406 IF(zflxv1(ji, jj) > 0._wp) zwdlmtv(ji ,jj) = zcoef 407 IF(zflxv1(ji,jj-1) < 0._wp) zwdlmtv(ji,jj-1) = zcoef 408 END IF 409 END DO ! ji loop 410 END DO ! jj loop 411 412 CALL lbc_lnk( zwdlmtu, 'U', 1. ) 413 CALL lbc_lnk( zwdlmtv, 'V', 1. ) 414 415 IF(lk_mpp) CALL mpp_max(jflag) !max over the global domain 416 417 IF(jflag == 0) EXIT 418 419 END DO ! jk1 loop 420 421 zflxu(:,:) = zflxu(:,:) * zwdlmtu(:, :) 422 zflxv(:,:) = zflxv(:,:) * zwdlmtv(:, :) 423 424 CALL lbc_lnk( zflxu, 'U', -1. ) 425 CALL lbc_lnk( zflxv, 'V', -1. ) 426 427 IF(jflag == 1 .AND. lwp) WRITE(numout,*) 'Need more iterations in wad_lmt_bt!!!' 428 429 !IF( ln_rnf ) CALL sbc_rnf_div( hdivn ) ! runoffs (update hdivn field) 430 !IF( nn_cla == 1 ) CALL cla_div ( kt ) ! Cross Land Advection (update hdivn field) 431 ! 432 ! 433 CALL wrk_dealloc( jpi, jpj, zflxp, zflxn, zflxu1, zflxv1 ) 434 CALL wrk_dealloc( jpi, jpj, zwdlmtu, zwdlmtv) 435 ! 436 END IF 380 ztmp = e1e2t(ji,jj) 381 382 zzflxp = max(zflxu1(ji,jj), 0._wp) - min(zflxu1(ji-1,jj), 0._wp) + & 383 & max(zflxv1(ji,jj), 0._wp) - min(zflxv1(ji, jj-1), 0._wp) 384 zzflxn = min(zflxu1(ji,jj), 0._wp) - max(zflxu1(ji-1,jj), 0._wp) + & 385 & min(zflxv1(ji,jj), 0._wp) - max(zflxv1(ji, jj-1), 0._wp) 386 387 zdep1 = (zzflxp + zzflxn) * z2dt / ztmp 388 zdep2 = ht_0(ji,jj) + sshn_e(ji,jj) - rn_wdmin1 - z2dt * zssh_frc(ji,jj) 389 390 IF(zdep1 > zdep2) THEN 391 zcoef = ( ( zdep2 - rn_wdmin2 ) * ztmp - zzflxn * z2dt ) / ( zflxp(ji,jj) * z2dt ) 392 !zcoef = ( ( zdep2 - rn_wdmin2 ) * ztmp - zzflxn * z2dt ) / ( zzflxp * z2dt ) 393 ! flag if the limiter has been used but stop flagging if the only 394 ! changes have zeroed the coefficient since further iterations will 395 ! not change anything 396 IF( zcoef > 0._wp ) THEN 397 jflag = 1 398 ELSE 399 zcoef = 0._wp 400 ENDIF 401 IF(jk1 > nn_wdit) zcoef = 0._wp 402 IF(zflxu1(ji, jj) > 0._wp) zwdlmtu(ji ,jj) = zcoef 403 IF(zflxu1(ji-1,jj) < 0._wp) zwdlmtu(ji-1,jj) = zcoef 404 IF(zflxv1(ji, jj) > 0._wp) zwdlmtv(ji ,jj) = zcoef 405 IF(zflxv1(ji,jj-1) < 0._wp) zwdlmtv(ji,jj-1) = zcoef 406 END IF 407 END DO ! ji loop 408 END DO ! jj loop 409 410 CALL lbc_lnk( zwdlmtu, 'U', 1. ) 411 CALL lbc_lnk( zwdlmtv, 'V', 1. ) 412 413 IF(lk_mpp) CALL mpp_max(jflag) !max over the global domain 414 415 IF(jflag == 0) EXIT 416 417 END DO ! jk1 loop 418 419 zflxu(:,:) = zflxu(:,:) * zwdlmtu(:, :) 420 zflxv(:,:) = zflxv(:,:) * zwdlmtv(:, :) 421 422 CALL lbc_lnk( zflxu, 'U', -1. ) 423 CALL lbc_lnk( zflxv, 'V', -1. ) 424 425 IF(jflag == 1 .AND. lwp) WRITE(numout,*) 'Need more iterations in wad_lmt_bt!!!' 426 427 !IF( ln_rnf ) CALL sbc_rnf_div( hdivn ) ! runoffs (update hdivn field) 428 !IF( nn_cla == 1 ) CALL cla_div ( kt ) ! Cross Land Advection (update hdivn field) 429 ! 430 ! 431 CALL wrk_dealloc( jpi, jpj, zflxp, zflxn, zflxu1, zflxv1 ) 432 CALL wrk_dealloc( jpi, jpj, zwdlmtu, zwdlmtv) 433 ! 437 434 438 435 IF( nn_timing == 1 ) CALL timing_stop('wad_lmt') -
branches/UKMO/ROMS_WAD_7832/NEMOGCM/NEMO/OPA_SRC/TRA/tranxt.F90
r8956 r8977 323 323 ! Rivers are not just at the surface must go down to nk_rnf(ji,jj) 324 324 IF( mikt(ji,jj) <=jk .and. jk <= nk_rnf(ji,jj) ) THEN 325 ! as we have sigma can do that here change later326 325 ze3t_f = ze3t_f - zfact2 * ( - (rnf_b(ji,jj) - rnf(ji,jj) ) ) & 327 326 & * ( e3t_n(ji,jj,jk) / h_rnf(ji,jj) ) -
branches/UKMO/ROMS_WAD_7832/NEMOGCM/NEMO/OPA_SRC/TRA/trasbc.F90
r8956 r8977 34 34 USE wrk_nemo ! Memory Allocation 35 35 USE timing ! Timing 36 USE wet_dry, ONLY : ll_wd, rn_wdmin1 36 USE wet_dry, ONLY : ll_wd, rn_wdmin1, r_rn_wdmin1 ! Wetting and drying 37 37 38 38 IMPLICIT NONE … … 127 127 sbc_tsc(ji,jj,jp_tem) = r1_rau0_rcp * qns(ji,jj) ! non solar heat flux 128 128 ELSE IF ( sshn(ji,jj) + ht_0(ji,jj) > rn_wdmin1 ) THEN 129 sbc_tsc(ji,jj,jp_tem) = r1_rau0_rcp * qns(ji,jj) * (tanh(5._wp*( ( sshn(ji,jj) + ht_0(ji,jj) - rn_wdmin1 ) /rn_wdmin1)) )129 sbc_tsc(ji,jj,jp_tem) = r1_rau0_rcp * qns(ji,jj) * (tanh(5._wp*( ( sshn(ji,jj) + ht_0(ji,jj) - rn_wdmin1 )*r_rn_wdmin1)) ) 130 130 ELSE 131 131 sbc_tsc(ji,jj,jp_tem) = 0._wp -
branches/UKMO/ROMS_WAD_7832/NEMOGCM/NEMO/OPA_SRC/stpctl.F90
r8956 r8977 151 151 DO jj = 1, jpj 152 152 DO ji = 1, jpi 153 IF( (ll_wd ) THEN153 IF( ll_wd ) THEN 154 154 IF( tmask(ji,jj,1) == 1) zsshmax = MAX( zsshmax, ABS(sshn(ji,jj)+rn_ssh_ref) ) 155 155 ELSE
Note: See TracChangeset
for help on using the changeset viewer.