Skip to content

Commit

Permalink
fix for zero total ozone pressure in EnKF (issue NOAA-EMC#625) (NOAA-…
Browse files Browse the repository at this point in the history
…EMC#626)

The fix involves setting the pressure to 0.001Pa for ozone obs that have
zero pressure (to avoid Inf when log(p) calculated), and turning off
ob-space vertical localization. Has no effect on current operational
setup which uses model-space vertical localization (modelspace_vloc=T).

---------

Co-authored-by: jswhit2 <[email protected]>
  • Loading branch information
jswhit and jswhit2 authored Sep 22, 2023
1 parent d84a18f commit aa656c6
Showing 1 changed file with 7 additions and 1 deletion.
8 changes: 7 additions & 1 deletion src/enkf/enkf_obsmod.f90
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,6 @@ subroutine readobs()
allocate(corrlengthsq(nobstot),lnsigl(nobstot),obtimel(nobstot))
lnsigl=1.e10
do nob=1,nobstot
oblnp(nob) = -log(obpress(nob)) ! distance measured in log(p) units
if (obloclon(nob) < zero) obloclon(nob) = obloclon(nob) + 360._r_single
radlon=deg2rad*obloclon(nob)
radlat=deg2rad*obloclat(nob)
Expand All @@ -283,6 +282,13 @@ subroutine readobs()
lnsigl(nob)=latval(deglat,lnsigcutoffnh,lnsigcutofftr,lnsigcutoffsh)
end if
endif
! total column ozone has pressure set to zero, set to 0.001Pa
! and turn vertical localization off (no effect if modelspace_vloc=T)
if (obpress(nob) < 0.001 .and. obtype(nob)(1:3) .eq. ' oz') then
lnsigl(nob) = 1.e30 ! turn ob-space vert localization off
obpress(nob) = 0.001 ! set to a non-zero value
endif
oblnp(nob) = -log(obpress(nob)) ! distance measured in log(p) units
corrlengthsq(nob)=latval(deglat,corrlengthnh,corrlengthtr,corrlengthsh)**2
if ( (obtype(nob)(1:3) == 'dbz' .or. obtype(nob)(1:3) == ' rw') .and. l_use_enkf_directZDA ) then
corrlengthsq(nob)=latval(deglat,corrlengthrdrnh,corrlengthrdrtr,corrlengthrdrsh)**2
Expand Down

0 comments on commit aa656c6

Please sign in to comment.