Opened 11 years ago
Closed 8 years ago
#314 closed enhancement (fixed)
Make 247L default output grid in ropp_fm_bg2ro_1d
Reported by: | Ian Culverwell | Owned by: | Ian Culverwell |
---|---|---|---|
Priority: | normal | Milestone: | 9.0 |
Component: | ropp_fm | Version: | 8.0 |
Keywords: | Cc: |
Description
If the input file to ropp_fm_bg2ro_1d contains no lev2a or lev1b data, the code generates a uniform 300L (0 to 60km) output grid.
AvE@EUM would like the "standard" 247L to be the default in such cases.
Attachments (9)
Change history (27)
comment:1 by , 11 years ago
Milestone: | 7.0 → 8.0 |
---|
comment:2 by , 10 years ago
A bit of jiggery-pokery to establish this has been included at r4215.
Typically get convergence to within 1 mm using 12 < iter < 24.
bgr20090401_000329_M02_2030337800_N0007_XXXX.nc takes the longest, and generates:
dim_unlim[0] dim_lev2a[0] geop_refrac[0]=-295.758 dim_unlim[0] dim_lev2a[1] geop_refrac[1]=-23.2642 dim_unlim[0] dim_lev2a[2] geop_refrac[2]=155.355 dim_unlim[0] dim_lev2a[3] geop_refrac[3]=304.471 dim_unlim[0] dim_lev2a[4] geop_refrac[4]=461.021 dim_unlim[0] dim_lev2a[0] refrac[0]=374.389778895 dim_unlim[0] dim_lev2a[1] refrac[1]=349.959192321 dim_unlim[0] dim_lev2a[2] refrac[2]=340.406511553 dim_unlim[0] dim_lev2a[3] refrac[3]=335.73442538 dim_unlim[0] dim_lev2a[4] refrac[4]=329.889329043
But the first two points are below the ellipsoid, so they don't generate bangles:
dim_unlim[0] dim_lev1b[0] bangle[0]=-99999000 dim_unlim[0] dim_lev1b[1] bangle[1]=-99999000 dim_unlim[0] dim_lev1b[2] bangle[2]=0.0282254769632 dim_unlim[0] dim_lev1b[3] bangle[3]=0.0288559659811 dim_unlim[0] dim_lev1b[4] bangle[4]=0.029973177802 dim_unlim[0] dim_lev1b[0] impact[0]=6352125.84698 dim_unlim[0] dim_lev1b[1] impact[1]=6352243.51642 dim_unlim[0] dim_lev1b[2] impact[2]=6352361.68637 dim_unlim[0] dim_lev1b[3] impact[3]=6352481.31637 dim_unlim[0] dim_lev1b[4] impact[4]=6352600.94637 dim_unlim[0] dim_lev1b[0] impact_height[0]=2094.24061301 dim_unlim[0] dim_lev1b[1] impact_height[1]=2211.9100545 dim_unlim[0] dim_lev1b[2] impact_height[2]=2330.08 dim_unlim[0] dim_lev1b[3] impact_height[3]=2449.71 dim_unlim[0] dim_lev1b[4] impact_height[4]=2569.34 dim_unlim[0] roc[0]=6350031.60637
Nonetheless, the implied impact_heights correctly match those in ropp_fm_levels.f90
REAL(wp), PARAMETER, DIMENSION(247) :: impact_height_eum_247=(/ & 2094.240_wp, 2211.910_wp, 2330.080_wp, 2449.710_wp, 2569.340_wp, 2690.920_wp, 2812.500_wp, ...
So I think this is fine - as an option. Don't make it the default yet (despite the title of the ticket).
comment:3 by , 10 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Seems safe enough, so close ticket.
comment:4 by , 10 years ago
Resolution: | fixed |
---|---|
Status: | closed → reopened |
comment:5 by , 10 years ago
There were problems assoc with the fact that refrac is now missing if geop_refrac is below the bottom of the model. Surprisingly tricky to solve, but finally done in r4367.
comment:6 by , 10 years ago
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
Works OK, so reclosing ticket.
comment:7 by , 10 years ago
Resolution: | fixed |
---|---|
Status: | closed → reopened |
comment:8 by , 10 years ago
Milestone: | 8.0 → 9.0 |
---|---|
Type: | enhancement → defect |
Version: | 6.1 → 8.0 |
Reopened as Axel von Engeln found convergence problems with the attached file WOP_Study_Cases.nc.
These are, I hope, fixed by the attached file ropp_fm_bg2ro_1d.f90.
Ask Axel to test again. If successful, incorporate these changes in ROPP9.0.
comment:9 by , 10 years ago
A better solution is in the new attached ropp_fm_bg2ro_1d.f90_14052015 file.
comment:10 by , 10 years ago
And the attached ropp_fm_bg2ro_1d.f90.22052015.f90 is even better: it fixes the last remaining funnies[*] that appear when the 55-profile WOP_Study_Cases.nc dataset is forward modelled.
[*]
1) In 'default mode' (ie, uniform N-levels), profile 3 still has a downward kink in IP where it crosses the bottom of the model at ~3700 m ASL. This is a consequence of limiting N to 500 N-units in this region. (500 N-units is rpetty large, so it generates larger than expected a = r n(r).) It is, however, much better than the ROPP8.0 version, which had impact heights going up to 185 km (!) near the surface. Now the impact height at the surface is 3.4 km.
2) In '247L mode', again for profile 3, there's a small step in the refractivity heights at the bottom of the model. This is also a consequence of having to guess a value of n below the bottom of the model. (As you know, this profile failed on the ROPP8.0 version.) The bending angles and refractivities are both missing in this region.
comment:11 by , 9 years ago
Later tests of the new code allowed it to process 3*3500 ~ 10500 GRAS profiles, but it still failed eventually with
INFO (from ropp_fm_bg2ro_1d): Processing profile 671 of 3347 INFO (from ropp_fm_bg2ro_1d): (BG_20120612000652_UNKN_U999_DMI_) WARNING (from set_obs_levels_refrac_247): RoC missing from data structure ... setting equal to effective radius FATAL ERROR (from set_obs_levels_refrac_247): GPH iteration failed to converge in 200 iterations
when running
$ROPP_ROOT/ifort/bin/ropp_fm_bg2ro_1d bgr20120611-15_iono2_prof671.nc -f -247L -o bgr20120611-15_iono2_prof671_fm.nc
through the attached. I think we need to make this a non-fatal error somehow.
(For this particular case, increasing the max no. of iterations to 1000 allows it to converge (in 231 iters).)
by , 9 years ago
Attachment: | bgr20120611-15_iono2_prof671_fm.nc added |
---|
bgr20120611-15_iono2_prof671_fm.nc
comment:13 by , 9 years ago
Some of the subtleties of this are discussed in the attached FM_levs.pdf.
comment:14 by , 9 years ago
comment:15 by , 9 years ago
comment:16 by , 9 years ago
Type: | defect → enhancement |
---|
Leave open for now, as the question of the correct defaults awaits Axel's input.
comment:17 by , 8 years ago
A -best
option to ropp_fm_bg2ro_1d, which allows the user to select the currently advised 'best' option - that is, those that use the latest, validated, code developments and/or the most useful
configuration specifications (eg output levels), has been implemented at r4898. Currently these options are:
use_247L = .TRUE., ! Use 'standard' 247 bending angle levels, ih_from_geop = .FALSE., ! Derive impact heights from refrac geopotentials. calc_grad = .FALSE., ! Calculate Jacobians d{refrac, bangle}/d{state}? compress = .TRUE., ! Use non-ideal gas compressibility factors? new_op = .TRUE., ! Use new interpolation scheme?
Updates to the ROPP FM UG have been made at r4901.
This should answer Axel's request that 247L, and the other 'optimum' choices, should be the defaults in ROPP. By use of one switch, they can all be applied.
comment:18 by , 8 years ago
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
This works out OK in practice, so closing ticket.
Note that the standard 247 levels are impact heights = impact params - RoC. Currently, ropp_fm_bg2ro_1d invents 300L geops (for lev2a) and converts to IPs. We'd need to do the opposite: read in 247 impact heights; add RoC to get IPs for lev1b. This is easy, but generating geom hts/geops from this (for lev2a refracs) is not possible without knowing N, which we don't yet. Need to think about this.