Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ufo geovals2 #2

Open
wants to merge 31 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
a64d4ca
Commit GeoVaLs changes for radiances
CoryMartin-NOAA Aug 2, 2022
57dae0c
Write out some geovals for ozone
CoryMartin-NOAA Aug 2, 2022
6743646
Some more ozone changes
CoryMartin-NOAA Aug 2, 2022
98872e0
Surface pressure changes
CoryMartin-NOAA Aug 2, 2022
528b036
Ozone fixes
CoryMartin-NOAA Aug 2, 2022
7a5ad38
Finally fix ozone to build successfully
CoryMartin-NOAA Aug 2, 2022
c8b3d1e
Add geovals to setupt
CoryMartin-NOAA Aug 4, 2022
f1b377a
Some setupt geoval fixes
CoryMartin-NOAA Aug 4, 2022
60aef02
setupq geovals + compile bugfixes
CoryMartin-NOAA Aug 4, 2022
942689a
More changes
CoryMartin-NOAA Sep 6, 2022
faebe31
Merge branch 'master' into ufo_geovals
CoryMartin-NOAA Sep 6, 2022
fe2af90
Add tropopause pressure
CoryMartin-NOAA Sep 6, 2022
77ed099
Fix diag call for trop prs
CoryMartin-NOAA Sep 6, 2022
95a4272
Add trop5 to setuprad; isli to setupw
CoryMartin-NOAA Sep 13, 2022
59a3415
Changes to read_satwind, NOT done or tested
CoryMartin-NOAA Oct 6, 2022
07276f3
try to build with changes for brett
CoryMartin-NOAA Oct 6, 2022
3adfc2d
trop5 is in kPa - convert to hPa (#12)
ADCollard Oct 6, 2022
9ef78b4
able to compile first round attempt for brett
CoryMartin-NOAA Oct 7, 2022
83e6555
Merge branch 'ufo_geovals' of https://github.com/CoryMartin-NOAA/GSI …
CoryMartin-NOAA Oct 7, 2022
f9a35cc
Convert tropopause pressure to Pa not hPA
ADCollard Oct 7, 2022
06e8a85
Changes for seviri and satwinds
CoryMartin-NOAA Oct 14, 2022
ea04c69
Merge branch 'ufo_geovals' of https://github.com/CoryMartin-NOAA/GSI …
CoryMartin-NOAA Oct 14, 2022
9bcca08
comment out duplicate check for ps error
CoryMartin-NOAA Feb 9, 2023
161cbd0
Add QC flags for ozone data
emilyhcliu Jun 23, 2023
a3f13b7
Merged with develop
emilyhcliu Oct 13, 2023
301c2f4
Merge branch 'master' into ufo_geovals2
emilyhcliu Oct 13, 2023
7976dcf
add output to diagnosfic files for ufo evaluation
emilyhcliu Oct 14, 2023
e9f68cf
Revert back to the develop version
emilyhcliu Oct 14, 2023
fbf3962
Tidy up the code
emilyhcliu Oct 14, 2023
a54af7f
remove debugging lines
emilyhcliu Oct 15, 2023
ec4288d
Merge branch 'develop' into ufo_geovals2
emilyhcliu Oct 18, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion fix
Submodule fix updated 2 files
+1 −1 global_convinfo.txt
+57 −57 global_ozinfo.txt
10 changes: 10 additions & 0 deletions modulefiles/gsi_orion.lua
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,16 @@ load(pathJoin("hpc-impi", hpc_impi_ver))
load(pathJoin("cmake", cmake_ver))

load("gsi_common")
setenv("crtm_ROOT","/work/noaa/da/eliu/JEDI-GDAS/crtm_v2.4.1-jedi.1-intel2022/build")
setenv("crtm_VERSION","2.4.1-jedi.1")
setenv("CRTM_INC","/work/noaa/da/eliu/JEDI-GDAS/crtm_v2.4.1-jedi.1-intel2022/build/module")
setenv("CRTM_LIB","/work/noaa/da/eliu/JEDI-GDAS/crtm_v2.4.1-jedi.1-intel2022/build/lib/libcrtm_static.a")
setenv("CRTM_FIX","/work/noaa/da/eliu/JEDI-GDAS/crtm_v2.4.1-jedi.1-fix_gdasapp/fix")
whatis("Name: crtm")
whatis("Version: 2.4.1-jedi.1")
whatis("Category: library")
whatis("Description: crtm library")


load(pathJoin("prod_util", prod_util_ver))

Expand Down
1 change: 1 addition & 0 deletions src/gsi/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,7 @@ target_link_libraries(gsi_fortran_obj PUBLIC nemsio::nemsio)
target_link_libraries(gsi_fortran_obj PUBLIC ncio::ncio)
target_link_libraries(gsi_fortran_obj PUBLIC w3emc::w3emc_d)
target_link_libraries(gsi_fortran_obj PUBLIC sp::sp_d)
add_library(crtm::crtm ALIAS crtm)
target_link_libraries(gsi_fortran_obj PUBLIC bufr::bufr_d)
target_link_libraries(gsi_fortran_obj PUBLIC crtm::crtm)
if(GSI_MODE MATCHES "Regional")
Expand Down
5 changes: 4 additions & 1 deletion src/gsi/crtm_interface.f90
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ module crtm_interface
public destroy_crtm ! Subroutine destroys initialization for crtm
public sensorindex
public surface
public atmosphere
public isatid ! = 1 index of satellite id
public itime ! = 2 index of analysis relative obs time
public ilon ! = 3 index of grid relative obs location (x)
Expand Down Expand Up @@ -125,6 +126,8 @@ module crtm_interface
public idtw ! = 35/37 index of d(Tw)
public idtc ! = 36/38 index of d(Tc)
public itz_tr ! = 37/39 index of d(Tz)/d(Tr)
public n_clouds_fwd_wk
public n_absorbers

! For TMI and GMI
public iedge_log ! = 32 ! index, if obs is to be obleted beause of locating near scan edges.
Expand Down Expand Up @@ -202,6 +205,7 @@ module crtm_interface
logical ,save :: mixed_use
logical ,save :: use_gfdl_qsat
integer(i_kind), parameter :: min_n_absorbers = 2
integer(i_kind) :: n_absorbers

integer(i_kind),save :: iedge_log
integer(i_kind),save :: ilzen_ang2,ilazi_ang2,iscan_ang2,iszen_ang2,isazi_ang2
Expand Down Expand Up @@ -356,7 +360,6 @@ subroutine init_crtm(init_pass,mype_diaghdr,mype,nchanl,nreal,isis,obstype,radmo
! ...all "additional absorber" variables
integer(i_kind) :: j,icount
integer(i_kind) :: ig
integer(i_kind) :: n_absorbers
logical quiet
logical print_verbose

Expand Down
62 changes: 49 additions & 13 deletions src/gsi/genstats_gps.f90
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,15 @@ module m_gpsStats
integer(i_kind) :: idv,iob ! device id and obs index for sorting
real (r_kind) :: elat, elon ! earth lat-lon for redistribution
!real (r_kind) :: dlat, dlon ! earth lat-lon for redistribution
!
real(r_kind),dimension(:),pointer :: tsenges => NULL()
real(r_kind),dimension(:),pointer :: tvirges => NULL()
real(r_kind),dimension(:),pointer :: sphmges => NULL()
real(r_kind),dimension(:),pointer :: hgtlges => NULL()
real(r_kind),dimension(:),pointer :: hgtiges => NULL()
real(r_kind),dimension(:),pointer :: prslges => NULL()
real(r_kind),dimension(:),pointer :: prsiges => NULL()
!
end type gps_all_ob_type

type gps_all_ob_head
Expand Down Expand Up @@ -427,7 +436,10 @@ subroutine genstats_gps(bwork,awork,toss_gps_sub,conv_diagsave,mype)
end do
END DO
if(icnt > 0)then
nreal =22
!
! nreal =22
nreal =34
!
ioff =nreal
if (lobsdiagsave) nreal=nreal+4*miter+1
if (save_jacobian) then
Expand All @@ -439,8 +451,6 @@ subroutine genstats_gps(bwork,awork,toss_gps_sub,conv_diagsave,mype)
end if
endif



! Loop over data to apply final qc, superobs factors, accumulate
! statistics and (optionally) load diagnostic output arrays
icnt=0
Expand Down Expand Up @@ -534,10 +544,12 @@ subroutine genstats_gps(bwork,awork,toss_gps_sub,conv_diagsave,mype)
elev = gps_allptr%rdiag(7)
dobs = gps_allptr%rdiag(17)
if (toss_gps(kprof) > zero .and. (dobs == toss_gps(kprof) .or. elev < dobs_height(kprof))) then ! SR from obs

if(ratio_errors*data_ier > tiny_r_kind) then ! obs was good
if (luse) then
if(conv_diagsave) then
gps_allptr%rdiag(10) = four
!gps_allptr%rdiag(10) = four
gps_allptr%rdiag(10) = 8
gps_allptr%rdiag(12) = -one
gps_allptr%rdiag(16) = zero
if(lobsdiagsave) gps_allptr%rdiag(mreal+jiter) = -one
Expand Down Expand Up @@ -704,7 +716,6 @@ subroutine genstats_gps(bwork,awork,toss_gps_sub,conv_diagsave,mype)
endif
endif


! Destroy arrays holding gps data
call destroy_genstats_gps
contains
Expand Down Expand Up @@ -760,19 +771,25 @@ subroutine contents_netcdf_diag_
! Observation class
character(7),parameter :: obsclass = ' gps'

call nc_diag_metadata("Station_ID", gps_allptr%cdiag )
call nc_diag_metadata("Observation_Class", obsclass )
call nc_diag_metadata("Station_ID", gps_allptr%cdiag )
call nc_diag_metadata("Observation_Class", obsclass )
obstype = gps_allptr%rdiag(1)
obssubtype = gps_allptr%rdiag(2)
call nc_diag_metadata("Observation_Type", obstype )
call nc_diag_metadata("Observation_Subtype", obssubtype )
! rename it to be consistent with GMAO gsi_ncdiag
! call nc_diag_metadata("Observation_Subtype", obssubtype )
call nc_diag_metadata("record_number", obssubtype )
call nc_diag_metadata_to_single("Latitude", gps_allptr%rdiag(3) )
call nc_diag_metadata_to_single("Longitude", gps_allptr%rdiag(4) )
call nc_diag_metadata_to_single("Incremental_Bending_Angle", gps_allptr%rdiag(5) )
call nc_diag_metadata_to_single("Pressure", gps_allptr%rdiag(6) )
call nc_diag_metadata_to_single("Height", gps_allptr%rdiag(7) )
! call nc_diag_metadata_to_single("Pressure", gps_allptr%rdiag(6) ) !orig
call nc_diag_metadata_to_single("Pressure", gps_allptr%rdiag(6)*100.0 )
! rename the variable as impact_height
! call nc_diag_metadata_to_single("Height", gps_allptr%rdiag(7) )
call nc_diag_metadata_to_single("Impact_Height", gps_allptr%rdiag(7) )
call nc_diag_metadata_to_single("Time", gps_allptr%rdiag(8) )
call nc_diag_metadata_to_single("Model_Elevation", gps_allptr%rdiag(9) )
! call nc_diag_metadata_to_single("Model_Elevation", gps_allptr%rdiag(9) ) !orig
call nc_diag_metadata_to_single("surface_geopotential_height", gps_allptr%rdiag(9) )
call nc_diag_metadata_to_single("Setup_QC_Mark", gps_allptr%rdiag(10) )
call nc_diag_metadata_to_single("Prep_Use_Flag", gps_allptr%rdiag(11) )
call nc_diag_metadata_to_single("Analysis_Use_Flag", gps_allptr%rdiag(12) )
Expand All @@ -788,14 +805,33 @@ subroutine contents_netcdf_diag_
call nc_diag_metadata_to_single("Temperature_at_Obs_Location", gps_allptr%rdiag(18) )
call nc_diag_metadata_to_single("Specific_Humidity_at_Obs_Location",gps_allptr%rdiag(21) )

call nc_diag_metadata("impact_parameter", sngl(gps_allptr%rdiag(23)) )
call nc_diag_metadata("pccf", sngl(gps_allptr%rdiag(24)) )
call nc_diag_metadata("reference_sat_id", int(gps_allptr%rdiag(25)) )
call nc_diag_metadata("earth_radius_of_curvature", sngl(gps_allptr%rdiag(26)) )
call nc_diag_metadata("geoid_height_above_reference_ellipsoid", sngl(gps_allptr%rdiag(27)) )
call nc_diag_metadata("qfro", int(gps_allptr%rdiag(28)) )
call nc_diag_metadata("ascending_flag", int(gps_allptr%rdiag(29)) )
call nc_diag_metadata("sensor_azimuth_angle", sngl(gps_allptr%rdiag(30)) )
call nc_diag_metadata("sat_constellation", int(gps_allptr%rdiag(31)) )
call nc_diag_metadata("occulting_sat", int(gps_allptr%rdiag(32)) )
call nc_diag_metadata("process_center", int(gps_allptr%rdiag(33)) )
call nc_diag_metadata("atmospheric_refractivity", sngl(gps_allptr%rdiag(34)) )
call nc_diag_metadata("surface_altitude", sngl(gps_allptr%rdiag(9)) )

if (save_jacobian) then
call readarray(dhx_dx, gps_allptr%rdiag(ioff+1:nreal))
call nc_diag_data2d("Observation_Operator_Jacobian_stind", dhx_dx%st_ind(1:dhx_dx%nind))
call nc_diag_data2d("Observation_Operator_Jacobian_endind", dhx_dx%end_ind(1:dhx_dx%nind))
call nc_diag_data2d("Observation_Operator_Jacobian_val", real(dhx_dx%val(1:dhx_dx%nnz),r_single))
endif


call nc_diag_data2d("atmosphere_pressure_coordinate", sngl(gps_allptr%prslges))
call nc_diag_data2d("atmosphere_pressure_coordinate_interface", sngl(gps_allptr%prsiges))
call nc_diag_data2d("air_temperature", sngl(gps_allptr%tsenges))
call nc_diag_data2d("virtual_temperature", sngl(gps_allptr%tvirges))
call nc_diag_data2d("specific_humidity", sngl(gps_allptr%sphmges))
call nc_diag_data2d("geopotential_height", sngl(gps_allptr%hgtlges))
call nc_diag_data2d("geopotential_height_levels", sngl(gps_allptr%hgtiges))

! call nc_diag_data2d("T_Jacobian", gps_allptr%mmpoint%jac_t )
if (lobsdiagsave) then
Expand Down
9 changes: 9 additions & 0 deletions src/gsi/gesinfo.F90
Original file line number Diff line number Diff line change
Expand Up @@ -588,6 +588,15 @@ subroutine gesinfo
time_offset=time_offset+fha(3)/r60
#endif

write(6,*)'emily time: nhr_assimilation = ', nhr_assimilation
write(6,*)'emily time: idate nmin_an = ', idate , nmin_an
write(6,*)'emily time: ibdate = ', ibdate
write(6,*)'emily time: iadatebgn = ', iadateend
write(6,*)'emily time: iedate = ', iedate
write(6,*)'emily time: iadateend = ', iedate
write(6,*)'emily time: ianldate = ', ianldate
write(6,*)'emily time: iwinbgn = ', iwinbgn

! Get information about date/time and number of guess files
if (regional) then
if(wrf_nmm_regional) then
Expand Down
Loading
Loading