00001
00002
00003
00004 #include "cddefines.h"
00005 #include "input.h"
00006 #include "optimize.h"
00007
00008
00009 void vary_input(bool *lgLimOK)
00010 {
00011 long int i,
00012 np;
00013
00014 DEBUG_ENTRY( "vary_input()" );
00015
00016
00017
00018
00019
00020
00021 fprintf( ioQQQ, " **************************************************\n" );
00022
00023
00024
00025 *lgLimOK = true;
00026
00027
00028 for( i=0; i < optimize.nvary; i++ )
00029 {
00030 bool lgLimitHit = false;
00031
00032 np = optimize.nvfpnt[i];
00033
00034
00035
00036
00037
00038
00039 if( optimize.vparm[0][i] < optimize.varang[i][0] ||
00040 optimize.vparm[0][i] > optimize.varang[i][1] )
00041 {
00042 *lgLimOK = false;
00043 lgLimitHit = true;
00044 }
00045
00046 optimize.vpused[i] = (realnum)MIN2(optimize.vparm[0][i],optimize.varang[i][1]);
00047 optimize.vpused[i] = (realnum)MAX2(optimize.vpused[i],optimize.varang[i][0]);
00048
00049
00050
00051 if( optimize.nvarxt[i] == 1 )
00052 {
00053
00054 sprintf( input.chCardSav[np] , optimize.chVarFmt[i], optimize.vparm[0][i] );
00055 }
00056
00057 else if( optimize.nvarxt[i] == 2 )
00058 {
00059
00060 sprintf( input.chCardSav[np], optimize.chVarFmt[i], optimize.vparm[0][i],
00061 optimize.vparm[1][i] );
00062 }
00063
00064 else if( optimize.nvarxt[i] == 3 )
00065 {
00066
00067 sprintf( input.chCardSav[np], optimize.chVarFmt[i], optimize.vparm[0][i],
00068 optimize.vparm[1][i], optimize.vparm[2][i] );
00069 }
00070
00071 else if( optimize.nvarxt[i] == 4 )
00072 {
00073
00074 sprintf( input.chCardSav[np], optimize.chVarFmt[i], optimize.vparm[0][i],
00075 optimize.vparm[1][i], optimize.vparm[2][i], optimize.vparm[3][i] );
00076 }
00077
00078 else if( optimize.nvarxt[i] == 5 )
00079 {
00080
00081 sprintf( input.chCardSav[np] , optimize.chVarFmt[i],
00082 optimize.vparm[0][i], optimize.vparm[1][i] , optimize.vparm[2][i] ,
00083 optimize.vparm[3][i] , optimize.vparm[4][i]);
00084 }
00085
00086 else
00087 {
00088 fprintf(ioQQQ,"The number of variable options on this line makes no sense to me5\n");
00089 cdEXIT(EXIT_FAILURE);
00090 }
00091
00092 fprintf( ioQQQ, " %s\n", input.chCardSav[np] );
00093 if( lgLimitHit )
00094 fprintf( ioQQQ, " >>> Limit to variable exceeded.\n" );
00095 }
00096
00097 return;
00098 }