| | | | | | | | | | | | | | | | | | | | | |
<?xml version="1.0" encoding="windows-1252"?> |
<!-- DFIN ActiveDisclosure(SM) XBRL Linkbase Document - http://www.dfinsolutions.com/ --> |
<!-- Creation Date : 2019-11-05T20:35:53.0016380+00:00 --> |
<!-- Version : 5.0.0.208 --> |
<!-- Package ID : 97035d3e575a4e1b817db6965f269e42 --> |
<!-- Copyright (c) 2019 Donnelley Financial Solutions, Inc. All Rights Reserved. --> |
<link:linkbase xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd"> |
| <link:roleRef xlink:type="simple" xlink:href="cece-20190930.xsd#TemplateLink" roleURI="http://www.cecoenviro.com/20190930/role/TemplateLink"/> |
| <link:roleRef roleURI="http://www.cecoenviro.com/20190930/taxonomy/role/StatementCondensedConsolidatedBalanceSheets" xlink:href="cece-20190930.xsd#Role_StatementCondensedConsolidatedBalanceSheets" xlink:type="simple"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20190930/taxonomy/role/StatementCondensedConsolidatedBalanceSheets"> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AssetsOfDisposalGroupIncludingDiscontinuedOperationCurrent" xlink:type="locator" xlink:label="us-gaap_AssetsOfDisposalGroupIncludingDiscontinuedOperationCurrent"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PrepaidTaxes" xlink:type="locator" xlink:label="us-gaap_PrepaidTaxes"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:type="locator" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryNet" xlink:type="locator" xlink:label="us-gaap_InventoryNet"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerAssetNetCurrent" xlink:type="locator" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrent"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:type="locator" xlink:label="us-gaap_AccountsReceivableNetCurrent"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RestrictedCashCurrent" xlink:type="locator" xlink:label="us-gaap_RestrictedCashCurrent"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:type="locator" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredCostsAndOtherAssets" xlink:type="locator" xlink:label="us-gaap_DeferredCostsAndOtherAssets"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwill" xlink:type="locator" xlink:label="us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwill"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:type="locator" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_Goodwill" xlink:type="locator" xlink:label="us-gaap_Goodwill"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="locator" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:type="locator" xlink:label="us-gaap_PropertyPlantAndEquipmentNet"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AssetsCurrent" xlink:type="locator" xlink:label="us-gaap_AssetsCurrent"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_Assets" xlink:type="locator" xlink:label="us-gaap_Assets"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccruedIncomeTaxesCurrent" xlink:type="locator" xlink:label="us-gaap_AccruedIncomeTaxesCurrent"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NotesPayableCurrent" xlink:type="locator" xlink:label="us-gaap_NotesPayableCurrent"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:type="locator" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccountsPayableAndAccruedLiabilitiesCurrent" xlink:type="locator" xlink:label="us-gaap_AccountsPayableAndAccruedLiabilitiesCurrent"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongTermDebtCurrent" xlink:type="locator" xlink:label="us-gaap_LongTermDebtCurrent"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:type="locator" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxLiabilitiesNoncurrent" xlink:type="locator" xlink:label="us-gaap_DeferredTaxLiabilitiesNoncurrent"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongTermDebtNoncurrent" xlink:type="locator" xlink:label="us-gaap_LongTermDebtNoncurrent"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherLiabilitiesNoncurrent" xlink:type="locator" xlink:label="us-gaap_OtherLiabilitiesNoncurrent"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LiabilitiesCurrent" xlink:type="locator" xlink:label="us-gaap_LiabilitiesCurrent"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:type="locator" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:type="locator" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdditionalPaidInCapitalCommonStock" xlink:type="locator" xlink:label="us-gaap_AdditionalPaidInCapitalCommonStock"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockValue" xlink:type="locator" xlink:label="us-gaap_CommonStockValue"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PreferredStockValue" xlink:type="locator" xlink:label="us-gaap_PreferredStockValue"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TreasuryStockCommonValue" xlink:type="locator" xlink:label="us-gaap_TreasuryStockCommonValue"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockholdersEquityBeforeTreasuryStock" xlink:type="locator" xlink:label="us-gaap_StockholdersEquityBeforeTreasuryStock"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockholdersEquity" xlink:type="locator" xlink:label="us-gaap_StockholdersEquity"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommitmentsAndContingencies" xlink:type="locator" xlink:label="us-gaap_CommitmentsAndContingencies"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_Liabilities" xlink:type="locator" xlink:label="us-gaap_Liabilities"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:type="locator" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_Liabilities" order="10010.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_CommitmentsAndContingencies" order="10020.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_StockholdersEquity" order="10030.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_StockholdersEquityBeforeTreasuryStock" order="10040.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_TreasuryStockCommonValue" order="10050.00" priority="2" use="optional" weight="-1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquityBeforeTreasuryStock" xlink:to="us-gaap_PreferredStockValue" order="10060.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquityBeforeTreasuryStock" xlink:to="us-gaap_CommonStockValue" order="10070.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquityBeforeTreasuryStock" xlink:to="us-gaap_AdditionalPaidInCapitalCommonStock" order="10080.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquityBeforeTreasuryStock" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit" order="10090.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquityBeforeTreasuryStock" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" order="10100.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_LiabilitiesCurrent" order="10110.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_OtherLiabilitiesNoncurrent" order="10120.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_LongTermDebtNoncurrent" order="10130.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_DeferredTaxLiabilitiesNoncurrent" order="10140.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent" order="10150.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_LongTermDebtCurrent" order="10160.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_AccountsPayableAndAccruedLiabilitiesCurrent" order="10170.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent" order="10180.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_NotesPayableCurrent" order="10190.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_AccruedIncomeTaxesCurrent" order="10200.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_AssetsCurrent" order="10210.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_PropertyPlantAndEquipmentNet" order="10220.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset" order="10230.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_Goodwill" order="10240.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet" order="10250.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwill" order="10260.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_DeferredCostsAndOtherAssets" order="10270.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue" order="10280.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_RestrictedCashCurrent" order="10290.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_AccountsReceivableNetCurrent" order="10300.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_ContractWithCustomerAssetNetCurrent" order="10310.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_InventoryNet" order="10320.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" order="10330.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_PrepaidTaxes" order="10340.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_AssetsOfDisposalGroupIncludingDiscontinuedOperationCurrent" order="10350.00" priority="2" use="optional" weight="1.00"/> |
| | </link:calculationLink> |
| <link:roleRef roleURI="http://www.cecoenviro.com/20190930/taxonomy/role/StatementCondensedConsolidatedStatementsOfOperationsUnaudited" xlink:href="cece-20190930.xsd#Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited" xlink:type="simple"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20190930/taxonomy/role/StatementCondensedConsolidatedStatementsOfOperationsUnaudited"> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:type="locator" xlink:label="us-gaap_CostOfGoodsAndServicesSold"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:type="locator" xlink:label="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/> |
| | <link:loc xlink:href="cece-20190930.xsd#cece_RestructuringExpensesIncomeNet" xlink:type="locator" xlink:label="cece_RestructuringExpensesIncomeNet"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_GainLossOnSaleOfBusiness" xlink:type="locator" xlink:label="us-gaap_GainLossOnSaleOfBusiness"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherCostAndExpenseOperating" xlink:type="locator" xlink:label="us-gaap_OtherCostAndExpenseOperating"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SellingGeneralAndAdministrativeExpense" xlink:type="locator" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpense"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_GrossProfit" xlink:type="locator" xlink:label="us-gaap_GrossProfit"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InterestExpense" xlink:type="locator" xlink:label="us-gaap_InterestExpense"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:type="locator" xlink:label="us-gaap_OtherNonoperatingIncomeExpense"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingIncomeLoss" xlink:type="locator" xlink:label="us-gaap_OperatingIncomeLoss"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:type="locator" xlink:label="us-gaap_IncomeTaxExpenseBenefit"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:type="locator" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProfitLoss" xlink:type="locator" xlink:label="us-gaap_ProfitLoss"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_ProfitLoss" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" order="10010.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_ProfitLoss" xlink:to="us-gaap_IncomeTaxExpenseBenefit" order="10020.00" priority="2" use="optional" weight="-1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="us-gaap_OperatingIncomeLoss" order="10030.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="us-gaap_OtherNonoperatingIncomeExpense" order="10040.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="us-gaap_InterestExpense" order="10050.00" priority="2" use="optional" weight="-1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_GrossProfit" order="10060.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_SellingGeneralAndAdministrativeExpense" order="10070.00" priority="2" use="optional" weight="-1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_OtherCostAndExpenseOperating" order="10080.00" priority="2" use="optional" weight="-1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_GainLossOnSaleOfBusiness" order="10090.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="cece_RestructuringExpensesIncomeNet" order="10100.00" priority="2" use="optional" weight="-1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_GrossProfit" xlink:to="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" order="10110.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_GrossProfit" xlink:to="us-gaap_CostOfGoodsAndServicesSold" order="10120.00" priority="2" use="optional" weight="-1.00"/> |
| | </link:calculationLink> |
| <link:roleRef roleURI="http://www.cecoenviro.com/20190930/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLossUnaudited" xlink:href="cece-20190930.xsd#Role_StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLossUnaudited" xlink:type="simple"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20190930/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLossUnaudited"> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" xlink:type="locator" xlink:label="us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherComprehensiveIncomeDerivativesQualifyingAsHedgesNetOfTaxPortionAttributableToParent" xlink:type="locator" xlink:label="us-gaap_OtherComprehensiveIncomeDerivativesQualifyingAsHedgesNetOfTaxPortionAttributableToParent"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProfitLoss" xlink:type="locator" xlink:label="us-gaap_ProfitLoss"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest" xlink:type="locator" xlink:label="us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest" xlink:to="us-gaap_ProfitLoss" order="10010.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest" xlink:to="us-gaap_OtherComprehensiveIncomeDerivativesQualifyingAsHedgesNetOfTaxPortionAttributableToParent" order="10020.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest" xlink:to="us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" order="10030.00" priority="2" use="optional" weight="1.00"/> |
| | </link:calculationLink> |
| <link:roleRef roleURI="http://www.cecoenviro.com/20190930/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" xlink:href="cece-20190930.xsd#Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" xlink:type="simple"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20190930/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInOtherOperatingLiabilities" xlink:type="locator" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable" xlink:type="locator" xlink:label="us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable"/> |
| | <link:loc xlink:href="cece-20190930.xsd#cece_ContractWithCustomerLiabilityIncreaseDecreaseInBillingInExcessOfCostOfEarnings" xlink:type="locator" xlink:label="cece_ContractWithCustomerLiabilityIncreaseDecreaseInBillingInExcessOfCostOfEarnings"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities" xlink:type="locator" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities"/> |
| | <link:loc xlink:href="cece-20190930.xsd#cece_IncreaseDecreaseInDeferredChargesAndOtherAssets" xlink:type="locator" xlink:label="cece_IncreaseDecreaseInDeferredChargesAndOtherAssets"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:type="locator" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:type="locator" xlink:label="us-gaap_IncreaseDecreaseInInventories"/> |
| | <link:loc xlink:href="cece-20190930.xsd#cece_ContractWithCustomerAssetIncreaseDecreaseInCostInExcessOfBillingOnUncompletedContract" xlink:type="locator" xlink:label="cece_ContractWithCustomerAssetIncreaseDecreaseInCostInExcessOfBillingOnUncompletedContract"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:type="locator" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:type="locator" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit"/> |
| | <link:loc xlink:href="cece-20190930.xsd#cece_InventoryReserveExpenseBenefit" xlink:type="locator" xlink:label="cece_InventoryReserveExpenseBenefit"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProvisionForDoubtfulAccounts" xlink:type="locator" xlink:label="us-gaap_ProvisionForDoubtfulAccounts"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensation" xlink:type="locator" xlink:label="us-gaap_ShareBasedCompensation"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AmortizationOfDebtDiscountPremium" xlink:type="locator" xlink:label="us-gaap_AmortizationOfDebtDiscountPremium"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_GainLossOnSaleOfBusiness" xlink:type="locator" xlink:label="us-gaap_GainLossOnSaleOfBusiness"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:type="locator" xlink:label="us-gaap_GainLossOnSaleOfPropertyPlantEquipment"/> |
| | <link:loc xlink:href="cece-20190930.xsd#cece_PaymentsOfContingentConsiderationRelatedToAcquisitionsOperatingActivities" xlink:type="locator" xlink:label="cece_PaymentsOfContingentConsiderationRelatedToAcquisitionsOperatingActivities"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:type="locator" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeGainLossOnDerivativeNet" xlink:type="locator" xlink:label="us-gaap_DerivativeGainLossOnDerivativeNet"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ForeignCurrencyTransactionGainLossUnrealized" xlink:type="locator" xlink:label="us-gaap_ForeignCurrencyTransactionGainLossUnrealized"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DepreciationDepletionAndAmortization" xlink:type="locator" xlink:label="us-gaap_DepreciationDepletionAndAmortization"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProfitLoss" xlink:type="locator" xlink:label="us-gaap_ProfitLoss"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:type="locator" xlink:label="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProceedsFromDivestitureOfBusinessesNetOfCashDivested" xlink:type="locator" xlink:label="us-gaap_ProceedsFromDivestitureOfBusinessesNetOfCashDivested"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:type="locator" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions" xlink:type="locator" xlink:label="us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions"/> |
| | <link:loc xlink:href="cece-20190930.xsd#cece_PaymentsOnFinanceLeasesAndFinancingLiability" xlink:type="locator" xlink:label="cece_PaymentsOnFinanceLeasesAndFinancingLiability"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SaleLeasebackTransactionNetProceedsFinancingActivities" xlink:type="locator" xlink:label="us-gaap_SaleLeasebackTransactionNetProceedsFinancingActivities"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PaymentsOfFinancingCosts" xlink:type="locator" xlink:label="us-gaap_PaymentsOfFinancingCosts"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RepaymentsOfDebt" xlink:type="locator" xlink:label="us-gaap_RepaymentsOfDebt"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProceedsFromRepaymentsOfLinesOfCredit" xlink:type="locator" xlink:label="us-gaap_ProceedsFromRepaymentsOfLinesOfCredit"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:type="locator" xlink:label="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:type="locator" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:type="locator" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:type="locator" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:type="locator" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities" order="10010.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities" order="10020.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities" order="10030.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" order="10040.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_ProceedsFromRepaymentsOfLinesOfCredit" order="10050.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_RepaymentsOfDebt" order="10060.00" priority="2" use="optional" weight="-1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_PaymentsOfFinancingCosts" order="10070.00" priority="2" use="optional" weight="-1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_SaleLeasebackTransactionNetProceedsFinancingActivities" order="10080.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="cece_PaymentsOnFinanceLeasesAndFinancingLiability" order="10090.00" priority="2" use="optional" weight="-1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions" order="10100.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" order="10110.00" priority="2" use="optional" weight="-1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="us-gaap_ProceedsFromDivestitureOfBusinessesNetOfCashDivested" order="10120.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" order="10130.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_ProfitLoss" order="10140.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_DepreciationDepletionAndAmortization" order="10150.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_ForeignCurrencyTransactionGainLossUnrealized" order="10160.00" priority="2" use="optional" weight="-1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_DerivativeGainLossOnDerivativeNet" order="10170.00" priority="2" use="optional" weight="-1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" order="10180.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="cece_PaymentsOfContingentConsiderationRelatedToAcquisitionsOperatingActivities" order="10190.00" priority="2" use="optional" weight="-1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_GainLossOnSaleOfPropertyPlantEquipment" order="10200.00" priority="2" use="optional" weight="-1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_GainLossOnSaleOfBusiness" order="10210.00" priority="2" use="optional" weight="-1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_AmortizationOfDebtDiscountPremium" order="10220.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_ShareBasedCompensation" order="10230.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_ProvisionForDoubtfulAccounts" order="10240.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="cece_InventoryReserveExpenseBenefit" order="10250.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit" order="10260.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInAccountsReceivable" order="10270.00" priority="2" use="optional" weight="-1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="cece_ContractWithCustomerAssetIncreaseDecreaseInCostInExcessOfBillingOnUncompletedContract" order="10280.00" priority="2" use="optional" weight="-1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInInventories" order="10290.00" priority="2" use="optional" weight="-1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" order="10300.00" priority="2" use="optional" weight="-1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="cece_IncreaseDecreaseInDeferredChargesAndOtherAssets" order="10310.00" priority="2" use="optional" weight="-1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities" order="10320.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="cece_ContractWithCustomerLiabilityIncreaseDecreaseInBillingInExcessOfCostOfEarnings" order="10330.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable" order="10340.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities" order="10350.00" priority="2" use="optional" weight="1.00"/> |
| | </link:calculationLink> |
| <link:roleRef roleURI="http://www.cecoenviro.com/20190930/taxonomy/role/DisclosureAccountsReceivableSummaryOfAccountsReceivableDetail" xlink:href="cece-20190930.xsd#Role_DisclosureAccountsReceivableSummaryOfAccountsReceivableDetail" xlink:type="simple"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20190930/taxonomy/role/DisclosureAccountsReceivableSummaryOfAccountsReceivableDetail"> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:type="locator" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccountsReceivableGrossCurrent" xlink:type="locator" xlink:label="us-gaap_AccountsReceivableGrossCurrent"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ReceivablesLongTermContractsOrPrograms" xlink:type="locator" xlink:label="us-gaap_ReceivablesLongTermContractsOrPrograms"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:type="locator" xlink:label="us-gaap_AccountsReceivableNetCurrent"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AccountsReceivableNetCurrent" xlink:to="us-gaap_ReceivablesLongTermContractsOrPrograms" order="10010.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AccountsReceivableNetCurrent" xlink:to="us-gaap_AccountsReceivableGrossCurrent" order="10020.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AccountsReceivableNetCurrent" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" order="10030.00" priority="2" use="optional" weight="-1.00"/> |
| | </link:calculationLink> |
| <link:roleRef roleURI="http://www.cecoenviro.com/20190930/taxonomy/role/DisclosureCostsAndEstimatedEarningsOnUncompletedContractsCostsAndEstimatedEarningsOnUncompletedContractsDetail" xlink:href="cece-20190930.xsd#Role_DisclosureCostsAndEstimatedEarningsOnUncompletedContractsCostsAndEstimatedEarningsOnUncompletedContractsDetail" xlink:type="simple"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20190930/taxonomy/role/DisclosureCostsAndEstimatedEarningsOnUncompletedContractsCostsAndEstimatedEarningsOnUncompletedContractsDetail"> |
| | <link:loc xlink:href="cece-20190930.xsd#cece_EstimatedEarningsOnUncompletedContracts" xlink:type="locator" xlink:label="cece_EstimatedEarningsOnUncompletedContracts"/> |
| | <link:loc xlink:href="cece-20190930.xsd#cece_CostsIncurredOnUncompletedContracts" xlink:type="locator" xlink:label="cece_CostsIncurredOnUncompletedContracts"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccountsReceivableBilledForLongTermContractsOrPrograms" xlink:type="locator" xlink:label="us-gaap_AccountsReceivableBilledForLongTermContractsOrPrograms"/> |
| | <link:loc xlink:href="cece-20190930.xsd#cece_CostsAndEstimatedEarningsOnUncompletedContractsGross" xlink:type="locator" xlink:label="cece_CostsAndEstimatedEarningsOnUncompletedContractsGross"/> |
| | <link:loc xlink:href="cece-20190930.xsd#cece_NetUnderOverContractBillingUncompletedContracts" xlink:type="locator" xlink:label="cece_NetUnderOverContractBillingUncompletedContracts"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="cece_NetUnderOverContractBillingUncompletedContracts" xlink:to="cece_CostsAndEstimatedEarningsOnUncompletedContractsGross" order="10010.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="cece_NetUnderOverContractBillingUncompletedContracts" xlink:to="us-gaap_AccountsReceivableBilledForLongTermContractsOrPrograms" order="10020.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="cece_CostsAndEstimatedEarningsOnUncompletedContractsGross" xlink:to="cece_CostsIncurredOnUncompletedContracts" order="10030.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="cece_CostsAndEstimatedEarningsOnUncompletedContractsGross" xlink:to="cece_EstimatedEarningsOnUncompletedContracts" order="10040.00" priority="2" use="optional" weight="1.00"/> |
| | </link:calculationLink> |
| <link:roleRef roleURI="http://www.cecoenviro.com/20190930/taxonomy/role/DisclosureCostsAndEstimatedEarningsOnUncompletedContractsCostsAndEstimatedEarningsOnUncompletedContractsDetail2" xlink:href="cece-20190930.xsd#Role_DisclosureCostsAndEstimatedEarningsOnUncompletedContractsCostsAndEstimatedEarningsOnUncompletedContractsDetail2" xlink:type="simple"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20190930/taxonomy/role/DisclosureCostsAndEstimatedEarningsOnUncompletedContractsCostsAndEstimatedEarningsOnUncompletedContractsDetail2"> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:type="locator" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerAssetNetCurrent" xlink:type="locator" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrent"/> |
| | <link:loc xlink:href="cece-20190930.xsd#cece_NetUnderOverContractBillingUncompletedContracts" xlink:type="locator" xlink:label="cece_NetUnderOverContractBillingUncompletedContracts"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="cece_NetUnderOverContractBillingUncompletedContracts" xlink:to="us-gaap_ContractWithCustomerAssetNetCurrent" order="10010.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="cece_NetUnderOverContractBillingUncompletedContracts" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent" order="10020.00" priority="2" use="optional" weight="-1.00"/> |
| | </link:calculationLink> |
| <link:roleRef roleURI="http://www.cecoenviro.com/20190930/taxonomy/role/DisclosureInventoriesSummaryOfInventoriesDetail" xlink:href="cece-20190930.xsd#Role_DisclosureInventoriesSummaryOfInventoriesDetail" xlink:type="simple"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20190930/taxonomy/role/DisclosureInventoriesSummaryOfInventoriesDetail"> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryValuationReserves" xlink:type="locator" xlink:label="us-gaap_InventoryValuationReserves"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryFinishedGoods" xlink:type="locator" xlink:label="us-gaap_InventoryFinishedGoods"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryWorkInProcess" xlink:type="locator" xlink:label="us-gaap_InventoryWorkInProcess"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryRawMaterials" xlink:type="locator" xlink:label="us-gaap_InventoryRawMaterials"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryNet" xlink:type="locator" xlink:label="us-gaap_InventoryNet"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_InventoryNet" xlink:to="us-gaap_InventoryRawMaterials" order="10010.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_InventoryNet" xlink:to="us-gaap_InventoryWorkInProcess" order="10020.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_InventoryNet" xlink:to="us-gaap_InventoryFinishedGoods" order="10030.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_InventoryNet" xlink:to="us-gaap_InventoryValuationReserves" order="10040.00" priority="2" use="optional" weight="-1.00"/> |
| | </link:calculationLink> |
| <link:roleRef roleURI="http://www.cecoenviro.com/20190930/taxonomy/role/DisclosureAccountsPayableAndAccruedExpensesSummaryOfAccountsPayableAndAccruedExpensesDetail" xlink:href="cece-20190930.xsd#Role_DisclosureAccountsPayableAndAccruedExpensesSummaryOfAccountsPayableAndAccruedExpensesDetail" xlink:type="simple"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20190930/taxonomy/role/DisclosureAccountsPayableAndAccruedExpensesSummaryOfAccountsPayableAndAccruedExpensesDetail"> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherAccruedLiabilitiesCurrent" xlink:type="locator" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent"/> |
| | <link:loc xlink:href="cece-20190930.xsd#cece_ContractLiabilityCurrent" xlink:type="locator" xlink:label="cece_ContractLiabilityCurrent"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProductWarrantyAccrualClassifiedCurrent" xlink:type="locator" xlink:label="us-gaap_ProductWarrantyAccrualClassifiedCurrent"/> |
| | <link:loc xlink:href="cece-20190930.xsd#cece_LeaseLiabilitiesCurrent" xlink:type="locator" xlink:label="cece_LeaseLiabilitiesCurrent"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:type="locator" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccountsPayableTradeCurrent" xlink:type="locator" xlink:label="us-gaap_AccountsPayableTradeCurrent"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccountsPayableAndAccruedLiabilitiesCurrent" xlink:type="locator" xlink:label="us-gaap_AccountsPayableAndAccruedLiabilitiesCurrent"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AccountsPayableAndAccruedLiabilitiesCurrent" xlink:to="us-gaap_AccountsPayableTradeCurrent" order="10010.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AccountsPayableAndAccruedLiabilitiesCurrent" xlink:to="us-gaap_EmployeeRelatedLiabilitiesCurrent" order="10020.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AccountsPayableAndAccruedLiabilitiesCurrent" xlink:to="cece_LeaseLiabilitiesCurrent" order="10030.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AccountsPayableAndAccruedLiabilitiesCurrent" xlink:to="us-gaap_ProductWarrantyAccrualClassifiedCurrent" order="10040.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AccountsPayableAndAccruedLiabilitiesCurrent" xlink:to="cece_ContractLiabilityCurrent" order="10050.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AccountsPayableAndAccruedLiabilitiesCurrent" xlink:to="us-gaap_OtherAccruedLiabilitiesCurrent" order="10060.00" priority="2" use="optional" weight="1.00"/> |
| | </link:calculationLink> |
| <link:roleRef roleURI="http://www.cecoenviro.com/20190930/taxonomy/role/DisclosureSeniorDebtSummaryOfDebtDetail" xlink:href="cece-20190930.xsd#Role_DisclosureSeniorDebtSummaryOfDebtDetail" xlink:type="simple"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20190930/taxonomy/role/DisclosureSeniorDebtSummaryOfDebtDetail"> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongTermDebtNoncurrent" xlink:type="locator" xlink:label="us-gaap_LongTermDebtNoncurrent"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongTermDebtCurrent" xlink:type="locator" xlink:label="us-gaap_LongTermDebtCurrent"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongTermDebt" xlink:type="locator" xlink:label="us-gaap_LongTermDebt"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LongTermDebt" xlink:to="us-gaap_LongTermDebtCurrent" order="10010.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LongTermDebt" xlink:to="us-gaap_LongTermDebtNoncurrent" order="10020.00" priority="2" use="optional" weight="1.00"/> |
| | </link:calculationLink> |
| <link:roleRef roleURI="http://www.cecoenviro.com/20190930/taxonomy/role/DisclosureEarningsPerShareNumberOfSharesOutstandingForCalculationOfEarningsPerShareDetail" xlink:href="cece-20190930.xsd#Role_DisclosureEarningsPerShareNumberOfSharesOutstandingForCalculationOfEarningsPerShareDetail" xlink:type="simple"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20190930/taxonomy/role/DisclosureEarningsPerShareNumberOfSharesOutstandingForCalculationOfEarningsPerShareDetail"> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:type="locator" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:type="locator" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:type="locator" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" order="10010.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" order="10020.00" priority="2" use="optional" weight="1.00"/> |
| | </link:calculationLink> |
| <link:roleRef roleURI="http://www.cecoenviro.com/20190930/taxonomy/role/DisclosurePensionAndEmployeeBenefitPlansComponentsOfPensionAndEmployeeBenefitExpensesDetail" xlink:href="cece-20190930.xsd#Role_DisclosurePensionAndEmployeeBenefitPlansComponentsOfPensionAndEmployeeBenefitExpensesDetail" xlink:type="simple"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20190930/taxonomy/role/DisclosurePensionAndEmployeeBenefitPlansComponentsOfPensionAndEmployeeBenefitExpensesDetail"> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DefinedBenefitPlanAmortizationOfGainsLosses" xlink:type="locator" xlink:label="us-gaap_DefinedBenefitPlanAmortizationOfGainsLosses"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DefinedBenefitPlanExpectedReturnOnPlanAssets" xlink:type="locator" xlink:label="us-gaap_DefinedBenefitPlanExpectedReturnOnPlanAssets"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DefinedBenefitPlanAmortizationOfPriorServiceCostCredit" xlink:type="locator" xlink:label="us-gaap_DefinedBenefitPlanAmortizationOfPriorServiceCostCredit"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DefinedBenefitPlanInterestCost" xlink:type="locator" xlink:label="us-gaap_DefinedBenefitPlanInterestCost"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost" xlink:type="locator" xlink:label="us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost" xlink:to="us-gaap_DefinedBenefitPlanInterestCost" order="10010.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost" xlink:to="us-gaap_DefinedBenefitPlanAmortizationOfPriorServiceCostCredit" order="10020.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost" xlink:to="us-gaap_DefinedBenefitPlanExpectedReturnOnPlanAssets" order="10030.00" priority="2" use="optional" weight="-1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost" xlink:to="us-gaap_DefinedBenefitPlanAmortizationOfGainsLosses" order="10040.00" priority="2" use="optional" weight="-1.00"/> |
| | </link:calculationLink> |
| <link:roleRef roleURI="http://www.cecoenviro.com/20190930/taxonomy/role/DisclosureLeasesScheduleOfComponentsOfLeaseExpenseDetail" xlink:href="cece-20190930.xsd#Role_DisclosureLeasesScheduleOfComponentsOfLeaseExpenseDetail" xlink:type="simple"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20190930/taxonomy/role/DisclosureLeasesScheduleOfComponentsOfLeaseExpenseDetail"> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FinanceLeaseInterestPaymentOnLiability" xlink:type="locator" xlink:label="us-gaap_FinanceLeaseInterestPaymentOnLiability"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FinanceLeaseRightOfUseAssetAmortization" xlink:type="locator" xlink:label="us-gaap_FinanceLeaseRightOfUseAssetAmortization"/> |
| | <link:loc xlink:href="cece-20190930.xsd#cece_FinanceLeaseCost" xlink:type="locator" xlink:label="cece_FinanceLeaseCost"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseCost" xlink:type="locator" xlink:label="us-gaap_OperatingLeaseCost"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LeaseCost" xlink:type="locator" xlink:label="us-gaap_LeaseCost"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LeaseCost" xlink:to="us-gaap_OperatingLeaseCost" order="10010.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LeaseCost" xlink:to="cece_FinanceLeaseCost" order="10020.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="cece_FinanceLeaseCost" xlink:to="us-gaap_FinanceLeaseRightOfUseAssetAmortization" order="10030.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="cece_FinanceLeaseCost" xlink:to="us-gaap_FinanceLeaseInterestPaymentOnLiability" order="10040.00" priority="2" use="optional" weight="-1.00"/> |
| | </link:calculationLink> |
| <link:roleRef roleURI="http://www.cecoenviro.com/20190930/taxonomy/role/DisclosureLeasesSummaryOfSupplementalBalanceSheetInformationRelatedToLeasesDetail" xlink:href="cece-20190930.xsd#Role_DisclosureLeasesSummaryOfSupplementalBalanceSheetInformationRelatedToLeasesDetail" xlink:type="simple"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20190930/taxonomy/role/DisclosureLeasesSummaryOfSupplementalBalanceSheetInformationRelatedToLeasesDetail"> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:type="locator" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:type="locator" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseLiability" xlink:type="locator" xlink:label="us-gaap_OperatingLeaseLiability"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FinanceLeaseLiabilityNoncurrent" xlink:type="locator" xlink:label="us-gaap_FinanceLeaseLiabilityNoncurrent"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FinanceLeaseLiabilityCurrent" xlink:type="locator" xlink:label="us-gaap_FinanceLeaseLiabilityCurrent"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FinanceLeaseLiability" xlink:type="locator" xlink:label="us-gaap_FinanceLeaseLiability"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_FinanceLeaseLiability" xlink:to="us-gaap_FinanceLeaseLiabilityCurrent" order="10010.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_FinanceLeaseLiability" xlink:to="us-gaap_FinanceLeaseLiabilityNoncurrent" order="10020.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingLeaseLiability" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent" order="10030.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingLeaseLiability" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent" order="10040.00" priority="2" use="optional" weight="1.00"/> |
| | </link:calculationLink> |
| <link:roleRef roleURI="http://www.cecoenviro.com/20190930/taxonomy/role/DisclosureLeasesScheduleOfMaturitiesOfLeaseLiabilitiesDetail" xlink:href="cece-20190930.xsd#Role_DisclosureLeasesScheduleOfMaturitiesOfLeaseLiabilitiesDetail" xlink:type="simple"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20190930/taxonomy/role/DisclosureLeasesScheduleOfMaturitiesOfLeaseLiabilitiesDetail"> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:type="locator" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:type="locator" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:type="locator" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:type="locator" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:type="locator" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:type="locator" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:type="locator" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueAfterYearFive" xlink:type="locator" xlink:label="us-gaap_FinanceLeaseLiabilityPaymentsDueAfterYearFive"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueYearFive" xlink:type="locator" xlink:label="us-gaap_FinanceLeaseLiabilityPaymentsDueYearFive"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour" xlink:type="locator" xlink:label="us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree" xlink:type="locator" xlink:label="us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo" xlink:type="locator" xlink:label="us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FinanceLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:type="locator" xlink:label="us-gaap_FinanceLeaseLiabilityPaymentsRemainderOfFiscalYear"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDue" xlink:type="locator" xlink:label="us-gaap_FinanceLeaseLiabilityPaymentsDue"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_FinanceLeaseLiabilityPaymentsDue" xlink:to="us-gaap_FinanceLeaseLiabilityPaymentsRemainderOfFiscalYear" order="10010.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_FinanceLeaseLiabilityPaymentsDue" xlink:to="us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo" order="10020.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_FinanceLeaseLiabilityPaymentsDue" xlink:to="us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree" order="10030.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_FinanceLeaseLiabilityPaymentsDue" xlink:to="us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour" order="10040.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_FinanceLeaseLiabilityPaymentsDue" xlink:to="us-gaap_FinanceLeaseLiabilityPaymentsDueYearFive" order="10050.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_FinanceLeaseLiabilityPaymentsDue" xlink:to="us-gaap_FinanceLeaseLiabilityPaymentsDueAfterYearFive" order="10060.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" order="10070.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" order="10080.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" order="10090.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" order="10100.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" order="10110.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" order="10120.00" priority="2" use="optional" weight="1.00"/> |
| | </link:calculationLink> |
| <link:roleRef roleURI="http://www.cecoenviro.com/20190930/taxonomy/role/DisclosureLeasesScheduleOfMaturitiesOfLeaseLiabilitiesDetail2" xlink:href="cece-20190930.xsd#Role_DisclosureLeasesScheduleOfMaturitiesOfLeaseLiabilitiesDetail2" xlink:type="simple"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20190930/taxonomy/role/DisclosureLeasesScheduleOfMaturitiesOfLeaseLiabilitiesDetail2"> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseLiability" xlink:type="locator" xlink:label="us-gaap_OperatingLeaseLiability"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:type="locator" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:type="locator" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FinanceLeaseLiability" xlink:type="locator" xlink:label="us-gaap_FinanceLeaseLiability"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FinanceLeaseLiabilityUndiscountedExcessAmount" xlink:type="locator" xlink:label="us-gaap_FinanceLeaseLiabilityUndiscountedExcessAmount"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDue" xlink:type="locator" xlink:label="us-gaap_FinanceLeaseLiabilityPaymentsDue"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_FinanceLeaseLiabilityPaymentsDue" xlink:to="us-gaap_FinanceLeaseLiabilityUndiscountedExcessAmount" order="10010.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_FinanceLeaseLiabilityPaymentsDue" xlink:to="us-gaap_FinanceLeaseLiability" order="10020.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" order="10030.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_OperatingLeaseLiability" order="10040.00" priority="2" use="optional" weight="1.00"/> |
| | </link:calculationLink> |
| <link:roleRef roleURI="http://www.cecoenviro.com/20190930/taxonomy/role/DisclosureLeasesScheduleOfFutureMinimumLeasePaymentsForOperatingLeasesDetail" xlink:href="cece-20190930.xsd#Role_DisclosureLeasesScheduleOfFutureMinimumLeasePaymentsForOperatingLeasesDetail" xlink:type="simple"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://www.cecoenviro.com/20190930/taxonomy/role/DisclosureLeasesScheduleOfFutureMinimumLeasePaymentsForOperatingLeasesDetail"> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueThereafter" xlink:type="locator" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueThereafter"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears" xlink:type="locator" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears" xlink:type="locator" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears" xlink:type="locator" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears" xlink:type="locator" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsRemainderOfFiscalYear" xlink:type="locator" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsRemainderOfFiscalYear"/> |
| | <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDue" xlink:type="locator" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDue"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingLeasesFutureMinimumPaymentsDue" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsRemainderOfFiscalYear" order="10010.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingLeasesFutureMinimumPaymentsDue" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears" order="10020.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingLeasesFutureMinimumPaymentsDue" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears" order="10030.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingLeasesFutureMinimumPaymentsDue" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears" order="10040.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingLeasesFutureMinimumPaymentsDue" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears" order="10050.00" priority="2" use="optional" weight="1.00"/> |
| | <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingLeasesFutureMinimumPaymentsDue" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueThereafter" order="10060.00" priority="2" use="optional" weight="1.00"/> |
| | </link:calculationLink> |
| </link:linkbase> |