Skip to content

Commit

Permalink
fix for zero total ozone pressure in EnKF (issue #625) (#626)
Browse files Browse the repository at this point in the history
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.