Changes between Initial version and Version 1 of Ticket #255


Ignore:
Timestamp:
2011-10-05T15:43:36Z (13 years ago)
Author:
Ian Culverwell
Comment:

Agreed with Hans that it would be neater to incorporate this extra diagnostics in the ppDiag structure, which holds "extra" data that are output if output_diag is set to .true. in the ropp_pp config file. (This means we don't have to alter the interfaces between the routines.)

Works OK in ropp6.0 base code. The following files are modified:

common/ropp_pp_types.f90

common/ropp_pp_diag2roprof.f90

tools/ropp_pp_invert_tool.f90

tools/ropp_pp_occ_tool.f90

icorr/ropp_pp_ionospheric_correction.f90

There's a small difference wrt Hans's data (supplied separately in brown covers). This was traced to the linearisation error discussed in ticket #223 (fixed in ropp>5.1, not fixed in Hans's code.)

When Hans's code is put on ROPP5.0 base code, there remains a puzzling very small difference (~1e-6 frac diff). Maybe some residual diff between the source codes. I've asked him if he's happy to live with this.

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #255 – Description

    initial v1  
    33{{{
    44
    5 The variable we would like to include in the list of diagnostic quantities is an array that measures the weight of the observation contribution in the optimized bending angle. This weight is an array of numbers between 0 and 1. A weight of 1 at a given impact parameter indicates that at this height the optimized bending angle is 100% data, in other words the optimized bending angle is identical to the raw bending angle at this height. If the weight is 0 the optimized bending angle is 100% MSIS with no contribution from the data. The array of weights will gradually transition from numbers close to zero at high altitude to numbers close to one at low altitude.
     5The variable we would like to include in the list of diagnostic
     6quantities is an array that measures the weight of the observation
     7contribution in the optimized bending angle. This weight is an
     8array of numbers between 0 and 1. A weight of 1 at a given impact
     9parameter indicates that at this height the optimized bending angle
     10is 100% data, in other words the optimized bending angle is
     11identical to the raw bending angle at this height. If the weight is
     120 the optimized bending angle is 100% MSIS with no contribution
     13from the data. The array of weights will gradually transition from
     14numbers close to zero at high altitude to numbers close to one at
     15low altitude.
    616
    717
    818
    9 I am attaching 3 Fortran code files (made by Hans) that demonstrate a possible implementation. These are modified versions of ropp_pp_occ_tool.f90, ropp_pp.f90 and ropp_pp_ionospheric_correction.f90. They are based on ROPP 5.0 and you should be able to proceed from these without to much trouble. Changes are marked with !HGL (although there might be a few changes that slipped in without this comment)
     19I am attaching 3 Fortran code files (made by Hans) that demonstrate
     20a possible implementation. These are modified versions of
     21ropp_pp_occ_tool.f90, ropp_pp.f90 and
     22ropp_pp_ionospheric_correction.f90. They are based on ROPP 5.0 and
     23you should be able to proceed from these without to much trouble.
     24Changes are marked with !HGL (although there might be a few changes
     25that slipped in without this comment)
    1026
    1127
    1228
    13 The solution implemented here adds the variable WLC to all three routines and the internal variable WLCH inside ropp_pp_ionospheric_correction.f90. Both variables represent the array of weights, just at two different sets of impact heights. The values are calculated in WLCH and then interpolated to form WLC, which is added to the output.
     29The solution implemented here adds the variable WLC to all three
     30routines and the internal variable WLCH inside
     31ropp_pp_ionospheric_correction.f90. Both variables represent the
     32array of weights, just at two different sets of impact heights. The
     33values are calculated in WLCH and then interpolated to form WLC,
     34which is added to the output.
    1435
    1536
    1637
    17 In this implementation WLC is just added to standard output. It is probably more reasonable to add it to the diag structure and only add it to the output if the diag = .true. flag is set.
     38In this implementation WLC is just added to standard output. It is
     39probably more reasonable to add it to the diag structure and only
     40add it to the output if the diag = .true. flag is set.
    1841
    1942
    2043
    21 The extra argument to ropp_pp_ionospheric_correction.f90 is made OPTIONAL since we weren't sure that we know all the routines that called this. You might want to implement it differently
     44The extra argument to ropp_pp_ionospheric_correction.f90 is made
     45OPTIONAL since we weren't sure that we know all the routines that
     46called this. You might want to implement it differently
    2247
    2348