[Dart-dev] [5752] DART/branches/development/observations/Ameriflux/level4_to_obs.f90: Using different values for the observation error variance.

nancy at ucar.edu nancy at ucar.edu
Fri Jun 8 15:40:41 MDT 2012


Revision: 5752
Author:   thoar
Date:     2012-06-08 15:40:41 -0600 (Fri, 08 Jun 2012)
Log Message:
-----------
Using different values for the observation error variance.
The ob error variance for NEE came from Andy, those for
the sensible heat and latent heat fluxes are chosen to be 
about 10% of the 'nighttime' values - as calculated from the
Harvard forest site for the year 2000. Ad hoc ... but better 
than nothing.

Modified Paths:
--------------
    DART/branches/development/observations/Ameriflux/level4_to_obs.f90

-------------- next part --------------
Modified: DART/branches/development/observations/Ameriflux/level4_to_obs.f90
===================================================================
--- DART/branches/development/observations/Ameriflux/level4_to_obs.f90	2012-06-06 22:37:03 UTC (rev 5751)
+++ DART/branches/development/observations/Ameriflux/level4_to_obs.f90	2012-06-08 21:40:41 UTC (rev 5752)
@@ -85,6 +85,7 @@
 type(obs_sequence_type) :: obs_seq
 type(obs_type)          :: obs, prev_obs
 type(time_type)         :: time_obs, prev_time, offset
+integer, parameter      :: umol_to_gC = 12.0_r8 * -1000000.0_r8
 
 type towerdata
   type(time_type)   :: time_obs
@@ -235,7 +236,7 @@
    ! Increasingly larger QC values are more questionable quality data.
 
    if (tower%hQC <= maxgoodqc) then
-      oerr = tower%h * 0.1_r8  ! total guess
+      oerr = 2.5_r8  ! 10 percent of the 'nighttime' values  - total guess
       qc   = real(tower%hQC,r8)
       call create_3d_obs(latitude, longitude, flux_height, VERTISHEIGHT, tower%h, &
                          TOWER_LATENT_HEAT_FLUX, oerr, oday, osec, qc, obs)
@@ -243,16 +244,20 @@
    endif
 
    if (tower%leQC <= maxgoodqc) then
-      oerr = tower%le * 0.1_r8  ! total guess
+      oerr = 0.3_r8  ! 10 percent of the 'nighttime' values  - total guess
       qc   = real(tower%leQC,r8)
       call create_3d_obs(latitude, longitude, flux_height, VERTISHEIGHT, tower%le, &
                          TOWER_SENSIBLE_HEAT_FLUX, oerr, oday, osec, qc, obs)
       call add_obs_to_seq(obs_seq, obs, tower%time_obs, prev_obs, prev_time, first_obs)
    endif
 
+   ! A crude estimate of this would be something like 1+(0.25*|flux|) mumol m^2s^1 
+   ! which will give a range of ~1-5 at most of our sites. -- Andy Fox
    if (tower%neeQC <= maxgoodqc) then
-      oerr = tower%NEE * 0.1_r8  ! total guess
-      qc   = real(tower%neeQC,r8)
+      oerr      = 1.0_r8 + abs(tower%NEE)*0.25_r8
+      oerr      = oerr * umol_to_gC
+      tower%NEE = tower%NEE * umol_to_gC
+      qc        = real(tower%neeQC,r8)
       call create_3d_obs(latitude, longitude, flux_height, VERTISHEIGHT, tower%Nee, &
                          TOWER_NETC_ECO_EXCHANGE, oerr, oday, osec, qc, obs)
       call add_obs_to_seq(obs_seq, obs, tower%time_obs, prev_obs, prev_time, first_obs)
@@ -486,7 +491,7 @@
 tower%day   = nint(values(tower%dayindex  ))
 tower%hour  =      values(tower%hourindex )
 tower%doy   =      values(tower%doyindex  )
-tower%nee   =      values(tower%neeindex  ) * 12.0_r8 * 1000000.0_r8
+tower%nee   =      values(tower%neeindex  )
 tower%neeQC = nint(values(tower%neeQCindex))
 tower%le    =      values(tower%leindex   )
 tower%leQC  = nint(values(tower%leQCindex ))


More information about the Dart-dev mailing list