Skip to content

Commit

Permalink
ensure non-negative ens std output
Browse files Browse the repository at this point in the history
  • Loading branch information
gmao-rreichle committed Mar 17, 2023
1 parent 435066f commit 37dbf00
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3670,7 +3670,7 @@ subroutine Collect_land_ens(gc, import, export, clock, rc)
if(associated(GHFLX_enavg)) GHFLX_enavg = GHFLX_enavg/NUM_ENSEMBLE
if(associated(TPSURF_enavg)) TPSURF_enavg = TPSURF_enavg/NUM_ENSEMBLE
if((NUM_ENSEMBLE>1) .and. associated(TPSURF_enstd) .and. associated(TPSURF_enavg)) then
TPSURF_enstd = sqrt( TPSURF_enstd/Nm1 - NdivNm1*(TPSURF_enavg**2) )
TPSURF_enstd = max( sqrt( TPSURF_enstd/Nm1 - NdivNm1*(TPSURF_enavg**2) ), 0. )
else if (associated(TPSURF_enstd)) then
TPSURF_enstd = MAPL_UNDEF
end if
Expand All @@ -3691,25 +3691,25 @@ subroutine Collect_land_ens(gc, import, export, clock, rc)
if(associated(WET3_enavg)) WET3_enavg = WET3_enavg/NUM_ENSEMBLE
if(associated(WCSF_enavg)) WCSF_enavg = WCSF_enavg/NUM_ENSEMBLE
if((NUM_ENSEMBLE>1) .and. associated(WCSF_enstd) .and. associated(WCSF_enavg)) then
WCSF_enstd = sqrt( WCSF_enstd/Nm1 - NdivNm1*(WCSF_enavg**2) )
WCSF_enstd = max( sqrt( WCSF_enstd/Nm1 - NdivNm1*(WCSF_enavg**2) ), 0. )
else if (associated(WCSF_enstd)) then
WCSF_enstd = MAPL_UNDEF
end if
if(associated(WCRZ_enavg)) WCRZ_enavg = WCRZ_enavg/NUM_ENSEMBLE
if((NUM_ENSEMBLE>1) .and. associated(WCRZ_enstd) .and. associated(WCRZ_enavg)) then
WCRZ_enstd = sqrt( WCRZ_enstd/Nm1 - NdivNm1*(WCRZ_enavg**2) )
WCRZ_enstd = max( sqrt( WCRZ_enstd/Nm1 - NdivNm1*(WCRZ_enavg**2) ), 0. )
else if (associated(WCRZ_enstd)) then
WCRZ_enstd = MAPL_UNDEF
end if
if(associated(WCPR_enavg)) WCPR_enavg = WCPR_enavg/NUM_ENSEMBLE
if((NUM_ENSEMBLE>1) .and. associated(WCPR_enstd) .and. associated(WCPR_enavg)) then
WCPR_enstd = sqrt( WCPR_enstd/Nm1 - NdivNm1*(WCPR_enavg**2) )
WCPR_enstd = max( sqrt( WCPR_enstd/Nm1 - NdivNm1*(WCPR_enavg**2) ), 0. )
else if (associated(WCPR_enstd)) then
WCPR_enstd = MAPL_UNDEF
end if
if(associated(TP1_enavg)) TP1_enavg = TP1_enavg/NUM_ENSEMBLE ! units K
if((NUM_ENSEMBLE>1) .and. associated(TP1_enstd) .and. associated(TP1_enavg)) then
TP1_enstd = sqrt( TP1_enstd/Nm1 - NdivNm1*(TP1_enavg**2) )
TP1_enstd = max( sqrt( TP1_enstd/Nm1 - NdivNm1*(TP1_enavg**2) ), 0. )
else if (associated(TP1_enstd)) then
TP1_enstd = MAPL_UNDEF
end if
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2025,19 +2025,19 @@ subroutine RUN ( GC, IMPORT, EXPORT, CLOCK, RC )

! set export variables

if(associated(SFMC_ana)) SFMC_ana(:) = cat_diagS_ensavg(:)%sfmc
if(associated(RZMC_ana)) RZMC_ana(:) = cat_diagS_ensavg(:)%rzmc
if(associated(PRMC_ana)) PRMC_ana(:) = cat_diagS_ensavg(:)%prmc
if(associated(TPSURF_ana)) TPSURF_ana(:) = cat_diagS_ensavg(:)%tsurf
if(associated(TSOIL1_ana)) TSOIL1_ana(:) = cat_diagS_ensavg(:)%tp(1) + MAPL_TICE ! convert to K

if(associated(SFMC_ana_ensstd)) SFMC_ana_ensstd(:) = cat_diagS_ensstd(:)%sfmc
if(associated(RZMC_ana_ensstd)) RZMC_ana_ensstd(:) = cat_diagS_ensstd(:)%rzmc
if(associated(PRMC_ana_ensstd)) PRMC_ana_ensstd(:) = cat_diagS_ensstd(:)%prmc
if(associated(TPSURF_ana_ensstd)) TPSURF_ana_ensstd(:) = cat_diagS_ensstd(:)%tsurf
if(associated(TSOIL1_ana_ensstd)) TSOIL1_ana_ensstd(:) = cat_diagS_ensstd(:)%tp(1)

if(associated(MWRTM_VEGOPACITY)) MWRTM_VEGOPACITY(:) = mwRTM_param(:)%VEGOPACITY
if(associated(SFMC_ana)) SFMC_ana(:) = cat_diagS_ensavg(:)%sfmc
if(associated(RZMC_ana)) RZMC_ana(:) = cat_diagS_ensavg(:)%rzmc
if(associated(PRMC_ana)) PRMC_ana(:) = cat_diagS_ensavg(:)%prmc
if(associated(TPSURF_ana)) TPSURF_ana(:) = cat_diagS_ensavg(:)%tsurf
if(associated(TSOIL1_ana)) TSOIL1_ana(:) = cat_diagS_ensavg(:)%tp(1) + MAPL_TICE ! convert to K

if(associated(SFMC_ana_ensstd)) SFMC_ana_ensstd(:) = max( cat_diagS_ensstd(:)%sfmc , 0. )
if(associated(RZMC_ana_ensstd)) RZMC_ana_ensstd(:) = max( cat_diagS_ensstd(:)%rzmc , 0. )
if(associated(PRMC_ana_ensstd)) PRMC_ana_ensstd(:) = max( cat_diagS_ensstd(:)%prmc , 0. )
if(associated(TPSURF_ana_ensstd)) TPSURF_ana_ensstd(:) = max( cat_diagS_ensstd(:)%tsurf , 0. )
if(associated(TSOIL1_ana_ensstd)) TSOIL1_ana_ensstd(:) = max( cat_diagS_ensstd(:)%tp(1) , 0. )

if(associated(MWRTM_VEGOPACITY)) MWRTM_VEGOPACITY(:) = mwRTM_param(:)%VEGOPACITY

deallocate(cat_progn_tmp)
deallocate(cat_diagS)
Expand Down

0 comments on commit 37dbf00

Please sign in to comment.