Opened 6 years ago

Closed 3 years ago

#585 closed task (fixed)

Modifications to read UCARs atmPrf files [?]

Reported by: Ian Culverwell Owned by: Ian Culverwell
Priority: normal Milestone: ROPP9.1 carry over
Component: ropp_io Version: 11.0
Keywords: Cc:

Description

Attachments (2)

atmPrf_C006.2019.213.00.21.G07_0001.0001_nc (317.4 KB ) - added by Ian Culverwell 5 years ago.
atmPrf_C006.2019.213.00.21.G07_0001.0001_nc
test1.sh (2.3 KB ) - added by Ian Culverwell 5 years ago.
test1.sh

Download all attachments as: .zip

Change history (9)

comment:1 by Ian Culverwell, 5 years ago

The only part of this that needs discussing is the replacement of

        data%Lev1b%impact = data%Lev1b%impact + data%georef%roc  ! Both are in m at this point 

by

        data%Lev1b%impact = data%Lev1b%impact + data%georef%roc  & ! Both are in m at this point 
               + data%georef%Undulation ! To comply with definition of Impact_height in UCAR data

Obviously we need to account for UCAR's redefinition of impact_height, but should we make an irreversible change to all UCAR file processing like this? People may still be using files with the old definition of impact_height, so I would prefer a switch to allow them to continue processing these data. Note that this change to the default processing will need to be advertised loudly and clearly in the Change Log and User Guide.

comment:2 by Ian Culverwell, 5 years ago

In fact the redefinition of impact_height is the only aspect of r5389 that is not already included in ROPP9.1.

comment:3 by Ian Culverwell, 5 years ago

Manage this by defining ocentre = "UCAR1" in ucar2ropp.f90 if you run it with a -x option, which applies the former ('ex') definition of Impact_height in the UCAR files. The wrapper program is then extended to say

  SELECT CASE (centre)
      CASE('UCAR')
         CALL ropp_io_read_ncdf_get_ucardata(DATA, file)
      CASE('UCAR1')
         CALL ropp_io_read_ncdf_get_ucardata(DATA, file, oldform=.TRUE.)
      CASE('EUM')
         CALL ropp_io_read_ncdf_get_eumdata(DATA, file, lgetextrap, lresolution, &
                                            lgetlevel1a, ldummy)
      CASE default
         CALL ropp_io_read_ncdf_get_rodata(DATA, rec)
  END SELECT

and if oldform=.TRUE. then xold=.TRUE. in SUBROUTINE ropp_io_read_ucardata_atmPrf, which means use the old definition, thus:

        IF ( xold ) THEN
          data%Lev1b%impact = data%Lev1b%impact + data%georef%roc ! Both are in m at this point
        ELSE
          data%Lev1b%impact = data%Lev1b%impact + data%georef%roc + &
                              data%georef%undulation ! All are in m at this point
        END IF

comment:4 by Ian Culverwell, 5 years ago

The standard ROPP UCAR test file, data/ucar_test.nc, contains Impact_parm rather than Impact_height, and is therefore unaffected by this change. But recent files like atmPrf_C006.2019.213.00.21.G07_0001.0001_nc (attached) do contain Impact_height, and the impact of the changes on this file are tested in test1.sh (attached).

by Ian Culverwell, 5 years ago

atmPrf_C006.2019.213.00.21.G07_0001.0001_nc

by Ian Culverwell, 5 years ago

Attachment: test1.sh added

test1.sh

comment:5 by Ian Culverwell, 5 years ago

It checks out OK in test1.sh. The new default behaviour of ucar2ropp gives

 in ropp_io_read: icentre = UCAR                
 in ropp_io_read_ncdf_get_otherdata: centre = UCAR                
 in ropp_io_read_ucardata_atmPrf: xold =  F
...
ncks -H -Q -ddim_lev1b,0,4 -vimpact,undulation data/atmPrf_C006.2019.213.00.21.G07_0001.0001_test2.nc
impact[0]=6380000.32115 
impact[1]=6380020.32114 
impact[2]=6380040.32124 
impact[3]=6380060.32122 
impact[4]=6380080.3212 

undulation[0]=37.72

This should be compared to the result of running ucar2ropp with the -x option, which gives

 in ropp_io_read: icentre = UCAR1               
 in ropp_io_read_ncdf_get_otherdata: centre = UCAR1               
 in ropp_io_read_ucardata_atmPrf: xold =  T
...
ncks -H -Q -ddim_lev1b,0,4 -vimpact,undulation data/atmPrf_C006.2019.213.00.21.G07_0001.0001_test1.nc
impact[0]=6379962.60115 
impact[1]=6379982.60114 
impact[2]=6380002.60124 
impact[3]=6380022.60122 
impact[4]=6380042.6012 

undulation[0]=37.72

Note that the new impact parameters exceed the old ones by precisely the undulation. The output from the -x} option exactly matches the output from ROPP9.1.

comment:6 by Ian Culverwell, 5 years ago

The changes to the ucar2ropp.f90 and ucr2ropp.1 were committed at r5948, the changes to the source code were committed at r5949, and the consequent changes to the reference manual documentation were committed at r5950. There isn't really any need to update the ROPP IO user guide with this because ucar2ropp is not extensively documented anyway. The UG just points users to the reference manual and the man pages, both of which have been updated to reflect the new option.

This change may cause some problems in the test folder, so be prepared for that.

Leaving ticket open until the Change Log has been written. This in turn depends on advice from UCAR abut which convention applies to which datasets.

comment:7 by Ian Culverwell, 3 years ago

Resolution: fixed
Status: newclosed
Version: 9.011.0

Forget it; no-one cares. Close ticket.

Note: See TracTickets for help on using tickets.