Changeset 5095 for LMDZ6/branches/Amaury_dev/libf/phylmd/cosp2/cosp.F90
- Timestamp:
- Jul 22, 2024, 9:46:57 AM (4 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev/libf/phylmd/cosp2/cosp.F90
r5086 r5095 402 402 403 403 ! Set flag to deallocate rttov types (only done on final call to simulator) 404 if (size(cospOUT%isccp_meantb) == stop_idx) lrttov_cleanUp = .true.404 if (size(cospOUT%isccp_meantb) .eq. stop_idx) lrttov_cleanUp = .true. 405 405 406 406 ! ISCCP column … … 563 563 modisIN%w0 => cospIN%ss_alb 564 564 modisIN%Nsunlit = count(cospgridIN%sunlit > 0) 565 if (modisIN%Nsunlit >0) then565 if (modisIN%Nsunlit .gt. 0) then 566 566 allocate(modisIN%sunlit(modisIN%Nsunlit),modisIN%pres(modisIN%Nsunlit,cospIN%Nlevels+1)) 567 567 modisIN%sunlit = pack((/ (i, i = 1, Npoints ) /),mask = cospgridIN%sunlit > 0) 568 568 modisIN%pres = cospgridIN%phalf(int(modisIN%sunlit(:)),:) 569 569 endif 570 if (count(cospgridIN%sunlit <= 0) >0) then570 if (count(cospgridIN%sunlit <= 0) .gt. 0) then 571 571 allocate(modisIN%notSunlit(count(cospgridIN%sunlit <= 0))) 572 572 modisIN%notSunlit = pack((/ (i, i = 1, Npoints ) /),mask = .not. cospgridIN%sunlit > 0) … … 731 731 modisRetrievedCloudTopPressure(i,:), & 732 732 modisRetrievedTau(i,:),modisRetrievedSize(i,:)) 733 END DO733 end do 734 734 endif 735 735 endif … … 1450 1450 ! is turned off. 1451 1451 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1452 if (any(cospgridIN%sunlit <0)) then1452 if (any(cospgridIN%sunlit .lt. 0)) then 1453 1453 nError=nError+1 1454 1454 errorMessage(nError) = 'ERROR: COSP input variable: cospgridIN%sunlit contains values out of range (0 or 1)' … … 1513 1513 cospOUT%modis_Optical_Thickness_vs_ReffLIQ(:,:,:) = R_UNDEF 1514 1514 endif 1515 if (any(cospgridIN%at < 0)) then1515 if (any(cospgridIN%at .lt. 0)) then 1516 1516 nError=nError+1 1517 1517 errorMessage(nError) = 'ERROR: COSP input variable: cospgridIN%at contains values out of range (at<0), expected units (K)' … … 1549 1549 if (associated(cospOUT%radar_lidar_tcc)) cospOUT%radar_lidar_tcc(:) = R_UNDEF 1550 1550 endif 1551 if (any(cospgridIN%pfull <0)) then1551 if (any(cospgridIN%pfull .lt. 0)) then 1552 1552 nError=nError+1 1553 1553 errorMessage(nError) = 'ERROR: COSP input variable: cospgridIN%pfull contains values out of range' … … 1566 1566 if (associated(cospOUT%isccp_fq)) cospOUT%isccp_fq(:,:,:) = R_UNDEF 1567 1567 endif 1568 if (any(cospgridIN%phalf <0)) then1568 if (any(cospgridIN%phalf .lt. 0)) then 1569 1569 nError=nError+1 1570 1570 errorMessage(nError) = 'ERROR: COSP input variable: cospgridIN%phalf contains values out of range' … … 1632 1632 if (associated(cospOUT%calipso_lidarcldtmp)) cospOUT%calipso_lidarcldtmp(:,:,:) = R_UNDEF 1633 1633 endif 1634 if (any(cospgridIN%qv <0)) then1634 if (any(cospgridIN%qv .lt. 0)) then 1635 1635 nError=nError+1 1636 1636 errorMessage(nError) = 'ERROR: COSP input variable: cospgridIN%qv contains values out of range' … … 1649 1649 if (associated(cospOUT%isccp_fq)) cospOUT%isccp_fq(:,:,:) = R_UNDEF 1650 1650 endif 1651 if (any(cospgridIN%hgt_matrix <-300)) then1651 if (any(cospgridIN%hgt_matrix .lt. -300)) then 1652 1652 nError=nError+1 1653 1653 errorMessage(nError) = 'ERROR: COSP input variable: cospgridIN%hgt_matrix contains values out of range' … … 1674 1674 if (associated(cospOUT%radar_lidar_tcc)) cospOUT%radar_lidar_tcc(:) = R_UNDEF 1675 1675 endif 1676 if (any(cospgridIN%hgt_matrix_half <-300)) then1676 if (any(cospgridIN%hgt_matrix_half .lt. -300)) then 1677 1677 nError=nError+1 1678 1678 errorMessage(nError) = 'ERROR: COSP input variable: cospgridIN%hgt_matrix_half contains values out of range' … … 1693 1693 if (associated(cospOUT%radar_lidar_tcc)) cospOUT%radar_lidar_tcc(:) = R_UNDEF 1694 1694 endif 1695 if (any(cospgridIN%land <0)) then1695 if (any(cospgridIN%land .lt. 0)) then 1696 1696 nError=nError+1 1697 1697 errorMessage(nError) = 'ERROR: COSP input variable: cospgridIN%land contains values out of range' … … 1708 1708 if (associated(cospOUT%parasolGrid_refl)) cospOUT%parasolGrid_refl(:,:) = R_UNDEF 1709 1709 endif 1710 if (any(cospgridIN%skt <0)) then1710 if (any(cospgridIN%skt .lt. 0)) then 1711 1711 nError=nError+1 1712 1712 errorMessage(nError) = 'ERROR: COSP input variable: cospgridIN%skt contains values out of range' … … 1727 1727 1728 1728 ! RTTOV Inputs 1729 if (cospgridIN%zenang < -90. .OR. cospgridIN%zenang >90) then1729 if (cospgridIN%zenang .lt. -90. .OR. cospgridIN%zenang .gt. 90) then 1730 1730 nError=nError+1 1731 1731 errorMessage(nError) = 'ERROR: COSP input variable: cospgridIN%zenang contains values out of range' … … 1733 1733 if (associated(cospOUT%rttov_tbs)) cospOUT%rttov_tbs(:,:) = R_UNDEF 1734 1734 endif 1735 if (cospgridIN%co2 <0) then1735 if (cospgridIN%co2 .lt. 0) then 1736 1736 nError=nError+1 1737 1737 errorMessage(nError) = 'ERROR: COSP input variable: cospgridIN%co2 contains values out of range' … … 1739 1739 if (associated(cospOUT%rttov_tbs)) cospOUT%rttov_tbs(:,:) = R_UNDEF 1740 1740 endif 1741 if (cospgridIN%ch4 <0) then1741 if (cospgridIN%ch4 .lt. 0) then 1742 1742 nError=nError+1 1743 1743 errorMessage(nError) = 'ERROR: COSP input variable: cospgridIN%ch4 contains values out of range' … … 1745 1745 if (associated(cospOUT%rttov_tbs)) cospOUT%rttov_tbs(:,:) = R_UNDEF 1746 1746 endif 1747 if (cospgridIN%n2o <0) then1747 if (cospgridIN%n2o .lt. 0) then 1748 1748 nError=nError+1 1749 1749 errorMessage(nError) = 'ERROR: COSP input variable: cospgridIN%n2o contains values out of range' … … 1751 1751 if (associated(cospOUT%rttov_tbs)) cospOUT%rttov_tbs(:,:) = R_UNDEF 1752 1752 endif 1753 if (cospgridIN%co <0) then1753 if (cospgridIN%co.lt. 0) then 1754 1754 nError=nError+1 1755 1755 errorMessage(nError) = 'ERROR: COSP input variable: cospgridIN%co contains values out of range' … … 1757 1757 if (associated(cospOUT%rttov_tbs)) cospOUT%rttov_tbs(:,:) = R_UNDEF 1758 1758 endif 1759 if (any(cospgridIN%o3 <0)) then1759 if (any(cospgridIN%o3 .lt. 0)) then 1760 1760 nError=nError+1 1761 1761 errorMessage(nError) = 'ERROR: COSP input variable: cospgridIN%o3 contains values out of range' … … 1763 1763 if (associated(cospOUT%rttov_tbs)) cospOUT%rttov_tbs(:,:) = R_UNDEF 1764 1764 endif 1765 if (any(cospgridIN%emis_sfc < 0. .OR. cospgridIN%emis_sfc >1)) then1765 if (any(cospgridIN%emis_sfc .lt. 0. .OR. cospgridIN%emis_sfc .gt. 1)) then 1766 1766 nError=nError+1 1767 1767 errorMessage(nError) = 'ERROR: COSP input variable: cospgridIN%emis_sfc contains values out of range' … … 1769 1769 if (associated(cospOUT%rttov_tbs)) cospOUT%rttov_tbs(:,:) = R_UNDEF 1770 1770 endif 1771 if (any(cospgridIN%u_sfc < -100. .OR. cospgridIN%u_sfc >100.)) then1771 if (any(cospgridIN%u_sfc .lt. -100. .OR. cospgridIN%u_sfc .gt. 100.)) then 1772 1772 nError=nError+1 1773 1773 errorMessage(nError) = 'ERROR: COSP input variable: cospIN%u_sfc contains values out of range' … … 1775 1775 Lrttov_subcolumn = .false. 1776 1776 endif 1777 if (any(cospgridIN%v_sfc < -100. .OR. cospgridIN%v_sfc >100.)) then1777 if (any(cospgridIN%v_sfc .lt. -100. .OR. cospgridIN%v_sfc .gt. 100.)) then 1778 1778 nError=nError+1 1779 1779 errorMessage(nError) = 'ERROR: COSP input variable: cospIN%v_sfc contains values out of range' … … 1781 1781 if (associated(cospOUT%rttov_tbs)) cospOUT%rttov_tbs(:,:) = R_UNDEF 1782 1782 endif 1783 if (any(cospgridIN%lat < -90 .OR. cospgridIN%lat >90)) then1783 if (any(cospgridIN%lat .lt. -90 .OR. cospgridIN%lat .gt. 90)) then 1784 1784 nError=nError+1 1785 1785 errorMessage(nError) = 'ERROR: COSP input variable: cospIN%lat contains values out of range' … … 1789 1789 1790 1790 ! COSP_INPUTS 1791 if (cospIN%emsfc_lw < 0. .OR. cospIN%emsfc_lw >1.) then1791 if (cospIN%emsfc_lw .lt. 0. .OR. cospIN%emsfc_lw .gt. 1.) then 1792 1792 nError=nError+1 1793 1793 errorMessage(nError) = 'ERROR: COSP input variable: cospIN%emsfc_lw contains values out of range' … … 1805 1805 1806 1806 endif 1807 if (any(cospIN%tau_067 <0)) then1807 if (any(cospIN%tau_067 .lt. 0)) then 1808 1808 nError=nError+1 1809 1809 errorMessage(nError) = 'ERROR: COSP input variable: cospIN%tau_067 contains values out of range' … … 1870 1870 1871 1871 endif 1872 if (any(cospIN%emiss_11 < 0. .OR. cospIN%emiss_11 >1)) then1872 if (any(cospIN%emiss_11 .lt. 0. .OR. cospIN%emiss_11 .gt. 1)) then 1873 1873 nError=nError+1 1874 1874 errorMessage(nError) = 'ERROR: COSP input variable: cospIN%emiss_11 contains values out of range' … … 1886 1886 1887 1887 endif 1888 if (any(cospIN%asym < -1. .OR. cospIN%asym >1)) then1888 if (any(cospIN%asym .lt. -1. .OR. cospIN%asym .gt. 1)) then 1889 1889 nError=nError+1 1890 1890 errorMessage(nError) = 'ERROR: COSP input variable: cospIN%asym contains values out of range' … … 1932 1932 cospOUT%modis_Optical_Thickness_vs_ReffLIQ(:,:,:) = R_UNDEF 1933 1933 endif 1934 if (any(cospIN%ss_alb < 0 .OR. cospIN%ss_alb >1)) then1934 if (any(cospIN%ss_alb .lt. 0 .OR. cospIN%ss_alb .gt. 1)) then 1935 1935 nError=nError+1 1936 1936 errorMessage(nError) = 'ERROR: COSP input variable: cospIN%ss_alb contains values out of range' … … 1978 1978 cospOUT%modis_Optical_Thickness_vs_ReffLIQ(:,:,:) = R_UNDEF 1979 1979 endif 1980 if (any(cospIN%betatot <0)) then1980 if (any(cospIN%betatot .lt. 0)) then 1981 1981 nError=nError+1 1982 1982 errorMessage(nError) = 'ERROR: COSP input variable: cospIN%betatot contains values out of range' … … 1991 1991 if (associated(cospOUT%calipso_srbval)) cospOUT%calipso_srbval(:) = R_UNDEF 1992 1992 endif 1993 if (any(cospIN%betatot_liq <0)) then1993 if (any(cospIN%betatot_liq .lt. 0)) then 1994 1994 nError=nError+1 1995 1995 errorMessage(nError) = ('ERROR: COSP input variable: cospIN%betatot_liq contains values out of range') … … 2004 2004 if (associated(cospOUT%calipso_srbval)) cospOUT%calipso_srbval(:) = R_UNDEF 2005 2005 endif 2006 if (any(cospIN%betatot_ice <0)) then2006 if (any(cospIN%betatot_ice .lt. 0)) then 2007 2007 nError=nError+1 2008 2008 errorMessage(nError) = 'ERROR: COSP input variable: cospIN%betatot_ice contains values out of range' … … 2017 2017 if (associated(cospOUT%calipso_srbval)) cospOUT%calipso_srbval(:) = R_UNDEF 2018 2018 endif 2019 if (any(cospIN%beta_mol <0)) then2019 if (any(cospIN%beta_mol .lt. 0)) then 2020 2020 nError=nError+1 2021 2021 errorMessage(nError) = 'ERROR: COSP input variable: cospIN%beta_mol contains values out of range' … … 2036 2036 if (associated(cospOUT%radar_lidar_tcc)) cospOUT%radar_lidar_tcc(:) = R_UNDEF 2037 2037 endif 2038 if (any(cospIN%tautot <0)) then2038 if (any(cospIN%tautot .lt. 0)) then 2039 2039 nError=nError+1 2040 2040 errorMessage(nError) = 'ERROR: COSP input variable: cospIN%tautot contains values out of range' … … 2049 2049 if (associated(cospOUT%calipso_srbval)) cospOUT%calipso_srbval(:) = R_UNDEF 2050 2050 endif 2051 if (any(cospIN%tautot_liq <0)) then2051 if (any(cospIN%tautot_liq .lt. 0)) then 2052 2052 nError=nError+1 2053 2053 errorMessage(nError) = ('ERROR: COSP input variable: cospIN%tautot_liq contains values out of range') … … 2062 2062 if (associated(cospOUT%calipso_srbval)) cospOUT%calipso_srbval(:) = R_UNDEF 2063 2063 endif 2064 if (any(cospIN%tautot_ice <0)) then2064 if (any(cospIN%tautot_ice .lt. 0)) then 2065 2065 nError=nError+1 2066 2066 errorMessage(nError) = 'ERROR: COSP input variable: cospIN%tautot_ice contains values out of range' … … 2075 2075 if (associated(cospOUT%calipso_srbval)) cospOUT%calipso_srbval(:) = R_UNDEF 2076 2076 endif 2077 if (any(cospIN%tau_mol <0)) then2077 if (any(cospIN%tau_mol .lt. 0)) then 2078 2078 nError=nError+1 2079 2079 errorMessage(nError) = 'ERROR: COSP input variable: cospIN%tau_mol contains values out of range' … … 2088 2088 if (associated(cospOUT%calipso_srbval)) cospOUT%calipso_srbval(:) = R_UNDEF 2089 2089 endif 2090 if (any(cospIN%tautot_S_liq <0)) then2090 if (any(cospIN%tautot_S_liq .lt. 0)) then 2091 2091 nError=nError+1 2092 2092 errorMessage(nError) = 'ERROR: COSP input variable: cospIN%tautot_S_liq contains values out of range' … … 2096 2096 if (associated(cospOUT%parasolGrid_refl)) cospOUT%parasolGrid_refl(:,:) = R_UNDEF 2097 2097 endif 2098 if (any(cospIN%tautot_S_ice <0)) then2098 if (any(cospIN%tautot_S_ice .lt. 0)) then 2099 2099 nError=nError+1 2100 2100 errorMessage(nError) = 'ERROR: COSP input variable: cospIN%tautot_S_ice contains values out of range' … … 2104 2104 if (associated(cospOUT%parasolGrid_refl)) cospOUT%parasolGrid_refl(:,:) = R_UNDEF 2105 2105 endif 2106 if (any(cospIN%z_vol_cloudsat <0)) then2106 if (any(cospIN%z_vol_cloudsat .lt. 0)) then 2107 2107 nError=nError+1 2108 2108 errorMessage(nError) = 'ERROR: COSP input variable: cospIN%z_vol_cloudsat contains values out of range' … … 2116 2116 if (associated(cospOUT%radar_lidar_tcc)) cospOUT%radar_lidar_tcc(:) = R_UNDEF 2117 2117 endif 2118 if (any(cospIN%kr_vol_cloudsat <0)) then2118 if (any(cospIN%kr_vol_cloudsat .lt. 0)) then 2119 2119 nError=nError+1 2120 2120 errorMessage(nError) = 'ERROR: COSP input variable: cospIN%kr_vol_cloudsat contains values out of range' … … 2128 2128 if (associated(cospOUT%radar_lidar_tcc)) cospOUT%radar_lidar_tcc(:) = R_UNDEF 2129 2129 endif 2130 if (any(cospIN%g_vol_cloudsat <0)) then2130 if (any(cospIN%g_vol_cloudsat .lt. 0)) then 2131 2131 nError=nError+1 2132 2132 errorMessage(nError) = 'ERROR: COSP input variable: cospIN%g_vol_cloudsat contains values out of range' … … 2145 2145 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2146 2146 ! ISCCP 2147 if (size(cospIN%frac_out,1) /=cospIN%Npoints .OR. &2148 size(cospIN%tau_067,1) /=cospIN%Npoints .OR. &2149 size(cospIN%emiss_11,1) /=cospIN%Npoints .OR. &2150 size(cospgridIN%skt) /=cospIN%Npoints .OR. &2151 size(cospgridIN%qv,1) /=cospIN%Npoints .OR. &2152 size(cospgridIN%at,1) /=cospIN%Npoints .OR. &2153 size(cospgridIN%phalf,1) /=cospIN%Npoints .OR. &2154 size(cospgridIN%sunlit) /=cospIN%Npoints .OR. &2155 size(cospgridIN%pfull,1) /=cospIN%Npoints) then2147 if (size(cospIN%frac_out,1) .ne. cospIN%Npoints .OR. & 2148 size(cospIN%tau_067,1) .ne. cospIN%Npoints .OR. & 2149 size(cospIN%emiss_11,1) .ne. cospIN%Npoints .OR. & 2150 size(cospgridIN%skt) .ne. cospIN%Npoints .OR. & 2151 size(cospgridIN%qv,1) .ne. cospIN%Npoints .OR. & 2152 size(cospgridIN%at,1) .ne. cospIN%Npoints .OR. & 2153 size(cospgridIN%phalf,1) .ne. cospIN%Npoints .OR. & 2154 size(cospgridIN%sunlit) .ne. cospIN%Npoints .OR. & 2155 size(cospgridIN%pfull,1) .ne. cospIN%Npoints) then 2156 2156 Lisccp_subcolumn = .false. 2157 2157 Lisccp_column = .false. … … 2159 2159 errorMessage(nError) = 'ERROR(isccp_simulator): The number of points in the input fields are inconsistent' 2160 2160 endif 2161 if (size(cospIN%frac_out,2) /=cospIN%Ncolumns .OR. &2162 size(cospIN%tau_067,2) /=cospIN%Ncolumns .OR. &2163 size(cospIN%emiss_11,2) /=cospIN%Ncolumns) then2161 if (size(cospIN%frac_out,2) .ne. cospIN%Ncolumns .OR. & 2162 size(cospIN%tau_067,2) .ne. cospIN%Ncolumns .OR. & 2163 size(cospIN%emiss_11,2) .ne. cospIN%Ncolumns) then 2164 2164 Lisccp_subcolumn = .false. 2165 2165 Lisccp_column = .false. … … 2167 2167 errorMessage(nError) = 'ERROR(isccp_simulator): The number of sub-columns in the input fields are inconsistent' 2168 2168 endif 2169 if (size(cospIN%frac_out,3) /=cospIN%Nlevels .OR. &2170 size(cospIN%tau_067,3) /=cospIN%Nlevels .OR. &2171 size(cospIN%emiss_11,3) /=cospIN%Nlevels .OR. &2172 size(cospgridIN%qv,2) /=cospIN%Nlevels .OR. &2173 size(cospgridIN%at,2) /=cospIN%Nlevels .OR. &2174 size(cospgridIN%pfull,2) /= cospIN%Nlevels .OR. &2175 size(cospgridIN%phalf,2) /=cospIN%Nlevels+1) then2169 if (size(cospIN%frac_out,3) .ne. cospIN%Nlevels .OR. & 2170 size(cospIN%tau_067,3) .ne. cospIN%Nlevels .OR. & 2171 size(cospIN%emiss_11,3) .ne. cospIN%Nlevels .OR. & 2172 size(cospgridIN%qv,2) .ne. cospIN%Nlevels .OR. & 2173 size(cospgridIN%at,2) .ne. cospIN%Nlevels .OR. & 2174 size(cospgridIN%pfull,2) .ne. cospIN%Nlevels .OR. & 2175 size(cospgridIN%phalf,2) .ne. cospIN%Nlevels+1) then 2176 2176 Lisccp_subcolumn = .false. 2177 2177 Lisccp_column = .false. … … 2181 2181 2182 2182 ! MISR 2183 if (size(cospIN%tau_067,1) /=cospIN%Npoints .OR. &2184 size(cospgridIN%sunlit) /= cospIN%Npoints .OR. &2185 size(cospgridIN%hgt_matrix,1) /=cospIN%Npoints .OR. &2186 size(cospgridIN%at,1) /=cospIN%Npoints) then2183 if (size(cospIN%tau_067,1) .ne. cospIN%Npoints .OR. & 2184 size(cospgridIN%sunlit) .ne. cospIN%Npoints .OR. & 2185 size(cospgridIN%hgt_matrix,1) .ne. cospIN%Npoints .OR. & 2186 size(cospgridIN%at,1) .ne. cospIN%Npoints) then 2187 2187 Lmisr_subcolumn = .false. 2188 2188 Lmisr_column = .false. … … 2190 2190 errorMessage(nError) = 'ERROR(misr_simulator): The number of points in the input fields are inconsistent' 2191 2191 endif 2192 if (size(cospIN%tau_067,2) /=cospIN%Ncolumns) then2192 if (size(cospIN%tau_067,2) .ne. cospIN%Ncolumns) then 2193 2193 Lmisr_subcolumn = .false. 2194 2194 Lmisr_column = .false. … … 2196 2196 errorMessage(nError) = 'ERROR(misr_simulator): The number of sub-columns in the input fields are inconsistent' 2197 2197 endif 2198 if (size(cospIN%tau_067,3) /=cospIN%Nlevels .OR. &2199 size(cospgridIN%hgt_matrix,2) /=cospIN%Nlevels .OR. &2200 size(cospgridIN%at,2) /=cospIN%Nlevels) then2198 if (size(cospIN%tau_067,3) .ne. cospIN%Nlevels .OR. & 2199 size(cospgridIN%hgt_matrix,2) .ne. cospIN%Nlevels .OR. & 2200 size(cospgridIN%at,2) .ne. cospIN%Nlevels) then 2201 2201 Lmisr_subcolumn = .false. 2202 2202 Lmisr_column = .false. … … 2206 2206 2207 2207 ! MODIS 2208 if (size(cospIN%fracLiq,1) /=cospIN%Npoints .OR. &2209 size(cospIN%tau_067,1) /=cospIN%Npoints .OR. &2210 size(cospIN%asym,1) /=cospIN%Npoints .OR. &2211 size(cospIN%ss_alb,1) /=cospIN%Npoints) then2208 if (size(cospIN%fracLiq,1) .ne. cospIN%Npoints .OR. & 2209 size(cospIN%tau_067,1) .ne. cospIN%Npoints .OR. & 2210 size(cospIN%asym,1) .ne. cospIN%Npoints .OR. & 2211 size(cospIN%ss_alb,1) .ne. cospIN%Npoints) then 2212 2212 Lmodis_subcolumn = .false. 2213 2213 Lmodis_column = .false. … … 2215 2215 errorMessage(nError) = 'ERROR(modis_simulator): The number of points in the input fields are inconsistent' 2216 2216 endif 2217 if (size(cospIN%fracLiq,2) /=cospIN%Ncolumns .OR. &2218 size(cospIN%tau_067,2) /=cospIN%Ncolumns .OR. &2219 size(cospIN%asym,2) /=cospIN%Ncolumns .OR. &2220 size(cospIN%ss_alb,2) /=cospIN%Ncolumns) then2217 if (size(cospIN%fracLiq,2) .ne. cospIN%Ncolumns .OR. & 2218 size(cospIN%tau_067,2) .ne. cospIN%Ncolumns .OR. & 2219 size(cospIN%asym,2) .ne. cospIN%Ncolumns .OR. & 2220 size(cospIN%ss_alb,2) .ne. cospIN%Ncolumns) then 2221 2221 Lmodis_subcolumn = .false. 2222 2222 Lmodis_column = .false. … … 2224 2224 errorMessage(nError) = 'ERROR(modis_simulator): The number of sub-columns in the input fields are inconsistent' 2225 2225 endif 2226 if (size(cospIN%fracLiq,3) /=cospIN%Nlevels .OR. &2227 size(cospIN%tau_067,3) /=cospIN%Nlevels .OR. &2228 size(cospIN%asym,3) /=cospIN%Nlevels .OR. &2229 size(cospIN%ss_alb,3) /=cospIN%Nlevels) then2226 if (size(cospIN%fracLiq,3) .ne. cospIN%Nlevels .OR. & 2227 size(cospIN%tau_067,3) .ne. cospIN%Nlevels .OR. & 2228 size(cospIN%asym,3) .ne. cospIN%Nlevels .OR. & 2229 size(cospIN%ss_alb,3) .ne. cospIN%Nlevels) then 2230 2230 Lmodis_subcolumn = .false. 2231 2231 Lmodis_column = .false. … … 2235 2235 2236 2236 ! CLOUDSAT 2237 if (size(cospIN%z_vol_cloudsat,1) /=cospIN%Npoints .OR. &2238 size(cospIN%kr_vol_cloudsat,1) /=cospIN%Npoints .OR. &2239 size(cospIN%g_vol_cloudsat,1) /=cospIN%Npoints .OR. &2240 size(cospgridIN%hgt_matrix,1) /=cospIN%Npoints) then2237 if (size(cospIN%z_vol_cloudsat,1) .ne. cospIN%Npoints .OR. & 2238 size(cospIN%kr_vol_cloudsat,1) .ne. cospIN%Npoints .OR. & 2239 size(cospIN%g_vol_cloudsat,1) .ne. cospIN%Npoints .OR. & 2240 size(cospgridIN%hgt_matrix,1) .ne. cospIN%Npoints) then 2241 2241 Lcloudsat_subcolumn = .false. 2242 2242 Lcloudsat_column = .false. … … 2244 2244 errorMessage(nError) = 'ERROR(cloudsat_simulator): The number of points in the input fields are inconsistent' 2245 2245 endif 2246 if (size(cospIN%z_vol_cloudsat,2) /=cospIN%Ncolumns .OR. &2247 size(cospIN%kr_vol_cloudsat,2) /=cospIN%Ncolumns .OR. &2248 size(cospIN%g_vol_cloudsat,2) /=cospIN%Ncolumns) then2246 if (size(cospIN%z_vol_cloudsat,2) .ne. cospIN%Ncolumns .OR. & 2247 size(cospIN%kr_vol_cloudsat,2) .ne. cospIN%Ncolumns .OR. & 2248 size(cospIN%g_vol_cloudsat,2) .ne. cospIN%Ncolumns) then 2249 2249 Lcloudsat_subcolumn = .false. 2250 2250 Lcloudsat_column = .false. … … 2252 2252 errorMessage(nError) = 'ERROR(cloudsat_simulator): The number of sub-columns in the input fields are inconsistent' 2253 2253 endif 2254 if (size(cospIN%z_vol_cloudsat,3) /=cospIN%Nlevels .OR. &2255 size(cospIN%kr_vol_cloudsat,3) /=cospIN%Nlevels .OR. &2256 size(cospIN%g_vol_cloudsat,3) /=cospIN%Nlevels .OR. &2257 size(cospgridIN%hgt_matrix,2) /=cospIN%Nlevels) then2254 if (size(cospIN%z_vol_cloudsat,3) .ne. cospIN%Nlevels .OR. & 2255 size(cospIN%kr_vol_cloudsat,3) .ne. cospIN%Nlevels .OR. & 2256 size(cospIN%g_vol_cloudsat,3) .ne. cospIN%Nlevels .OR. & 2257 size(cospgridIN%hgt_matrix,2) .ne. cospIN%Nlevels) then 2258 2258 Lcloudsat_subcolumn = .false. 2259 2259 Lcloudsat_column = .false. … … 2263 2263 2264 2264 ! CALIPSO 2265 if (size(cospIN%beta_mol,1) /=cospIN%Npoints .OR. &2266 size(cospIN%betatot,1) /=cospIN%Npoints .OR. &2267 size(cospIN%betatot_liq,1) /=cospIN%Npoints .OR. &2268 size(cospIN%betatot_ice,1) /=cospIN%Npoints .OR. &2269 size(cospIN%tau_mol,1) /=cospIN%Npoints .OR. &2270 size(cospIN%tautot,1) /=cospIN%Npoints .OR. &2271 size(cospIN%tautot_liq,1) /=cospIN%Npoints .OR. &2272 size(cospIN%tautot_ice,1) /=cospIN%Npoints) then2265 if (size(cospIN%beta_mol,1) .ne. cospIN%Npoints .OR. & 2266 size(cospIN%betatot,1) .ne. cospIN%Npoints .OR. & 2267 size(cospIN%betatot_liq,1) .ne. cospIN%Npoints .OR. & 2268 size(cospIN%betatot_ice,1) .ne. cospIN%Npoints .OR. & 2269 size(cospIN%tau_mol,1) .ne. cospIN%Npoints .OR. & 2270 size(cospIN%tautot,1) .ne. cospIN%Npoints .OR. & 2271 size(cospIN%tautot_liq,1) .ne. cospIN%Npoints .OR. & 2272 size(cospIN%tautot_ice,1) .ne. cospIN%Npoints) then 2273 2273 Lcalipso_subcolumn = .false. 2274 2274 Lcalipso_column = .false. … … 2276 2276 errorMessage(nError) = 'ERROR(calipso_simulator): The number of points in the input fields are inconsistent' 2277 2277 endif 2278 if (size(cospIN%betatot,2) /=cospIN%Ncolumns .OR. &2279 size(cospIN%betatot_liq,2) /=cospIN%Ncolumns .OR. &2280 size(cospIN%betatot_ice,2) /=cospIN%Ncolumns .OR. &2281 size(cospIN%tautot,2) /=cospIN%Ncolumns .OR. &2282 size(cospIN%tautot_liq,2) /=cospIN%Ncolumns .OR. &2283 size(cospIN%tautot_ice,2) /=cospIN%Ncolumns) then2278 if (size(cospIN%betatot,2) .ne. cospIN%Ncolumns .OR. & 2279 size(cospIN%betatot_liq,2) .ne. cospIN%Ncolumns .OR. & 2280 size(cospIN%betatot_ice,2) .ne. cospIN%Ncolumns .OR. & 2281 size(cospIN%tautot,2) .ne. cospIN%Ncolumns .OR. & 2282 size(cospIN%tautot_liq,2) .ne. cospIN%Ncolumns .OR. & 2283 size(cospIN%tautot_ice,2) .ne. cospIN%Ncolumns) then 2284 2284 Lcalipso_subcolumn = .false. 2285 2285 Lcalipso_column = .false. … … 2287 2287 errorMessage(nError) = 'ERROR(calipso_simulator): The number of sub-columns in the input fields are inconsistent' 2288 2288 endif 2289 if (size(cospIN%beta_mol,2) /=cospIN%Nlevels .OR. &2290 size(cospIN%betatot,3) /=cospIN%Nlevels .OR. &2291 size(cospIN%betatot_liq,3) /=cospIN%Nlevels .OR. &2292 size(cospIN%betatot_ice,3) /=cospIN%Nlevels .OR. &2293 size(cospIN%tau_mol,2) /=cospIN%Nlevels .OR. &2294 size(cospIN%tautot,3) /=cospIN%Nlevels .OR. &2295 size(cospIN%tautot_liq,3) /=cospIN%Nlevels .OR. &2296 size(cospIN%tautot_ice,3) /=cospIN%Nlevels) then2289 if (size(cospIN%beta_mol,2) .ne. cospIN%Nlevels .OR. & 2290 size(cospIN%betatot,3) .ne. cospIN%Nlevels .OR. & 2291 size(cospIN%betatot_liq,3) .ne. cospIN%Nlevels .OR. & 2292 size(cospIN%betatot_ice,3) .ne. cospIN%Nlevels .OR. & 2293 size(cospIN%tau_mol,2) .ne. cospIN%Nlevels .OR. & 2294 size(cospIN%tautot,3) .ne. cospIN%Nlevels .OR. & 2295 size(cospIN%tautot_liq,3) .ne. cospIN%Nlevels .OR. & 2296 size(cospIN%tautot_ice,3) .ne. cospIN%Nlevels) then 2297 2297 Lcalipso_subcolumn = .false. 2298 2298 Lcalipso_column = .false. … … 2302 2302 2303 2303 ! PARASOL 2304 if (size(cospIN%tautot_S_liq,1) /=cospIN%Npoints .OR. &2305 size(cospIN%tautot_S_ice,1) /=cospIN%Npoints) then2304 if (size(cospIN%tautot_S_liq,1) .ne. cospIN%Npoints .OR. & 2305 size(cospIN%tautot_S_ice,1) .ne. cospIN%Npoints) then 2306 2306 Lparasol_subcolumn = .false. 2307 2307 Lparasol_column = .false. … … 2309 2309 errorMessage(nError) = 'ERROR(parasol_simulator): The number of points in the input fields are inconsistent' 2310 2310 endif 2311 if (size(cospIN%tautot_S_liq,2) /=cospIN%Ncolumns .OR. &2312 size(cospIN%tautot_S_ice,2) /=cospIN%Ncolumns) then2311 if (size(cospIN%tautot_S_liq,2) .ne. cospIN%Ncolumns .OR. & 2312 size(cospIN%tautot_S_ice,2) .ne. cospIN%Ncolumns) then 2313 2313 Lparasol_subcolumn = .false. 2314 2314 Lparasol_column = .false. … … 2318 2318 2319 2319 ! RTTOV 2320 if (size(cospgridIN%pfull,1) /=cospIN%Npoints .OR. &2321 size(cospgridIN%at,1) /=cospIN%Npoints .OR. &2322 size(cospgridIN%qv,1) /=cospIN%Npoints .OR. &2323 size(cospgridIN%hgt_matrix_half,1) /=cospIN%Npoints .OR. &2324 size(cospgridIN%u_sfc) /=cospIN%Npoints .OR. &2325 size(cospgridIN%v_sfc) /=cospIN%Npoints .OR. &2326 size(cospgridIN%skt) /=cospIN%Npoints .OR. &2327 size(cospgridIN%phalf,1) /=cospIN%Npoints .OR. &2328 size(cospgridIN%qv,1) /=cospIN%Npoints .OR. &2329 size(cospgridIN%land) /=cospIN%Npoints .OR. &2330 size(cospgridIN%lat) /=cospIN%Npoints) then2320 if (size(cospgridIN%pfull,1) .ne. cospIN%Npoints .OR. & 2321 size(cospgridIN%at,1) .ne. cospIN%Npoints .OR. & 2322 size(cospgridIN%qv,1) .ne. cospIN%Npoints .OR. & 2323 size(cospgridIN%hgt_matrix_half,1) .ne. cospIN%Npoints .OR. & 2324 size(cospgridIN%u_sfc) .ne. cospIN%Npoints .OR. & 2325 size(cospgridIN%v_sfc) .ne. cospIN%Npoints .OR. & 2326 size(cospgridIN%skt) .ne. cospIN%Npoints .OR. & 2327 size(cospgridIN%phalf,1) .ne. cospIN%Npoints .OR. & 2328 size(cospgridIN%qv,1) .ne. cospIN%Npoints .OR. & 2329 size(cospgridIN%land) .ne. cospIN%Npoints .OR. & 2330 size(cospgridIN%lat) .ne. cospIN%Npoints) then 2331 2331 Lrttov_subcolumn = .false. 2332 2332 Lrttov_column = .false. … … 2334 2334 errorMessage(nError) = 'ERROR(rttov_simulator): The number of points in the input fields are inconsistent' 2335 2335 endif 2336 if (size(cospgridIN%pfull,2) /=cospIN%Nlevels .OR. &2337 size(cospgridIN%at,2) /=cospIN%Nlevels .OR. &2338 size(cospgridIN%qv,2) /=cospIN%Nlevels .OR. &2339 size(cospgridIN%hgt_matrix_half,2) /=cospIN%Nlevels+1 .OR. &2340 size(cospgridIN%phalf,2) /=cospIN%Nlevels+1 .OR. &2341 size(cospgridIN%qv,2) /=cospIN%Nlevels) then2336 if (size(cospgridIN%pfull,2) .ne. cospIN%Nlevels .OR. & 2337 size(cospgridIN%at,2) .ne. cospIN%Nlevels .OR. & 2338 size(cospgridIN%qv,2) .ne. cospIN%Nlevels .OR. & 2339 size(cospgridIN%hgt_matrix_half,2) .ne. cospIN%Nlevels+1 .OR. & 2340 size(cospgridIN%phalf,2) .ne. cospIN%Nlevels+1 .OR. & 2341 size(cospgridIN%qv,2) .ne. cospIN%Nlevels) then 2342 2342 Lrttov_subcolumn = .false. 2343 2343 Lrttov_column = .false.
Note: See TracChangeset
for help on using the changeset viewer.