Opened 6 years ago
Closed 5 years ago
#550 closed task (fixed)
Integrate hydrostatic equation only from second-most top level and down [1 d]
Reported by: | Ian Culverwell | Owned by: | Ian Culverwell |
---|---|---|---|
Priority: | normal | Milestone: | ROPP9.1 carry over |
Component: | ropp_fm | Version: | 9.0 |
Keywords: | Cc: |
Description
https://trac.romsaf.org/ropp/changeset/5427/ropp_src/branches/dev/Share/dmi_trunk_9.0/ropp_fm/build/Makefile.am https://trac.romsaf.org/ropp/changeset/5427/ropp_src/branches/dev/Share/dmi_trunk_9.0/ropp_fm/common/ropp_fm.f90 https://trac.romsaf.org/ropp/changeset/5427/ropp_src/branches/dev/Share/dmi_trunk_9.0/ropp_fm/refrac_1d/Makefile.am https://trac.romsaf.org/ropp/changeset/5427/ropp_src/branches/dev/Share/dmi_trunk_9.0/ropp_fm/refrac_1d/ropp_fm_tdry.f90 https://trac.romsaf.org/ropp/changeset/5427/ropp_src/branches/dev/Share/dmi_trunk_9.0/ropp_fm/refrac_1d/ropp_fm_tdry_1d.f90 https://trac.romsaf.org/ropp/changeset/5427/ropp_src/branches/dev/Share/dmi_trunk_9.0/ropp_fm/tools/ropp_fm_bg2ro_1d.f90
Original changesets:
Integrate hydrostatic equation only from second-most top level and down: https://trac.romsaf.org/ropp/changeset/5418/ropp_src/branches/dev/Share/dmi_trunk_8.1/ropp_fm/refrac_1d/ropp_fm_tdry_1d.f90
Attachments (1)
Change history (9)
comment:1 by , 6 years ago
Component: | ROPP(all) → ropp_fm |
---|
comment:2 by , 5 years ago
comment:3 by , 5 years ago
(That comment should have been attached to #543 - I wondered where it had gone! It still applies to this ticket, however.)
comment:4 by , 5 years ago
Implemented this OK. The change in the integration method alters the Tdry enough that it fails the automatic tests:
************************** SUMMARY OF ROPP_FM TEST RESULTS *************************** -------------------------------------------------------------------------------------- | Test name | Description | Run? | PASS? | -------------------------------------------------------------------------------------- | t_fascod_1 | FM FASCOD 1D | Run | PASS | | t_fascod_tl_1 | FM_TL FASCOD 1D | Run | PASS | | t_fascod_ad_1 | FM_AD FASCOD 1D | Run | PASS | | t_fascod_2 | FM FASCOD 1D -comp | Run | PASS | | t_fascod_tl_2 | FM_TL FASCOD 1D -comp | Run | PASS | | t_fascod_ad_2 | FM_AD FASCOD 1D -comp | Run | PASS | | t_fascod_3 | FM FASCOD 1D -new_op | Run | PASS | | t_fascod_tl_3 | FM_TL FASCOD 1D -new_op | Run | PASS | | t_fascod_ad_3 | FM_AD FASCOD 1D -new_op | Run | PASS | | t_fascod_4 | FM FASCOD 1D -comp -new_op | Run | PASS | | t_fascod_tl_4 | FM_TL FASCOD 1D -comp -new_op | Run | PASS | | t_fascod_ad_4 | FM_AD FASCOD 1D -comp -new_op | Run | PASS | | t_twodop_1 | FM TWOD | Run | PASS | | t_twodtl_1 | FM_TL TWOD | Run | PASS | | t_twodad_1 | FM_AD TWOD | Run | PASS | | t_twodop_2 | FM TWOD -comp | Run | PASS | | t_twodtl_2 | FM_TL TWOD -comp | Run | PASS | | t_twodad_2 | FM_AD TWOD -comp | Run | PASS | | t_iono_1 | FM L1 and L2 | Run | PASS | | t_iono_tl_1 | FM_TL L1 and L2 | Run | PASS | | t_iono_ad_1 | FM_AD L1 and L2 | Run | PASS | | t_fm_1D_1 | FM 1D; default options | Run | *FAIL* | | t_fm_1D_2 | FM 1D; compress factors | Run | *FAIL* | | t_fm_2D_1 | FM 2D; default options | Run | PASS | | t_fm_2D_2 | FM 2D; compress factors | Run | PASS | | t_fm_iono_1 | FM iono; L_neutral | Run | *FAIL* | | t_fm_iono_2 | FM iono; L1 and L2 | Run | *FAIL* | --------------------------------------------------------------------------------------
because, for example,
Running t_fm_1D_1 (FM 1D; default options) ... ---------------------------------------------------------------------- ROPP FM File Comparison Tool ---------------------------------------------------------------------- INFO (from ropp_fm_compare): Comparing ropp_fm_bgr20090401.nc and ../data/ropp_fm_bgr20090401_reference.nc: the results of running test t_fm_1D_1 (FM 1D; default options) ERROR (from ropp_io_fields_compare): Profile 1 Lev2a%dry_temp values ARE significantly different: |diff| = 4.45755E-01 > 1.00000E-06 INFO (from ropp_fm_compare): Differences occurred in profile 1 ERROR (from ropp_io_fields_compare): Profile 2 Lev2a%dry_temp values ARE significantly different: |diff| = 5.18096E-01 > 1.00000E-06 INFO (from ropp_fm_compare): Differences occurred in profile 2 ERROR (from ropp_io_fields_compare): Profile 3 Lev2a%dry_temp values ARE significantly different: |diff| = 5.16023E-01 > 1.00000E-06 INFO (from ropp_fm_compare): Differences occurred in profile 3 ERROR (from ropp_io_fields_compare): Profile 4 Lev2a%dry_temp values ARE significantly different: |diff| = 5.15495E-01 > 1.00000E-06 INFO (from ropp_fm_compare): Differences occurred in profile 4 ERROR (from ropp_io_fields_compare): Profile 5 Lev2a%dry_temp values ARE significantly different: |diff| = 5.59662E-01 > 1.00000E-06 INFO (from ropp_fm_compare): Differences occurred in profile 5 INFO (from ropp_fm_compare): 5 elements of ropp_fm_bgr20090401.nc and ../data/ropp_fm_bgr20090401_reference.nc differ significantly **************************** ********** *FAIL* ********** **************************** ... examine t_fm_1D_1.log for details
comment:5 by , 5 years ago
comment:6 by , 5 years ago
This is the sort of difference I'd expect to see, so just update the reference files and commit change at r5954.
comment:7 by , 5 years ago
(I still don't understand the need for
!--- above model top DO i=1,SIZE(y%geop) IF (y%geop(i) > x%geop(x%n_lev)) THEN tdry(i) = x%temp(x%n_lev) ! gtop*Hscale/R_dry ENDIF ENDDO
when it's followed by
DO i=1,SIZE(y%geop) IF ( (y%geop(i) < x%geop(1)) .OR. (y%geop(i) > x%geop(x%n_lev)) ) THEN tdry(i) = ropp_MDFV ENDIF ENDDO
See #549. But it doesn't do any harm, so leave it in.)
Discussed this with Sean. We can probably accept this change, because it just involves the generation of a diagnostic from the forward-modelled refractivity. It doesn't affect the state vector, and no-one is going to try to retrieve dry temperatures based on this code. (We hope. If they did want to do so they would have to extend the state vector to include Tdry.) But as a general rule, we should insist that any changes to the forward model MUST be accompanied by corresponding changes to the TL and AD codes. At least, until we have an ROPP FM_simulation module, to go along with the existing effective FM_assimilation module.