• Main Page
  • Modules
  • Data Types List
  • Files
  • File List
  • File Members

addinc.F90

Go to the documentation of this file.
00001 
00002 !-SUBROUTINE: addinc-------------------------------------------------
00003 
00004 subroutine addinc ( sib, sib_loc )
00005 
00006 use kinds
00007 use sibtype
00008 use physical_parameters, only: cp => spec_heat_cp
00009 
00010 implicit none
00011 
00012 !-Parameters-----------------------------------------------------
00013 type(sib_t), intent(inout) :: sib
00014 type(sib_local_vars),      intent(inout) :: sib_loc
00015 
00016 !-Local Variables------------------------------------------------
00017 integer(kind=int_kind) :: j
00018 
00019 !----------------------------------------------------------------
00020 !
00021 ! Add prognostic variable increments to prognostic variables and
00022 ! diagnose heat fluxes and mixing ratios.
00023 !
00024 !----------------------------------------------------------------
00025 !
00026 !                           OUTPUT
00027 !
00028 !   tc      Canopy Temperature (K)
00029 !   tg      Ground Surface Temperature (K)
00030 !   ta      CAS Temperature (K)
00031 !   ea      CAS Vapro Preassure (hPa or mb)
00032 !   td      Deep Siol Temperature (K)
00033 !   fss     CAS to Mixed Layer Sensible Heast Flux (W m^-2)
00034 !   fws     CAS to Mixed Layer Latent Heat Flux (W m^-2)
00035 !   sh      Mixed Layer Mixing Ratio (kg/kg)
00036 !   sha     CAS Mixing Ratio (kg/kg)
00037 !
00038 !----------------------------------------------------------------
00039 
00040     sib%prog%tc = sib%prog%tc + sib_loc%dtc
00041 !    sib%prog%tg = sib%prog%tg + sib_loc%dtg
00042     sib%prog%ta = sib%prog%ta + sib_loc%dta
00043     sib%prog%ea = sib%prog%ea + sib_loc%dea
00044 
00045     if ( sib%prog%tc < 0.0 .or. sib%prog%td(sib%prog%nsl+1) < 0.0 .or.  &
00046         sib%prog%ta < 0.0 .or. sib%prog%ea < 0.0 ) then
00047 
00048         print *, 'point',sib%stat%pt_num
00049         print *, 'BAD ta, tg, tc or ea VALUE:'
00050         print *, 'tc: ', sib%prog%tc-sib_loc%dtc, sib%prog%tc
00051         print *, 'tg: ', sib%prog%td(sib%prog%nsl+1)-sib_loc%dtd(sib%prog%nsl+1), sib%prog%td(sib%prog%nsl+1)
00052         print *, 'ta: ', sib%prog%ta-sib_loc%dta, sib%prog%ta
00053         print *, 'ea: ', sib%prog%ea-sib_loc%dea, sib%prog%ea
00054         print *, ''
00055     endif
00056 
00057     ! Calucluate latent and sunsible fluxes between CAS and
00058     ! mixed (boundry) layer
00059     sib%diag%fss = sib%prog%ros * cp * (sib%prog%ta - sib%prog%tm) / &
00060         sib%diag%ra
00061     sib%diag%fws = (sib%prog%ea - sib%prog%em) / sib%diag%ra * cp *  &
00062         sib%prog%ros / sib%diag%psy
00063     ! Recalculate mixing ratios
00064     sib%prog%sh  = 0.622 / (sib%prog%ps / sib%prog%em - 1.)
00065     sib%prog%sha = 0.622 / (sib%prog%ps / sib%prog%ea - 1.)
00066     do j = sib%prog%nsl+1, nsoil
00067         sib%prog%td(j) = sib%prog%td(j) + sib_loc%dtd(j)
00068     enddo
00069 
00070 end subroutine addinc
00071 

Generated on Tue Apr 16 2013 21:01:39 for SIB by  doxygen 1.7.1