Skip to content

Conversation

@ldfowler58
Copy link
Contributor

This PR corrects the calculation of the 2-meter diagnostics (T2M, TH2M, and Q2) when using the Noah-MP land surface scheme. While the computation of 2-meter diagnostics is the same for Noah and Noah-MP over oceans, it is different between the two land surface schemes over land. In Noah-MP, the 2-meter diagnostics are weighted as functions of their respective diagnostics over bare soil and over vegetation. The updated diagnostics for Noah and Noah-MP are now computed in the new file mpas_atmphys_sfc_diagnostics.F.

…n 2-meter temperature

  and 2-meter water vapor mixing ratio to the output_noahmp diagnostic pool. The variables
  t2mxy and q2mxy are computed in Noah-MP LSM as functions of the vegetation fraction,
  and the 2-meter temperatures and water vapor mixing ratios over vegetation and bare soil
  (t2mvxy and t2mbxy; q2mvxy and q2mbxy), but were not directly output as diagnostics.
…fied the call to

  subroutine seaice_noah.

  -> in ./physics_wrf/module_sf_noah_seaice_drv.F, subroutine seaice_noah includes the
     optional variables noahres, potevp, and snopcx. these three variables are used in
     the Noah LSM but not used in the Noah-MP LSM. separate calls to seaice_noah as a
     function of the LSM option reflects this difference between Noah and Noah-MP in
     subroutine driver_seaice.

  -> in mpas_atmphys_driver.F, modified calls to allocate_seaice and deallocate_seaice
     accordingly.
…t2m, and th2m when

  running the Noah-MP land surface scheme:

  -> added the module mpas_atmphys_sfc_diagnostics.F to compute q2,t2m,and th2m for the
     Noah and Noah-MP land surface schemes, separately.

  -> removed the computation of q2,t2m,and th2m for the Noah LSM in mpas_atmphys_driver_seaice.F.

  -> in mpas_atmphys_driver.F, added the call to atmphys_sfc_diagnostics in subroutine
     physics_driver.

  -> corrected Makefile accordingly.
@ldfowler58 ldfowler58 changed the title correct the computation of 2-meter diagnostics with Noah-MP #1240 correct the computation of 2-meter diagnostics with Noah-MP Oct 24, 2024
@mgduda mgduda self-requested a review October 25, 2024 21:30
@mgduda mgduda added the bug fix label May 19, 2025
  -> in subroutine lsm_noahmp_fromMPAS, removed the initialization of variables
     mpas_noahmp%t2mvxy,mpas_noahmp%t2mbxy,mpas_noahmp%t2mxy,mpas_noahmp%q2mvxy,
     mpas_noahmp%q2mbxy,mpas_noahmp%q2mxy which are no longer needed.

  -> in subroutine lsm_noahmp_toMPAS, commented out top statement.
@ldfowler58
Copy link
Contributor Author

Added minor changes to ./src/core_atmosphere/physics/mpas_atmphys_driver_lsm_noahmp.F, as suggested.

@mgduda mgduda self-requested a review May 20, 2025 17:52
@mgduda mgduda merged commit 4425a2b into MPAS-Dev:hotfix-v8.2.3 May 20, 2025
mgduda added a commit that referenced this pull request May 23, 2025
This merge addresses several issues in the MPAS-Atmosphere model and in the MPAS
infrastructure. Specific changes include:

 * Correction of the pool from which lbc_scalar constituent indices are obtained
   in the init_atm_thompson_aerosols_lbc routine. Rather than obtaining
   index_nifa and index_nwfa from the state pool, the indices of lbc_nifa and
   lbc_nwfa should be obtained from the lbc_state pool. (PR #1249)

 * Correction to the computation of the soil temperature (TSLB) in the Noah-MP
   land surface scheme through the addition of initialization of the soil liquid
   water (SH2O) in the noahmp_init subroutine in module
   mpas_atmphys_lsm_noahmpinit.F prior to calling NoahmpInitMain. (PR #1244)

 * Correction of the units of the fields 'greenfrac', 'shdmin', 'shdmax',
   'vegfra', and 'albedo12m' from "unitless" to "percent" in the
   init_atmosphere and atmosphere core Registry.xml files. Also, a correction to
   the spelling of 'greenness' in several places. (PR #1248)

 * Removal of a duplicate allocation of indexToEdgeID % array in the
   mpas_io_setup_edge_block_fields routine that was the source of a memory leak.
   (PR #1258)

 * Fix for a memory leak in mpas_block_creator_build_cell_halos by deallocating
   the cellLimitField field before the routine returns. (PR #1264)

 * Fix for a bug in the logic for determining when decompositions can be reused
   by the SMIOL library. In almost any practical situation, however, this bug
   created no issues. (PR #1288)

 * Changes in the init_atmosphere core to provide more reliable error messages
   in case config_nfglevels is not set to a value that is at least as large as
   the number of vertical levels in the first-guess intermediate file. (PR #1291)

 * Correction of the loop for Noah-MP snow initialization, capping snow water
   equivalent maximum at 2000 mm. (PR #1300)

 * Fix for a bug in the horizontal 2nd-order filter for the CAM upper absorbing
   layer, where the wrong level in the kdiff field was being used when enforcing
   a lower-bound on kdiff. This absorbing layer is active only when
   config_mpas_cam_coef > 0.0. (PR #1302)

 * Fix in the mountain wave idealized test case initialization when multiple MPI
   tasks are used. The 'xc' variable, which represents the center-point location
   of the mountain, was previously computed based on the maximum xCell values
   local to an MPI task, leading to inconsistent values on each MPI rank. By
   finding the maximum of xCell over all MPI ranks and ensuring that all MPI
   ranks use this global maximum, the terrain field is computed consistently
   between serial and parallel runs of the init_atmosphere_model program for the
   mountain wave test case (config_init_case = 6). (PR #1312)

 * Correction to the calculation of the 2-meter diagnostics (T2M, TH2M, and Q2)
   when using the Noah-MP land surface scheme. While the computation of 2-meter
   diagnostics is the same for Noah and Noah-MP over oceans, it is different
   between the two land surface schemes over land. In Noah-MP, the 2-meter
   diagnostics are weighted as functions of their respective diagnostics over
   bare soil and over vegetation. The updated diagnostics for Noah and Noah-MP
   are now computed in the new file mpas_atmphys_sfc_diagnostics.F. (PR #1242)

 * Fix to provide consistency in the ringing behavior of recurring alarms after
   their reference time has been adjusted with a call to
   mpas_adjust_alarm_to_reference_time. Now, adjusting the reference time for an
   alarm will always leave that alarm in a state such that it is considered by
   the mpas_is_alarm_ringing routine to be ringing at the current time. With
   this fix, limited-area simulations can be restarted at times between LBC
   updates, provided the reference_time attribute for the 'lbc_in' stream is set
   to the simulation initial time in the streams.atmosphere file. (PR #1290).

 * Correction of an indexing error for rvcuten in code blocks specific to the
   Grell-Freitas scheme in the convection driver. Specifically, in the
   convection_from_MPAS and convection_to_MPAS routines, rvcuten used (k,k) as
   indexing in a loop, where (k,i) is needed. Since the Grell-Freitas scheme
   does not provide momentum tendencies, the changes in this merge have no
   impact on results. (PR #1283)
@ldfowler58 ldfowler58 deleted the Noah-MP_v8.2.0/fix_2meter_diagnostics branch June 16, 2025 17:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants