@@ -501,34 +501,47 @@ subroutine modis_column(nPoints,nSubCols,phase, cloud_top_pressure, optical_thic
501501 ! ########################################################################################
502502 ! Compute mean optical thickness.
503503 ! ########################################################################################
504- Optical_Thickness_Total_Mean(1 :nPoints) = sum (optical_thickness, mask = cloudMask, dim = 2 ) / &
505- Cloud_Fraction_Total_Mean(1 :nPoints)
506- Optical_Thickness_Water_Mean(1 :nPoints) = sum (optical_thickness, mask = waterCloudMask, dim = 2 ) / &
507- Cloud_Fraction_Water_Mean(1 :nPoints)
508- Optical_Thickness_Ice_Mean(1 :nPoints) = sum (optical_thickness, mask = iceCloudMask, dim = 2 ) / &
509- Cloud_Fraction_Ice_Mean(1 :nPoints)
510-
511- ! ########################################################################################
512- ! We take the absolute value of optical thickness here to satisfy compilers that complains
513- ! when we evaluate the logarithm of a negative number, even though it's not included in
514- ! the sum.
515- ! ########################################################################################
516- Optical_Thickness_Total_MeanLog10(1 :nPoints) = sum (log10 (abs (optical_thickness)), mask = cloudMask, &
517- dim = 2 ) / Cloud_Fraction_Total_Mean(1 :nPoints)
518- Optical_Thickness_Water_MeanLog10(1 :nPoints) = sum (log10 (abs (optical_thickness)), mask = waterCloudMask,&
519- dim = 2 ) / Cloud_Fraction_Water_Mean(1 :nPoints)
520- Optical_Thickness_Ice_MeanLog10(1 :nPoints) = sum (log10 (abs (optical_thickness)), mask = iceCloudMask,&
521- dim = 2 ) / Cloud_Fraction_Ice_Mean(1 :nPoints)
522- Cloud_Particle_Size_Water_Mean(1 :nPoints) = sum (particle_size, mask = waterCloudMask, dim = 2 ) / &
523- Cloud_Fraction_Water_Mean(1 :nPoints)
524- Cloud_Particle_Size_Ice_Mean(1 :nPoints) = sum (particle_size, mask = iceCloudMask, dim = 2 ) / &
525- Cloud_Fraction_Ice_Mean(1 :nPoints)
526- Cloud_Top_Pressure_Total_Mean(1 :nPoints) = sum (cloud_top_pressure, mask = cloudMask, dim = 2 ) / &
527- max (1 , count (cloudMask, dim = 2 ))
528- Liquid_Water_Path_Mean(1 :nPoints) = LWP_conversion* sum (particle_size* optical_thickness, &
529- mask= waterCloudMask,dim= 2 )/ Cloud_Fraction_Water_Mean(1 :nPoints)
530- Ice_Water_Path_Mean(1 :nPoints) = LWP_conversion * ice_density* sum (particle_size* optical_thickness,&
531- mask= iceCloudMask,dim = 2 ) / Cloud_Fraction_Ice_Mean(1 :nPoints)
504+ where (Cloud_Fraction_Total_Mean(1 :nPoints) > 0 )
505+ Optical_Thickness_Total_Mean(1 :nPoints) = sum (optical_thickness, mask = cloudMask, dim = 2 ) / &
506+ Cloud_Fraction_Total_Mean(1 :nPoints)
507+ Optical_Thickness_Total_MeanLog10(1 :nPoints) = sum (log10 (abs (optical_thickness)), mask = cloudMask, &
508+ dim = 2 ) / Cloud_Fraction_Total_Mean(1 :nPoints)
509+ elsewhere
510+ Optical_Thickness_Total_Mean = 0 .
511+ Optical_Thickness_Total_MeanLog10 = 0 .
512+ endwhere
513+ where (Cloud_Fraction_Water_Mean(1 :nPoints) > 0 )
514+ Optical_Thickness_Water_Mean(1 :nPoints) = sum (optical_thickness, mask = waterCloudMask, dim = 2 ) / &
515+ Cloud_Fraction_Water_Mean(1 :nPoints)
516+ Liquid_Water_Path_Mean(1 :nPoints) = LWP_conversion* sum (particle_size* optical_thickness, &
517+ mask= waterCloudMask,dim= 2 )/ Cloud_Fraction_Water_Mean(1 :nPoints)
518+ Optical_Thickness_Water_MeanLog10(1 :nPoints) = sum (log10 (abs (optical_thickness)), mask = waterCloudMask,&
519+ dim = 2 ) / Cloud_Fraction_Water_Mean(1 :nPoints)
520+ Cloud_Particle_Size_Water_Mean(1 :nPoints) = sum (particle_size, mask = waterCloudMask, dim = 2 ) / &
521+ Cloud_Fraction_Water_Mean(1 :nPoints)
522+ elsewhere
523+ Optical_Thickness_Water_Mean = 0 .
524+ Optical_Thickness_Water_MeanLog10 = 0 .
525+ Cloud_Particle_Size_Water_Mean = 0 .
526+ Liquid_Water_Path_Mean = 0 .
527+ endwhere
528+ where (Cloud_Fraction_Ice_Mean(1 :nPoints) > 0 )
529+ Optical_Thickness_Ice_Mean(1 :nPoints) = sum (optical_thickness, mask = iceCloudMask, dim = 2 ) / &
530+ Cloud_Fraction_Ice_Mean(1 :nPoints)
531+ Ice_Water_Path_Mean(1 :nPoints) = LWP_conversion * ice_density* sum (particle_size* optical_thickness,&
532+ mask= iceCloudMask,dim = 2 ) / Cloud_Fraction_Ice_Mean(1 :nPoints)
533+ Optical_Thickness_Ice_MeanLog10(1 :nPoints) = sum (log10 (abs (optical_thickness)), mask = iceCloudMask,&
534+ dim = 2 ) / Cloud_Fraction_Ice_Mean(1 :nPoints)
535+ Cloud_Particle_Size_Ice_Mean(1 :nPoints) = sum (particle_size, mask = iceCloudMask, dim = 2 ) / &
536+ Cloud_Fraction_Ice_Mean(1 :nPoints)
537+ elsewhere
538+ Optical_Thickness_Ice_Mean = 0 .
539+ Optical_Thickness_Ice_MeanLog10 = 0 .
540+ Cloud_Particle_Size_Ice_Mean = 0 .
541+ Ice_Water_Path_Mean = 0 .
542+ endwhere
543+ Cloud_Top_Pressure_Total_Mean = sum (cloud_top_pressure, mask = cloudMask, dim = 2 ) / &
544+ max (1 , count (cloudMask, dim = 2 ))
532545
533546 ! ########################################################################################
534547 ! Normalize pixel counts to fraction.
@@ -560,10 +573,7 @@ subroutine modis_column(nPoints,nSubCols,phase, cloud_top_pressure, optical_thic
560573 Cloud_Particle_Size_Ice_Mean = R_UNDEF
561574 Ice_Water_Path_Mean = R_UNDEF
562575 endwhere
563- where (Cloud_Fraction_High_Mean == 0 ) Cloud_Fraction_High_Mean = R_UNDEF
564- where (Cloud_Fraction_Mid_Mean == 0 ) Cloud_Fraction_Mid_Mean = R_UNDEF
565- where (Cloud_Fraction_Low_Mean == 0 ) Cloud_Fraction_Low_Mean = R_UNDEF
566-
576+
567577 ! ########################################################################################
568578 ! Joint histogram
569579 ! ########################################################################################
0 commit comments