Subroutine waterbalance_diag
351 :
352 : !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
353 : !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
354 : !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
355 :
356 : subroutine waterbalance_diag ()
357 : use vom_vegwat_mod
358 : implicit none
359 :
360 : character(len=135) :: msg
361 : REAL*8 :: wcnew
362 :
363 : !!$ INTEGER :: ii
364 : !!$ LOGICAL :: isnand, isinfd
365 : !!$
366 : !!$!* For debugging in pgf90:
367 : !!$ do ii = 1, nlayers
368 : !!$ if (isnand(sunew(ii))) then
369 : !!$ print *, "Its a NaN"
370 : !!$ elseif (isinfd(sunew(ii))) then
371 : !!$ print *, "Its a Inf"
372 : !!$ endif
373 : !!$ enddo
374 :
375 : ! * CHECK WATER BALANCE
376 :
377 : cH2Ol_s(:) = (-sunew(:) * s_thetar(:) + sunew(:) * s_thetas(:) &
378 : & + s_thetar(:)) * s_delz(:)
379 :
380 : wcnew = SUM(cH2Ol_s(:))
381 :
382 : !!$ print*,"errorstep=",(wc+dt*io-wcnew)
383 :
384 : if (ABS(wc_ + dt_ * io__ - wcnew) .gt. 1.d-6) then
385 : ! write(msg,*) "error=", (wc_ + dt_ * io__ - wcnew), " ys=", zwnew
386 : ! write(*,*) TRIM(msg)
387 : ! write(msg,*) "sum(iovec) = ", SUM(iovec(:)), "; io = ", io__
388 : ! write(*,*) TRIM(msg)
389 : ! write(msg,*) "day = ", nday, "; hour = ", nhour
390 : ! write(*,*) TRIM(msg)
391 :
392 :
393 :
394 : endif
395 :
396 : return
397 : end subroutine waterbalance_diag