From 719ce32bf489a487a994f13f21f03cee7494dcee Mon Sep 17 00:00:00 2001 From: jshaw35 Date: Wed, 11 Feb 2026 08:56:18 -0700 Subject: [PATCH] Allocate mask indices and add missing histograms to standard variable checks. --- src/cosp.F90 | 16 ++++++++++++++++ src/simulator/cosp_modis_interface.F90 | 1 + 2 files changed, 17 insertions(+) diff --git a/src/cosp.F90 b/src/cosp.F90 index 02ed2a6337..5b3bda7c21 100755 --- a/src/cosp.F90 +++ b/src/cosp.F90 @@ -1739,6 +1739,14 @@ function COSP_SIMULATOR(cospIN,cospgridIN,cospOUT,start_idx,stop_idx,debug) cospOUT%modis_Optical_Thickness_vs_Cloud_Top_Pressure_Liq(ij+int(modisIN%notSunlit(:))-1, :, :) = R_UNDEF if (associated(cospOUT%modis_Optical_Thickness_vs_Cloud_Top_Pressure_Ice)) & cospOUT%modis_Optical_Thickness_vs_Cloud_Top_Pressure_Ice(ij+int(modisIN%notSunlit(:))-1, :, :) = R_UNDEF + if (associated(cospOUT%modis_LWP_vs_ReffLIQ)) & + cospOUT%modis_LWP_vs_ReffLIQ(ij+int(modisIN%notSunlit(:))-1, :, :) = R_UNDEF + if (associated(cospOUT%modis_IWP_vs_ReffICE)) & + cospOUT%modis_IWP_vs_ReffICE(ij+int(modisIN%notSunlit(:))-1, :, :) = R_UNDEF + if (associated(cospOUT%modis_Optical_Thickness_vs_ReffIce)) & + cospOUT%modis_Optical_Thickness_vs_ReffIce(ij+int(modisIN%notSunlit(:))-1, :, :) = R_UNDEF + if (associated(cospOUT%modis_Optical_Thickness_vs_ReffLiq)) & + cospOUT%modis_Optical_Thickness_vs_ReffLiq(ij+int(modisIN%notSunlit(:))-1, :, :) = R_UNDEF end if else ! It's nightime everywhere - everything is undefined @@ -1782,6 +1790,14 @@ function COSP_SIMULATOR(cospIN,cospgridIN,cospOUT,start_idx,stop_idx,debug) cospOUT%modis_Optical_Thickness_vs_Cloud_Top_Pressure_Liq(ij+int(modisIN%notSunlit(:))-1, :, :) = R_UNDEF if (associated(cospOUT%modis_Optical_Thickness_vs_Cloud_Top_Pressure_Ice)) & cospOUT%modis_Optical_Thickness_vs_Cloud_Top_Pressure_Ice(ij+int(modisIN%notSunlit(:))-1, :, :) = R_UNDEF + if (associated(cospOUT%modis_LWP_vs_ReffLIQ)) & + cospOUT%modis_LWP_vs_ReffLIQ(ij+int(modisIN%notSunlit(:))-1, :, :) = R_UNDEF + if (associated(cospOUT%modis_IWP_vs_ReffICE)) & + cospOUT%modis_IWP_vs_ReffICE(ij+int(modisIN%notSunlit(:))-1, :, :) = R_UNDEF + if (associated(cospOUT%modis_Optical_Thickness_vs_ReffIce)) & + cospOUT%modis_Optical_Thickness_vs_ReffIce(ij+int(modisIN%notSunlit(:))-1, :, :) = R_UNDEF + if (associated(cospOUT%modis_Optical_Thickness_vs_ReffLiq)) & + cospOUT%modis_Optical_Thickness_vs_ReffLiq(ij+int(modisIN%notSunlit(:))-1, :, :) = R_UNDEF endif ! Free up memory (if necessary) if (allocated(modisRetrievedTau)) deallocate(modisRetrievedTau) diff --git a/src/simulator/cosp_modis_interface.F90 b/src/simulator/cosp_modis_interface.F90 index 02e4dfc3ce..a45776ccac 100644 --- a/src/simulator/cosp_modis_interface.F90 +++ b/src/simulator/cosp_modis_interface.F90 @@ -167,6 +167,7 @@ SUBROUTINE COSP_ASSIGN_modisIN(cospIN,cospgridIN,Npoints,modisIN,CSCAL_SWATH_MAS if (allocated(CSCAL_SWATH_MASK)) then allocate(MODIS_CSCAL_SWATH_MASK(Npoints)) MODIS_CSCAL_SWATH_MASK = (.not. (MODIS_SWATH_MASK .and. CSCAL_SWATH_MASK)) ! Gridcells not seen by both MODIS and CSCAL should be set to zero + if (.not. allocated(MODIS_CSCAL_MASK_INDICES)) allocate(MODIS_CSCAL_MASK_INDICES(count(MODIS_CSCAL_SWATH_MASK))) MODIS_CSCAL_MASK_INDICES = pack((/ (i, i = 1, Npoints ) /),mask = MODIS_CSCAL_SWATH_MASK) end if else