Solve each solution group and each solution. Start with converge flag equal true and reset to zero if any non-convergence triggers are encountered. 
   54     class(SolutionGroupType) :: this
 
   56     class(BaseSolutionType), 
pointer :: sp
 
   57     integer(I4B) :: kpicard, isgcnvg, isuppress_output
 
   58     integer(I4B) :: is, isoln
 
   60     character(len=*), 
parameter :: fmtnocnvg = &
 
   61       "(1X,'Solution Group ', i0, ' did not converge for stress period ', i0, & 
   62        &' and time step ', i0)" 
   65     if (this%mxiter > 1) 
then 
   75     picardloop: 
do kpicard = 1, this%mxiter
 
   76       if (this%mxiter > 1) 
then 
   77         write (
iout, 
'(/a,i6/)') 
'SOLUTION GROUP PICARD ITERATION: ', kpicard
 
   80       do is = 1, this%nsolutions
 
   81         isoln = this%idsolutions(is)
 
   82         sp => getbasesolutionfromlist(basesolutionlist, isoln)
 
   83         call sp%sln_ca(isgcnvg, isuppress_output)
 
   85       if (isgcnvg == 1) 
exit picardloop
 
   92     if (isgcnvg == 1) 
then 
   93       if (this%mxiter > 1) 
then 
   95         do is = 1, this%nsolutions
 
   96           isoln = this%idsolutions(is)
 
   97           sp => getbasesolutionfromlist(basesolutionlist, isoln)
 
   98           call sp%sln_ca(isgcnvg, isuppress_output)
 
This module contains simulation constants.
 
integer(i4b), parameter linelength
maximum length of a standard line
 
This module contains simulation variables.
 
integer(i4b) laststepfailed
flag indicating if the last step failed (1) if last step failed; (0) otherwise (set in converge_check...
 
integer(i4b) iout
file unit number for simulation output
 
integer(i4b) isimcnvg
simulation convergence flag (1) if all objects have converged, (0) otherwise
 
integer(i4b), pointer, public kstp
current time step number
 
integer(i4b), pointer, public kper
current stress period number