-
Notifications
You must be signed in to change notification settings - Fork 693
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add lightning data assimilation (#1962)
TYPE: new feature KEYWORDS: lightning data, vertical velocity, pseudo divergence, pseudo water vapor SOURCE: Zhixiong Chen (zchen@fjnu.edu.cn, Fujian Normal University, China) DESCRIPTION OF CHANGES: A new lightning data assimilation scheme has been implemented in the WRFDA. In this lightning DA scheme, the lightning flash rate is first converted to the maximum vertical velocity using an empirical relationship and then expanded to profiles of vertical velocities. The profiles of vertical velocity can be directly assimilated with the control variable of W. Another way is to assimilate pseudo divergence converted from vertical velocity to adjust the Kinematic states. A scheme to assimilate pseudo water vapor retrievals from lightning flash rate observations is also added. In the humidity assimilation scheme, the mixing ratio profiles of pseudo water vapor are retrieved from the locations where a rapid increase in lightning flash rate is detected. LIST OF MODIFIED FILES: M Registry/registry.var M frame/module_driver_constants.F M var/build/da.make M var/build/depend.txt M var/da/da_control/da_control.f90 M var/da/da_define_structures/da_allocate_observations.inc M var/da/da_define_structures/da_allocate_y.inc A var/da/da_define_structures/da_allocate_y_lightning.inc M var/da/da_define_structures/da_deallocate_observations.inc M var/da/da_define_structures/da_deallocate_y.inc M var/da/da_define_structures/da_define_structures.f90 M var/da/da_define_structures/da_zero_y.inc A var/da/da_lightning/da_ao_stats_lightning.inc A var/da/da_lightning/da_calculate_grady_lightning.inc A var/da/da_lightning/da_check_max_iv_lightning.inc A var/da/da_lightning/da_div_profile.inc A var/da/da_lightning/da_div_profile_adj.inc A var/da/da_lightning/da_div_profile_tl.inc A var/da/da_lightning/da_get_innov_vector_lightning.inc A var/da/da_lightning/da_jo_and_grady_lightning.inc A var/da/da_lightning/da_lightning.f90 A var/da/da_lightning/da_oi_stats_lightning.inc A var/da/da_lightning/da_print_stats_lightning.inc A var/da/da_lightning/da_residual_lightning.inc A var/da/da_lightning/da_transform_xtoy_lightning.inc A var/da/da_lightning/da_transform_xtoy_lightning_adj.inc M var/da/da_main/da_wrfvar_top.f90 M var/da/da_minimisation/da_calculate_grady.inc M var/da/da_minimisation/da_calculate_residual.inc M var/da/da_minimisation/da_get_innov_vector.inc M var/da/da_minimisation/da_get_var_diagnostics.inc M var/da/da_minimisation/da_jo_and_grady.inc M var/da/da_minimisation/da_minimisation.f90 M var/da/da_minimisation/da_write_diagnostics.inc M var/da/da_obs/da_fill_obs_structures.inc A var/da/da_obs/da_fill_obs_structures_lightning.inc M var/da/da_obs/da_obs.f90 M var/da/da_obs/da_obs_sensitivity.inc M var/da/da_obs/da_transform_xtoy.inc M var/da/da_obs/da_transform_xtoy_adj.inc M var/da/da_obs_io/da_final_write_obs.inc M var/da/da_obs_io/da_obs_io.f90 M var/da/da_obs_io/da_read_iv_for_multi_inc.inc A var/da/da_obs_io/da_read_obs_lightning.inc M var/da/da_obs_io/da_read_omb_tmp.inc A var/da/da_obs_io/da_scan_obs_lightning.inc M var/da/da_obs_io/da_search_obs.inc M var/da/da_obs_io/da_write_iv_for_multi_inc.inc M var/da/da_obs_io/da_write_obs.inc M var/da/da_setup_structures/da_setup_obs_structures.inc M var/da/da_setup_structures/da_setup_obs_structures_ascii.inc A var/da/da_setup_structures/da_setup_obs_structures_lightning.inc M var/da/da_setup_structures/da_setup_structures.f90 M var/da/da_statistics/da_analysis_stats.inc M var/da/da_statistics/da_statistics.f90 M var/da/da_test/da_check_xtoy_adjoint.inc A var/da/da_test/da_check_xtoy_adjoint_lightning.inc M var/da/da_test/da_get_y_lhs_value.inc M var/da/da_test/da_test.f90 TESTS CONDUCTED: 1. Tested it with 3DVar on Cheyenne using the intel compiler. RELEASE NOTE: A lightning data assimilation scheme has been added to assimilate pseudo vertical velocity, divergence fields, or water vapor retrievals from lightning flash rate data. Chen, Z., Sun, J., Qie, X., Zhang, Y., Ying, Z., Xiao, X., & Cao, D. (2020). A method to update model kinematic states by assimilating satellite-observed total lightning data to improve convective analysis and forecasting. Journal of Geophysical Research: Atmospheres, 125, e2020JD033330. https://doi.org/10.1029/2020JD033330
- Loading branch information
Showing
59 changed files
with
2,494 additions
and
276 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
subroutine da_allocate_y_lightning (iv, y) | ||
|
||
!--------------------------------------------------------------------------- | ||
! Purpose: Allocate arrays used in y and residual obs structures. | ||
! Authors: Z Chen (zchen@fjnu.edu.cn), Jenny Sun (NCAR), X Qie (IAP) | ||
!--------------------------------------------------------------------------- | ||
|
||
implicit none | ||
|
||
type (iv_type), intent(in) :: iv ! Ob type input. | ||
type (y_type), intent(inout) :: y ! Residual type structure. | ||
|
||
integer :: n ! Loop counter. | ||
integer :: nlevels ! Number of levels. | ||
|
||
!--------------------------------------------------------------------------- | ||
! [1.0] Copy number of observations: | ||
!--------------------------------------------------------------------------- | ||
|
||
if (trace_use) call da_trace_entry("da_allocate_y_lightning") | ||
|
||
y % nlocal(lightning) = iv%info(lightning)%nlocal | ||
y % ntotal(lightning) = iv%info(lightning)%ntotal | ||
|
||
!--------------------------------------------------------------------------- | ||
! [2.0] Allocate: | ||
!--------------------------------------------------------------------------- | ||
|
||
if (y % nlocal(lightning) > 0) then | ||
allocate (y % lightning(1:y % nlocal(lightning))) | ||
do n = 1, y % nlocal(lightning) | ||
nlevels = iv%info(lightning)%levels(n) | ||
allocate (y % lightning(n) % w(1:nlevels)) | ||
allocate (y % lightning(n) % div(1:nlevels)) | ||
allocate (y % lightning(n) % qv(1:nlevels)) | ||
y % lightning(n) % w(1:nlevels) = 0.0 | ||
y % lightning(n) % div(1:nlevels) = 0.0 | ||
y % lightning(n) % qv(1:nlevels) = 0.0 | ||
end do | ||
end if | ||
|
||
if (trace_use) call da_trace_exit("da_allocate_y_lightning") | ||
|
||
end subroutine da_allocate_y_lightning |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.