Skip to content

Commit

Permalink
facilitate HISTORY output of ensstd even when ensavg is not written o…
Browse files Browse the repository at this point in the history
…ut; rearrange do loop in GEOS_LandAssimGridComp.F90
  • Loading branch information
gmao-rreichle committed Mar 20, 2023
1 parent 37dbf00 commit 42f5e71
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3165,7 +3165,7 @@ subroutine Collect_land_ens(gc, import, export, clock, rc)
if(associated(HLATN_enavg)) HLATN_enavg = 0.0
if(associated(QINFIL_enavg)) QINFIL_enavg = 0.0
if(associated(GHFLX_enavg)) GHFLX_enavg = 0.0
if(associated(TPSURF_enavg)) TPSURF_enavg = 0.0
if(associated(TPSURF_enavg) .or. associated(TPSURF_enstd)) TPSURF_enavg = 0.0
if(associated(TPSURF_enstd)) TPSURF_enstd = 0.0
if(associated(TPSNOW_enavg)) TPSNOW_enavg = 0.0
if(associated(TPUNST_enavg)) TPUNST_enavg = 0.0
Expand All @@ -3182,13 +3182,13 @@ subroutine Collect_land_ens(gc, import, export, clock, rc)
if(associated(WET1_enavg)) WET1_enavg = 0.0
if(associated(WET2_enavg)) WET2_enavg = 0.0
if(associated(WET3_enavg)) WET3_enavg = 0.0
if(associated(WCSF_enavg)) WCSF_enavg = 0.0
if(associated(WCSF_enavg) .or. associated(WCSF_enstd)) WCSF_enavg = 0.0
if(associated(WCSF_enstd)) WCSF_enstd = 0.0
if(associated(WCRZ_enavg)) WCRZ_enavg = 0.0
if(associated(WCRZ_enavg) .or. associated(WCRZ_enstd)) WCRZ_enavg = 0.0
if(associated(WCRZ_enstd)) WCRZ_enstd = 0.0
if(associated(WCPR_enavg)) WCPR_enavg = 0.0
if(associated(WCPR_enavg) .or. associated(WCPR_enstd)) WCPR_enavg = 0.0
if(associated(WCPR_enstd)) WCPR_enstd = 0.0
if(associated(TP1_enavg)) TP1_enavg = 0.0
if(associated(TP1_enavg) .or. associated(TP1_enstd)) TP1_enavg = 0.0
if(associated(TP1_enstd)) TP1_enstd = 0.0
if(associated(TP2_enavg)) TP2_enavg = 0.0
if(associated(TP3_enavg)) TP3_enavg = 0.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2004,24 +2004,31 @@ subroutine RUN ( GC, IMPORT, EXPORT, CLOCK, RC )

! finalize ensemble average and standard deviation

Nm1 = real(NUM_ENSEMBLE-1)
if (NUM_ENSEMBLE > 1) then

if (NUM_ENSEMBLE > 1) NdivNm1 = real(NUM_ENSEMBLE)/Nm1
Nm1 = real(NUM_ENSEMBLE-1)

NdivNm1 = real(NUM_ENSEMBLE)/Nm1

do ii=1,N_catl
cat_diagS_ensavg(ii) = cat_diagS_ensavg(ii)/real(NUM_ENSEMBLE) ! normalize --> ens avg
do ii=1,N_catl

cat_diagS_ensavg(ii) = cat_diagS_ensavg(ii)/real(NUM_ENSEMBLE) ! normalize --> ens avg

if (NUM_ENSEMBLE > 1 ) then

cat_diagS_ensstd(ii) = cat_diagS_sqrt( cat_diagS_ensstd(ii)/Nm1 - NdivNm1*(cat_diagS_ensavg(ii)*cat_diagS_ensavg(ii)) )

end do

else ! NUM_ENSEMBLE = 1

else ! NUM_ENSEMBLE = 1

! no need to normalize ens avg, set ens std to undef

do ii=1,N_catl

cat_diagS_ensstd(ii) = MAPL_UNDEF

end do

end if
end do
end if

! set export variables

Expand Down

0 comments on commit 42f5e71

Please sign in to comment.