52 extern std::ofstream 
ofile;
   111     const char* ofname = 
"clparse.out";
   113     ofile << 
"Output file open\n";
   117     std::ifstream istr(fname);
   119     while (line.
readLine(istr) && ! istr.eof())
   123         for (
G4int i=0; i < ntokens; i++)
   150     while (!(token1=next(
"\"")).isNull())
   155             tokens[ntokens++] = token1;
   160             while (!(token2=lev2()).isNull())
   162                 tokens[ntokens] = token2;
   179     const char* context = tokens[0];
   180     const char* routine = tokens[1];
   181     const char* wcard = 
"*";
   185     if ((select != 0) && (select != wcard))
   187       if ( strcmp(select,context) )  { 
return; }
   192     ofile << 
"Do routine " << routine << 
" in context " << context << 
G4endl;
   194     if ( !strcmp(routine,
"GSVOLU") ) { 
PG4gsvolu(&tokens[2]); 
return;}
   195     if ( !strcmp(routine,
"GSPOS") )  { 
PG4gspos (&tokens[2]); 
return;}
   196     if ( !strcmp(routine,
"GSPOSP") ) { 
PG4gsposp(&tokens[2]); 
return;}
   197     if ( !strcmp(routine,
"GSATT") )  { 
PG4gsatt (&tokens[2]); 
return;}
   198     if ( !strcmp(routine,
"GSROTM") ) { 
PG4gsrotm(&tokens[2]); 
return;}
   199     if ( !strcmp(routine,
"GSDVN") )  { 
PG4gsdvn (&tokens[2]); 
return;}
   200     if ( !strcmp(routine,
"GSDVT") )  { 
PG4gsdvt (&tokens[2]); 
return;}
   201     if ( !strcmp(routine,
"GSDVX") )  { 
PG4gsdvx (&tokens[2]); 
return;}
   202     if ( !strcmp(routine,
"GSDVN2") ) { 
PG4gsdvn2(&tokens[2]); 
return;}
   203     if ( !strcmp(routine,
"GSDVT2") ) { 
PG4gsdvt2(&tokens[2]); 
return;}
   204     if ( !strcmp(routine,
"GSMATE") ) { 
PG4gsmate(&tokens[2]); 
return;}
   205     if ( !strcmp(routine,
"GSMIXT") ) { 
PG4gsmixt(&tokens[2]); 
return;}
   206     if ( !strcmp(routine,
"GSTMED") ) { 
PG4gstmed(&tokens[2]); 
return;}
   207     if ( !strcmp(routine,
"GSTPAR") ) { 
PG4gstpar(&tokens[2]); 
return;}
   208     if ( !strcmp(routine,
"GSPART") ) { 
PG4gspart(&tokens[2]); 
return;}
   209     if ( !strcmp(routine,
"GSDK") )   { 
PG4gsdk  (&tokens[2]); 
return;}
   210     if ( !strcmp(routine,
"GSDET") )  { 
PG4gsdet (&tokens[2]); 
return;}
   211     if ( !strcmp(routine,
"GSDETV") ) { 
PG4gsdetv(&tokens[2]); 
return;}
   212     if ( !strcmp(routine,
"GSDETA") ) { 
PG4gsdeta(&tokens[2]); 
return;}
   213     if ( !strcmp(routine,
"GSDETH") ) { 
PG4gsdeth(&tokens[2]); 
return;}
   214     if ( !strcmp(routine,
"GSDETD") ) { 
PG4gsdetd(&tokens[2]); 
return;}
   215     if ( !strcmp(routine,
"GSDETU") ) { 
PG4gsdetu(&tokens[2]); 
return;}
   216     if ( !strcmp(routine,
"GGCLOS") ) { 
PG4ggclos(); 
return;}
   228     G4int i =0, ipt = 0, k = 0;
   229     G4int ni =0, nr = 0, nq = 0;
   230     while (ptypes[i] != 
'\0')
   235                 Ipar[ni] = atoi(tokens[ipt].data());
   240                 Rpar[nr] = atof(tokens[ipt].data());
   244                 Spar[nq] = tokens[ipt];
   248                 for (k=0; k < 
narray; k++)
   250                     Ipar[ni] = atoi(tokens[ipt].data());
   255                 for (k=0; k < 
narray; k++) 
   257                     Rpar[nr] = atof(tokens[ipt].data()); 
   265                 narray = 3 * std::abs(narray);
   266                 for (k=0; k < 
narray; k++) 
   268                     Rpar[nr] = atof(tokens[ipt].data()); 
   273                 for (k=0; k < 
narray; k++)
   275                     Spar[nq] = tokens[ipt];
   280                 ofile << 
"unidentified ptype '" << ptypes[i] << 
G4endl;
 void PG4gsvolu(G4String *tokens)
 
void PG4gspos(G4String *tokens)
 
void PG4gsdetd(G4String *tokens)
 
void PG4gstmed(G4String *tokens)
 
void PG4gsdvt2(G4String *tokens)
 
void PG4gsposp(G4String *tokens)
 
G3SensVolVector G3SensVol
 
void PG4gsdk(G4String *tokens)
 
void PG4gsdetv(G4String *tokens)
 
void PG4gstpar(G4String *tokens)
 
void PG4gsdvt(G4String *tokens)
 
std::istream & readLine(std::istream &, G4bool skipWhite=true)
 
void PG4gsdeth(G4String *tokens)
 
std::vector< G4LogicalVolume * > G3SensVolVector
 
G4int G3CLTokens(G4String *line, G4String *tokens)
 
void PG4gsmixt(G4String *tokens)
 
void PG4gsrotm(G4String *tokens)
 
void PG4gsmate(G4String *tokens)
 
void G3CLRead(G4String &fname, char *select=0)
 
void PG4gsdvx(G4String *tokens)
 
void G3CLEval(G4String *tokens, char *select)
 
void PG4gspart(G4String *tokens)
 
void PG4gsatt(G4String *tokens)
 
void PG4gsdvn(G4String *tokens)
 
void PG4gsdetu(G4String *tokens)
 
void G3fillParams(G4String *tokens, const char *ptypes)
 
void PG4gsdet(G4String *tokens)
 
void PG4gsdvn2(G4String *tokens)
 
void PG4gsdeta(G4String *tokens)