diff --git a/src/run.c b/src/run.c index 8da1e24..7b6e003 100644 --- a/src/run.c +++ b/src/run.c @@ -772,8 +772,14 @@ exit(1); par->edgeVelsAvailable=0; /* default value, this is set within getEdgeVelocities(). */ - if(!silent && par->nSolveIters>0 && par->lte_only) - warning("Requesting par.nSolveIters>0 will have no effect if LTE calculation is also requested."); + if(!silent){ + if(par->lte_only){ + if(par->nSolveIters>0) + warning("Requesting par->nSolveIters>0 will have no effect if LTE calculation is also requested."); + }else if(par->nSolveIters<=par->nSolveItersDone && !allBitsSet(par->dataFlags, DS_mask_populations)){ + warning("No supplied pops values, and par->nSolveIters <= par->nSolveItersDone."); + } + } /* Allocate moldata array. */ @@ -855,7 +861,8 @@ exit(1); par.doMolCalcs = (par.nLineImages>0); }else{ - if(par.nSolveIters>0 || par.lte_only) /* To save the user having to set par.doSolveRTE as well as par.nSolveIters>0 or par.lte_only. */ +// if(par.nSolveIters>0 || par.lte_only) /* To save the user having to set par.doSolveRTE as well as par.nSolveIters>0 or par.lte_only. */ + if(par.nSolveIters>par.nSolveItersDone || par.lte_only) /* To save the user having to set par->doSolveRTE as well as par->nSolveIters>0 or par->lte_only. */ par.doSolveRTE = TRUE; par.doMolCalcs = par.doSolveRTE || par.nLineImages>0; @@ -913,8 +920,10 @@ exit(1); for(gi=0;giedgeVelsAvailable=0; /* default value, this is set within getEdgeVelocities(). */ - if(!silent && par->nSolveIters>0 && par->lte_only) - warning("Requesting par->nSolveIters>0 will have no effect if LTE calculation is also requested."); + if(!silent){ + if(par->lte_only){ + if(par->nSolveIters>0) + warning("Requesting par->nSolveIters>0 will have no effect if LTE calculation is also requested."); + }else if(par->nSolveIters<=par->nSolveItersDone && !allBitsSet(par->dataFlags, DS_mask_populations)){ + warning("No supplied pops values, and par->nSolveIters <= par->nSolveItersDone."); + } + } + +// if(par->nSolveIters>0 || par->lte_only) /* To save the user having to set par->doSolveRTE as well as par->nSolveIters>0 or par->lte_only. */ + if(par->nSolveIters>par->nSolveItersDone || par->lte_only) /* To save the user having to set par->doSolveRTE as well as par->nSolveIters>0 or par->lte_only. */ + par->doSolveRTE = TRUE; if(par->samplingAlgorithm==0) defaultDensyPower = DENSITY_POWER; else defaultDensyPower = TREE_POWER; - if(par->nSolveIters>0 || par->lte_only) /* To save the user having to set par->doSolveRTE as well as par->nSolveIters>0 or par->lte_only. */ - par->doSolveRTE = TRUE; - par->doMolCalcs = par->doSolveRTE || par->nLineImages>0; if(par->doMolCalcs && par->moldatfile==NULL){ if(!silent) bail_out("You must point par->moldatfile to a data file."); @@ -934,8 +941,10 @@ exit(1); for(gi=0;gi