* ************************************************************************* subroutine exflag( ipdevc, iflag, info ) * ************************************************************************* * Purpose : * --------- * This routine prints out the message corresponding * to the error detected during the minimization. * The error code is contained in variable IFLAG and * the information about the error detected is contained * in variable INFO. * Parameters : * ------------ * ipdevc ( int ) * input : output device unit number for printing * messages. * output : unmodified. * iflag ( int ) * input : the error code. * output : unmodified. * info ( int ) * input : some information about the error detected. * output : unmodified. * Routines used : * --------------- * None. * Programming : * ------------- * D. Tuyttens * ======================================================================== * Routine parameters integer ipdevc, iflag, info * Internal variables write(ipdevc,1000) 1000 format(//,1x,24('>'),2x,' PROBLEM IN LSNNO !!! ',24('<'),/) * * The error code is tested. * goto ( 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118 ) iflag * * The routine prints out the messages corresponding * to the errors detected. * * * The double precision work space length is too small. * 101 continue write(ipdevc,1001) info 1001 format(/' The total available work space provided in', + ' the double precision vector WK is too small',/, + ' The minimum neccessary length is ',i7) return * * The integer work space length is too small. * 102 continue write(ipdevc,1002) info 1002 format(/' The total available work space provided in', + ' the integer vector IWK is too small',/, + ' The minimum neccessary length is ',i7) return * * The length reserved for array FUVAL is too small. * 103 continue write(ipdevc,1003) info 1003 format(/' The total available space provided in the', + ' double precision vector FUVAL is too small',/, + ' The minimum neccessary length is ',i7) return * * The bounds are inconsistent. * 104 continue write(ipdevc,1004) info 1004 format(/' The bounds on variable ',i4,' are inconsistent.') return * * Inconsistent fixed variable value. * 105 continue write(ipdevc,1005) info 1005 format(/' The initial value of the fixed variable ',i4,' is', + ' inconsistent with the bounds.') return * * A facility that is not available at present. * 106 continue write(ipdevc,1006) info 1006 format(/' The status of element function ',i4,' corresponds', + ' to a facility that is not available at present.') return * * Maximum number of iterations executed before obtaining * an initial feasible solution. * 107 continue write(ipdevc,1007) info 1007 format(/' The maximum number of iterations ',i4,' is reached', + ' before obtaining an initial feasible solution.' ) return * * Infeasible problem. * 108 continue write(ipdevc,1008) 1008 format(/' The problem is infeasible.') return * * The linear subproblem solved for searching an initial * feasible solution is unbounded. * 109 continue write(ipdevc,1009) 1009 format(/' The linear subproblem solved for searching an', + ' initial feasible solution is unbounded.') return * * The graph is not connected. * 110 continue write(ipdevc,1010) 1010 format(/' The graph is not connected.') return * * Maximum number of independent sets is reached. * 111 continue write(ipdevc,1011) info 1011 format(/' The number of independent sets is larger than the', + ' maximum predicted ',i3) return * * The algorithm failed in the noise of the problem. * 112 continue write(ipdevc,1012) 1012 format(/' The algorithm is stopped because the difference', + ' between two successive function values along the',/, + ' current linesearch is insignificant to the noise', + ' on these function values.') return * * Maximum number of minor iterations is reached. * 113 continue write(ipdevc,1013) info 1013 format(/' More than ',i4,' minor iterations have been performed.') return * * The SIMPLEX routine is stopped because the linear function * is increasing. * 114 continue write(ipdevc,1014) 1014 format(/' The SIMPLEX routine is stopped because the linear', + ' function is increasing.') return * * Incorrect partition of the variables. * 115 continue write(ipdevc,1015) info 1015 format(/' Before a maximal basis spanning tree is searched, ', + ' the total number of variables partitioned in the',/, + ' fixed, superbasic and nonbasic sets ',i4,' differs', + ' from the total number of variables of the problem.') return * * The number of basic variables is incorrect. * 116 continue write(ipdevc,1016) info 1016 format(/' The number of basic variables ',i4,' is incorrect.') return * * The partition of the superbasic variables is incorrect. * 117 continue write(ipdevc,1017) info 1017 format(/' The total number of superbasic variables partitioned', + ' in the different insets ',i4,' differs from the',/, + ' total number of superbasics variables in the problem.') return * * The direction found is not descent. * 118 continue write(ipdevc,1018) 1018 format(/' The directional derivative at the beginning of the', + ' linesearch in non-negative.') * return end