43 for (
int nCoast = 0; nCoast < static_cast<int>(
m_VCoast.size()); nCoast++)
45 for (
int nCoastPoint = 0; nCoastPoint <
m_VCoast[nCoast].nGetCoastlineSize(); nCoastPoint++)
48 int const nX =
m_VCoast[nCoast].pPtiGetCellMarkedAsCoastline(nCoastPoint)->nGetX();
49 int const nY =
m_VCoast[nCoast].pPtiGetCellMarkedAsCoastline(nCoastPoint)->nGetY();
52 m_pRasterGrid->m_Cell[nX][nY].pGetLandform()->SetCoast(nCoast);
53 m_pRasterGrid->m_Cell[nX][nY].pGetLandform()->SetPointOnCoast(nCoastPoint);
59 int const nCat =
m_pRasterGrid->m_Cell[nX][nY].pGetLandform()->nGetLFCategory();
61 m_VCoast[nCoast].AppendCoastLandform(pIntervention);
70 int const nTopLayer =
m_pRasterGrid->m_Cell[nX][nY].nGetTopNonZeroLayerAboveBasement();
79 m_VCoast[nCoast].AppendCoastLandform(pDrift);
103 double const dConsSedTop =
m_pRasterGrid->m_Cell[nX][nY].dGetConsSedTopElevForLayerAboveBasement(nLayer);
110 int const nCat =
m_pRasterGrid->m_Cell[nX][nY].pGetLandform()->nGetLFCategory();
114 double dNotchApexElev =
m_pRasterGrid->m_Cell[nX][nY].pGetLandform()->dGetCliffNotchApexElev();
115 double const dSedTopElevNoTalus =
m_pRasterGrid->m_Cell[nX][nY].dGetConsSedTopElevOmitTalus();
116 if (dNotchApexElev < dSedTopElevNoTalus)
119 double const dAccumWaveEnergy =
m_pRasterGrid->m_Cell[nX][nY].pGetLandform()->dGetAccumWaveEnergy();
120 double const dNotchIncision =
m_pRasterGrid->m_Cell[nX][nY].pGetLandform()->dGetCliffNotchIncisionDepth();
127 m_VCoast[nCoast].AppendCoastLandform(pCliff);
130 double const dSedTopElevIncTalus =
m_pRasterGrid->m_Cell[nX][nY].dGetAllSedTopElevIncTalus();
132 LogStream <<
m_ulIter <<
": \tcontinues to be a cliff at [" << nX <<
"][" << nY <<
"] dAccumWaveEnergy = " << dAccumWaveEnergy <<
" dNotchApexElev = " << dNotchApexElev <<
" dSedTopElevNoTalus = " << dSedTopElevNoTalus <<
" dSedTopElevIncTalus = " << dSedTopElevIncTalus <<
" dNotchIncision = " << dNotchIncision << endl;
138 double const dAccumWaveEnergy =
m_pRasterGrid->m_Cell[nX][nY].pGetLandform()->dGetAccumWaveEnergy();
144 m_pRasterGrid->m_Cell[nX][nY].pGetLandform()->SetCliffNotchApexElev(dNotchApexElev);
145 m_pRasterGrid->m_Cell[nX][nY].pGetLandform()->SetCliffNotchIncisionDepth(dNotchIncision);
149 m_VCoast[nCoast].AppendCoastLandform(pCliff);
152 double const dSedTopElevIncTalus =
m_pRasterGrid->m_Cell[nX][nY].dGetAllSedTopElevIncTalus();
154 LogStream <<
m_ulIter <<
": \tPROBLEM cliff with notch above sediment top (inc any talus) at [" << nX <<
"][" << nY <<
"] dAccumWaveEnergy = " << dAccumWaveEnergy <<
" dNotchApexElev = " << dNotchApexElev <<
" dSedTopElevNoTalus = " << dSedTopElevNoTalus <<
" dSedTopElevIncTalus = " << dSedTopElevIncTalus <<
" dNotchIncision = " << dNotchIncision << endl;
164 double const dAccumWaveEnergy =
m_pRasterGrid->m_Cell[nX][nY].pGetLandform()->dGetAccumWaveEnergy();
171 double const dSedTopElevNoTalus =
m_pRasterGrid->m_Cell[nX][nY].dGetConsSedTopElevOmitTalus();
181 m_VCoast[nCoast].AppendCoastLandform(pCliff);
184 double const dSedTopElevIncTalus =
m_pRasterGrid->m_Cell[nX][nY].dGetAllSedTopElevIncTalus();
187 LogStream <<
m_ulIter <<
": \tcliff created at [" << nX <<
"][" << nY <<
"] dAccumWaveEnergy = " << dAccumWaveEnergy <<
" dNotchApexElev = " << dNotchApexElev <<
" dSedTopElevNoTalus = " << dSedTopElevNoTalus <<
" dSedTopElevIncTalus = " << dSedTopElevIncTalus <<
" dNotchIncision = " << dNotchIncision << endl;
189 LogStream <<
m_ulIter <<
": \tNO NOTCH cliff created at [" << nX <<
"][" << nY <<
"] dAccumWaveEnergy = " << dAccumWaveEnergy <<
" dSedTopElevNoTalus = " << dSedTopElevNoTalus <<
" dSedTopElevIncTalus = " << dSedTopElevIncTalus << endl;
196 double const dAccumWaveEnergy =
m_pRasterGrid->m_Cell[nX][nY].pGetLandform()->dGetAccumWaveEnergy();
200 m_VCoast[nCoast].AppendCoastLandform(pCliff);
203 LogStream <<
m_ulIter <<
": \tcliff created (cliff collapse not considered) at " << nX <<
"][" << nY <<
"] dAccumWaveEnergy = " << dAccumWaveEnergy <<
" dAllSedTopElevNoTalus = " <<
m_pRasterGrid->m_Cell[nX][nY].dGetAllSedTopElevOmitTalus() <<
" dAllSedTopElevIncTalus = " <<
m_pRasterGrid->m_Cell[nX][nY].dGetAllSedTopElevIncTalus() <<
" dConsSedTopElevNoTalus = " <<
m_pRasterGrid->m_Cell[nX][nY].dGetConsSedTopElevOmitTalus() <<
" dConsSedTopElevIncTalus = " <<
m_pRasterGrid->m_Cell[nX][nY].dGetConsSedTopElevIncTalus() << endl;
211 m_VCoast[nCoast].AppendCoastLandform(pDrift);
393#pragma omp parallel for collapse(2)
407 if (
m_pRasterGrid->m_Cell[nX][nY].bBasementElevIsMissingValue())
412 vCellUpdates[nX][nY] = nAction;
425 vCellUpdates[nX][nY] = nAction;
433 vCellUpdates[nX][nY] = nAction;
437 int const nTopLayer =
m_pRasterGrid->m_Cell[nX][nY].nGetTopNonZeroLayerAboveBasement();
445 vCellUpdates[nX][nY] = nAction;
454 vCellUpdates[nX][nY] = nAction;
461 vCellUpdates[nX][nY] = nAction;
470 int const nAction = vCellUpdates[nX][nY];