Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
S
simc-file-input
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
This project is archived. Its data is
read-only
.
Show more breadcrumbs
jlab
simc-file-input
Commits
28a0e034
Commit
28a0e034
authored
Sep 24, 2018
by
Sylvester Joosten
Browse files
Options
Downloads
Patches
Plain Diff
bugfix
parent
a93127fb
No related branches found
No related tags found
No related merge requests found
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
.gitmodules
+3
-0
3 additions, 0 deletions
.gitmodules
CTP/thUtils.c
+594
-586
594 additions, 586 deletions
CTP/thUtils.c
nanocernlib
+1
-0
1 addition, 0 deletions
nanocernlib
trg_track.f
+1
-1
1 addition, 1 deletion
trg_track.f
with
599 additions
and
587 deletions
.gitmodules
0 → 100644
+
3
−
0
View file @
28a0e034
[submodule "nanocernlib"]
path = nanocernlib
url = https://github.com/sly2j/nanocernlib.git
This diff is collapsed.
Click to expand it.
CTP/thUtils.c
+
594
−
586
View file @
28a0e034
...
@@ -46,7 +46,8 @@
...
@@ -46,7 +46,8 @@
* Fix up potential ref to unallocated memory in thIDToken.
* Fix up potential ref to unallocated memory in thIDToken.
*
*
* Revision 1.4 1994/09/27 19:44:50 saw
* Revision 1.4 1994/09/27 19:44:50 saw
* Add fnmatch routine from BSD. Only use when OS doesn't have it (ultrix)
* Add fnmatch routine from BSD. Only use when OS doesn't have it
*(ultrix)
*
*
* Revision 1.3 1994/07/21 20:40:22 saw
* Revision 1.3 1994/07/21 20:40:22 saw
* In thCommas, ignore commas in quotes. Replace stderr with STDERR.
* In thCommas, ignore commas in quotes. Replace stderr with STDERR.
...
@@ -63,13 +64,13 @@
...
@@ -63,13 +64,13 @@
Routines used by thTest, thHist and thParm
Routines used by thTest, thHist and thParm
*/
*/
#include
<stdio.h>
#include
"thUtils.h"
#include
<string.h>
#include
<stdlib.h>
#include
"daVar.h"
#include
"daVar.h"
#include
"th.h"
#include
"th.h"
#include
"thInternal.h"
#include
"thInternal.h"
#include
"thUtils.h"
#include
<stdio.h>
#include
<stdlib.h>
#include
<string.h>
daVarStatus
thGetIndex
(
char
*
name
,
int
*
index
,
char
**
pptr
)
daVarStatus
thGetIndex
(
char
*
name
,
int
*
index
,
char
**
pptr
)
/* If the name has an array index, evaluate the index and return it to
/* If the name has an array index, evaluate the index and return it to
...
@@ -87,12 +88,14 @@ cleaned up.
...
@@ -87,12 +88,14 @@ cleaned up.
int
istyle
;
int
istyle
;
pbegin
=
nend
=
name
+
strlen
(
name
);
pbegin
=
nend
=
name
+
strlen
(
name
);
if
((
t
=
strchr
(
name
,
'('
)))
if
(
t
<
pbegin
)
{
if
((
t
=
strchr
(
name
,
'('
)))
if
(
t
<
pbegin
)
{
pbegin
=
t
;
pbegin
=
t
;
cright
=
')'
;
cright
=
')'
;
istyle
=
-
1
;
istyle
=
-
1
;
}
}
if
((
t
=
strchr
(
name
,
'['
)))
if
(
t
<
pbegin
)
{
if
((
t
=
strchr
(
name
,
'['
)))
if
(
t
<
pbegin
)
{
pbegin
=
t
;
pbegin
=
t
;
cright
=
']'
;
cright
=
']'
;
istyle
=
0
;
istyle
=
0
;
...
@@ -132,12 +135,15 @@ int thComSpace(char *s,char **args)
...
@@ -132,12 +135,15 @@ int thComSpace(char *s,char **args)
comma
=
1
;
comma
=
1
;
while
(
*
p
!=
'\0'
)
{
while
(
*
p
!=
'\0'
)
{
while
(
isspace
(
*
p
)
||
(
!
comma
&&
*
p
==
','
))
{
while
(
isspace
(
*
p
)
||
(
!
comma
&&
*
p
==
','
))
{
if
(
!
comma
)
comma
=
(
*
p
==
','
);
if
(
!
comma
)
comma
=
(
*
p
==
','
);
p
++
;
p
++
;
}
}
if
(
*
p
==
'\0'
)
break
;
if
(
*
p
==
'\0'
)
break
;
args
[
i
++
]
=
p
;
args
[
i
++
]
=
p
;
while
(
!
isspace
(
*
p
)
&&
*
p
!=
','
&&
*
p
!=
'\0'
)
p
++
;
while
(
!
isspace
(
*
p
)
&&
*
p
!=
','
&&
*
p
!=
'\0'
)
p
++
;
if
(
*
p
!=
'\0'
)
{
if
(
*
p
!=
'\0'
)
{
comma
=
(
*
p
==
','
);
comma
=
(
*
p
==
','
);
*
p
++
=
'\0'
;
*
p
++
=
'\0'
;
...
@@ -158,8 +164,10 @@ int thCommas(char *s,char **args){
...
@@ -158,8 +164,10 @@ int thCommas(char *s,char **args){
instring
=
0
;
instring
=
0
;
while
(
*
p
!=
0
)
{
while
(
*
p
!=
0
)
{
if
(
instring
&&
*
p
==
quotechar
)
{
if
(
instring
&&
*
p
==
quotechar
)
{
if
(
*
(
p
+
1
)
==
quotechar
)
p
++
;
if
(
*
(
p
+
1
)
==
quotechar
)
else
instring
=
0
;
p
++
;
else
instring
=
0
;
}
else
{
}
else
{
if
(
*
p
==
','
)
{
if
(
*
p
==
','
)
{
*
p
=
'\0'
;
*
p
=
'\0'
;
...
@@ -198,20 +206,25 @@ to signify an error.
...
@@ -198,20 +206,25 @@ to signify an error.
if
((
leftp
=
strchr
(
s
,
'('
)))
{
if
((
leftp
=
strchr
(
s
,
'('
)))
{
cright
=
')'
;
cright
=
')'
;
wleft
=
'['
;
wright
=
']'
;
wleft
=
'['
;
wright
=
']'
;
cstyle
=
1
;
cstyle
=
1
;
}
else
if
((
leftp
=
strchr
(
s
,
'['
)))
{
}
else
if
((
leftp
=
strchr
(
s
,
'['
)))
{
cright
=
']'
;
cright
=
']'
;
wleft
=
'('
;
wright
=
')'
;
wleft
=
'('
;
wright
=
')'
;
cstyle
=
0
;
cstyle
=
0
;
}
else
return
(
NULL
);
}
else
return
(
NULL
);
rightp
=
strchr
(
s
,
cright
);
rightp
=
strchr
(
s
,
cright
);
if
((
leftp
>=
rightp
)
||
strchr
(
s
,
wleft
)
||
strchr
(
s
,
wright
))
return
(
NULL
);
if
((
leftp
>=
rightp
)
||
strchr
(
s
,
wleft
)
||
strchr
(
s
,
wright
))
return
(
NULL
);
len
=
min
(
24
,
(
rightp
-
leftp
)
-
1
);
len
=
min
(
24
,
(
rightp
-
leftp
)
-
1
);
strncpy
(
sindex
,
leftp
+
1
,
len
);
strncpy
(
sindex
,
leftp
+
1
,
len
);
sindex
[
len
]
=
0
;
sindex
[
len
]
=
0
;
*
index
=
atol
(
sindex
);
*
index
=
atol
(
sindex
);
if
(
cstyle
)
(
*
index
)
--
;
if
(
cstyle
)
(
*
index
)
--
;
return
(
leftp
);
return
(
leftp
);
}
}
...
@@ -229,10 +242,11 @@ Allows hex constants as INT's */
...
@@ -229,10 +242,11 @@ Allows hex constants as INT's */
p
=
s
;
p
=
s
;
typ
=
TOKINT
;
typ
=
TOKINT
;
while
(
*
p
!=
'\0'
)
{
while
(
*
p
!=
'\0'
)
{
if
(
strchr
(
"()[]"
,
*
p
))
{
/* printf("%d\n",TOKARRAY); */
return
(
TOKARRAY
);}
if
(
strchr
(
"()[]"
,
*
p
))
{
/* printf("%d\n",TOKARRAY); */
return
(
TOKARRAY
);
}
if
(
typ
!=
TOKVAR
)
{
if
(
typ
!=
TOKVAR
)
{
switch
(
*
p
)
switch
(
*
p
)
{
{
case
'e'
:
case
'e'
:
case
'E'
:
case
'E'
:
if
(
nume
>
0
||
p
==
s
)
{
if
(
nume
>
0
||
p
==
s
)
{
...
@@ -246,13 +260,15 @@ Allows hex constants as INT's */
...
@@ -246,13 +260,15 @@ Allows hex constants as INT's */
case
'+'
:
case
'+'
:
case
'-'
:
case
'-'
:
break
;
break
;
case
'x'
:
case
'X'
:
case
'x'
:
case
'X'
:
if
(
p
==
s
||
*
(
p
-
1
)
!=
'0'
||
nume
>
0
)
if
(
p
==
s
||
*
(
p
-
1
)
!=
'0'
||
nume
>
0
)
typ
=
TOKVAR
;
typ
=
TOKVAR
;
else
else
nume
=
1
;
nume
=
1
;
default:
default:
if
(
!
isdigit
(
*
p
))
typ
=
TOKVAR
;
if
(
!
isdigit
(
*
p
))
typ
=
TOKVAR
;
break
;
break
;
}
}
}
}
...
@@ -270,16 +286,16 @@ char *thSpaceStrip(char *s)
...
@@ -270,16 +286,16 @@ char *thSpaceStrip(char *s)
p
=
t
=
s
;
p
=
t
=
s
;
while
(
*
s
!=
'\0'
)
{
while
(
*
s
!=
'\0'
)
{
if
(
*
s
!=
' '
)
*
t
++
=
*
s
++
;
if
(
*
s
!=
' '
)
else
*
s
++
;
*
t
++
=
*
s
++
;
else
*
s
++
;
}
}
*
t
=
'\0'
;
*
t
=
'\0'
;
return
(
p
);
return
(
p
);
}
}
int
thSpecial
(
char
*
line
,
char
*
default_class
)
int
thSpecial
(
char
*
line
,
char
*
default_class
)
{
/* Process special commands */
{
/* Process special commands */
char
*
s
,
*
p
;
char
*
s
,
*
p
;
char
*
command
;
char
*
command
;
char
*
arg
;
char
*
arg
;
...
@@ -292,21 +308,29 @@ int thSpecial(char *line, char *default_class)
...
@@ -292,21 +308,29 @@ int thSpecial(char *line, char *default_class)
int
i
;
int
i
;
s
=
line
;
s
=
line
;
while
(
isspace
(
*
s
)
&&
*
s
)
s
++
;
while
(
isspace
(
*
s
)
&&
*
s
)
if
(
*
s
!=
SPECIALCHAR
)
return
(
0
);
/* Not a special command */
s
++
;
if
(
*
s
!=
SPECIALCHAR
)
return
(
0
);
/* Not a special command */
/* Split line into command and argument */
/* Split line into command and argument */
s
++
;
s
++
;
while
(
isspace
(
*
s
)
&&
*
s
)
s
++
;
/* Skip to command */
while
(
isspace
(
*
s
)
&&
*
s
)
if
(
!*
s
)
return
(
1
);
/* Empty line */
s
++
;
/* Skip to command */
if
(
!*
s
)
return
(
1
);
/* Empty line */
/* s now points to the command */
/* s now points to the command */
p
=
s
+
1
;
p
=
s
+
1
;
while
(
!
isspace
(
*
p
)
&&
*
p
)
p
++
;
/* Skip to end of command */
while
(
!
isspace
(
*
p
)
&&
*
p
)
if
(
!*
p
)
return
(
1
);
/* No argument */
p
++
;
/* Skip to end of command */
if
(
!*
p
)
return
(
1
);
/* No argument */
command
=
malloc
(
p
-
s
+
1
);
command
=
malloc
(
p
-
s
+
1
);
strncpy
(
command
,
s
,
p
-
s
);
command
[
p
-
s
]
=
'\0'
;
strncpy
(
command
,
s
,
p
-
s
);
command
[
p
-
s
]
=
'\0'
;
s
=
p
;
s
=
p
;
while
(
isspace
(
*
s
)
&&
*
s
)
s
++
;
/* Skip to argument */
while
(
isspace
(
*
s
)
&&
*
s
)
s
++
;
/* Skip to argument */
if
(
!*
s
)
{
/* No argument */
if
(
!*
s
)
{
/* No argument */
free
(
command
);
free
(
command
);
return
(
1
);
return
(
1
);
...
@@ -321,7 +345,10 @@ int thSpecial(char *line, char *default_class)
...
@@ -321,7 +345,10 @@ int thSpecial(char *line, char *default_class)
*
s
=
0
;
*
s
=
0
;
class
=
s
+
1
;
class
=
s
+
1
;
s
=
class
;
s
=
class
;
while
(
*
s
)
{
tolower
(
*
s
);
s
++
;}
while
(
*
s
)
{
tolower
(
*
s
);
s
++
;
}
}
else
{
}
else
{
class
=
default_class
;
class
=
default_class
;
}
/* Should probably use a table here */
}
/* Should probably use a table here */
...
@@ -361,7 +388,8 @@ thVarCreate(char *s, int vartype, char **classlist, daVarStruct **varpp)
...
@@ -361,7 +388,8 @@ thVarCreate(char *s, int vartype, char **classlist, daVarStruct **varpp)
char
*
lb
;
char
*
lb
;
lb
=
strchr
(
s
,
'['
);
lb
=
strchr
(
s
,
'['
);
if
(
leftp
)
{
if
(
leftp
)
{
if
(
lb
&&
lb
<
leftp
)
leftp
=
lb
;
if
(
lb
&&
lb
<
leftp
)
leftp
=
lb
;
}
else
}
else
leftp
=
lb
;
leftp
=
lb
;
}
}
...
@@ -406,17 +434,16 @@ thVarCreate(char *s, int vartype, char **classlist, daVarStruct **varpp)
...
@@ -406,17 +434,16 @@ thVarCreate(char *s, int vartype, char **classlist, daVarStruct **varpp)
var
.
name
=
malloc
(
strlen
(
s
)
+
1
);
var
.
name
=
malloc
(
strlen
(
s
)
+
1
);
strcpy
(
var
.
name
,
s
);
strcpy
(
var
.
name
,
s
);
}
else
{
}
else
{
var
.
name
=
malloc
(
strlen
(
classlist
[
0
])
var
.
name
=
malloc
(
strlen
(
classlist
[
0
])
+
strlen
(
s
)
+
2
);
+
strlen
(
s
)
+
2
);
strcpy
(
var
.
name
,
classlist
[
0
]);
strcpy
(
var
.
name
,
classlist
[
0
]);
strcat
(
var
.
name
,
"."
);
strcat
(
var
.
name
,
"."
);
strcat
(
var
.
name
,
s
);
strcat
(
var
.
name
,
s
);
}
}
if
(
leftp
)
*
leftp
=
cleft
;
/* Restore left paren */
if
(
leftp
)
*
leftp
=
cleft
;
/* Restore left paren */
var
.
size
=
arsize
;
var
.
size
=
arsize
;
var
.
type
=
vartype
;
var
.
type
=
vartype
;
switch
(
vartype
)
switch
(
vartype
)
{
{
case
DAVARINT
:
/* How should we initialize the variables */
case
DAVARINT
:
/* How should we initialize the variables */
var
.
varptr
=
malloc
(
var
.
size
*
sizeof
(
DAINT
));
var
.
varptr
=
malloc
(
var
.
size
*
sizeof
(
DAINT
));
break
;
break
;
...
@@ -442,7 +469,8 @@ thVarCreate(char *s, int vartype, char **classlist, daVarStruct **varpp)
...
@@ -442,7 +469,8 @@ thVarCreate(char *s, int vartype, char **classlist, daVarStruct **varpp)
daVarLookupP
(
var
.
name
,
varpp
);
daVarLookupP
(
var
.
name
,
varpp
);
free
(
var
.
name
);
free
(
var
.
name
);
}
else
{
}
else
{
if
(
leftp
)
*
leftp
=
cleft
;
/* Restore left paren */
if
(
leftp
)
*
leftp
=
cleft
;
/* Restore left paren */
/* Already exists */
/* Already exists */
if
((
*
varpp
)
->
type
==
vartype
&&
(
*
varpp
)
->
size
==
arsize
)
{
if
((
*
varpp
)
->
type
==
vartype
&&
(
*
varpp
)
->
size
==
arsize
)
{
/* We are OK, return */
/* We are OK, return */
...
@@ -453,18 +481,21 @@ thVarCreate(char *s, int vartype, char **classlist, daVarStruct **varpp)
...
@@ -453,18 +481,21 @@ thVarCreate(char *s, int vartype, char **classlist, daVarStruct **varpp)
if
((
*
varpp
)
->
size
!=
arsize
||
(
*
varpp
)
->
type
!=
vartype
)
{
if
((
*
varpp
)
->
size
!=
arsize
||
(
*
varpp
)
->
type
!=
vartype
)
{
(
*
varpp
)
->
type
=
vartype
;
(
*
varpp
)
->
type
=
vartype
;
(
*
varpp
)
->
size
=
arsize
;
(
*
varpp
)
->
size
=
arsize
;
switch
((
*
varpp
)
->
type
)
switch
((
*
varpp
)
->
type
)
{
{
case
DAVARINT
:
case
DAVARINT
:
(
*
varpp
)
->
varptr
=
(
void
*
)
realloc
((
*
varpp
)
->
varptr
,
arsize
*
sizeof
(
DAINT
));
(
*
varpp
)
->
varptr
=
(
void
*
)
realloc
((
*
varpp
)
->
varptr
,
arsize
*
sizeof
(
DAINT
));
break
;
break
;
case
DAVARFLOAT
:
case
DAVARFLOAT
:
(
*
varpp
)
->
varptr
=
(
void
*
)
realloc
((
*
varpp
)
->
varptr
,
arsize
*
sizeof
(
DAFLOAT
));
(
*
varpp
)
->
varptr
=
(
void
*
)
realloc
((
*
varpp
)
->
varptr
,
arsize
*
sizeof
(
DAFLOAT
));
break
;
break
;
case
DAVARDOUBLE
:
case
DAVARDOUBLE
:
(
*
varpp
)
->
varptr
=
(
void
*
)
realloc
((
*
varpp
)
->
varptr
,
arsize
*
sizeof
(
DADOUBLE
));
(
*
varpp
)
->
varptr
=
(
void
*
)
realloc
((
*
varpp
)
->
varptr
,
arsize
*
sizeof
(
DADOUBLE
));
case
DAVARSTRING
:
case
DAVARSTRING
:
(
*
varpp
)
->
varptr
=
(
void
*
)
realloc
((
*
varpp
)
->
varptr
,
arsize
*
sizeof
(
char
*
));
(
*
varpp
)
->
varptr
=
(
void
*
)
realloc
((
*
varpp
)
->
varptr
,
arsize
*
sizeof
(
char
*
));
*
((
char
*
)
var
.
varptr
)
=
'\0'
;
*
((
char
*
)
var
.
varptr
)
=
'\0'
;
break
;
break
;
}
}
...
@@ -475,11 +506,8 @@ thVarCreate(char *s, int vartype, char **classlist, daVarStruct **varpp)
...
@@ -475,11 +506,8 @@ thVarCreate(char *s, int vartype, char **classlist, daVarStruct **varpp)
return
(
S_SUCCESS
);
return
(
S_SUCCESS
);
}
}
#ifdef OLD
#ifdef OLD
int
thGetMode
(
char
*
s
,
enum
MODES
mode
,
enum
MODES
*
nmode
,
char
**
blocknamep
)
int
thGetMode
(
char
*
s
,
enum
MODES
mode
,
enum
MODES
*
nmode
,
char
**
blocknamep
)
{
{
char
*
args
[
20
];
char
*
args
[
20
];
int
nargs
;
int
nargs
;
enum
MODES
omod
e
;
enum
MODES
omod
e
;
...
@@ -491,11 +519,13 @@ int thGetMode(char *s, enum MODES mode, enum MODES *nmode, char **blocknamep)
...
@@ -491,11 +519,13 @@ int thGetMode(char *s, enum MODES mode, enum MODES *nmode, char **blocknamep)
*
blocknamep
=
0
;
*
blocknamep
=
0
;
command
=
s
;
command
=
s
;
while
(
isspace
(
*
command
))
command
++
;
while
(
isspace
(
*
command
))
command
++
;
last
=
command
;
last
=
command
;
while
(
!
isspace
(
*
last
)
&&
*
last
)
last
++
;
while
(
!
isspace
(
*
last
)
&&
*
last
)
if
(
strncasecmp
(
command
,
"begin"
,
last
-
command
)
==
0
last
++
;
||
strncasecmp
(
command
,
"end"
,
last
-
command
)
==
0
){
if
(
strncasecmp
(
command
,
"begin"
,
last
-
command
)
==
0
||
strncasecmp
(
command
,
"end"
,
last
-
command
)
==
0
)
{
nargs
=
thComSpace
(
s
,
args
);
nargs
=
thComSpace
(
s
,
args
);
if
(
nargs
<
2
)
{
if
(
nargs
<
2
)
{
*
nmode
=
M_BAD
;
*
nmode
=
M_BAD
;
...
@@ -503,8 +533,8 @@ int thGetMode(char *s, enum MODES mode, enum MODES *nmode, char **blocknamep)
...
@@ -503,8 +533,8 @@ int thGetMode(char *s, enum MODES mode, enum MODES *nmode, char **blocknamep)
}
}
if
(
strcasecmp
(
"test"
,
args
[
1
])
==
0
)
if
(
strcasecmp
(
"test"
,
args
[
1
])
==
0
)
*
nmode
=
M_TES
;
*
nmode
=
M_TES
;
else
if
(
strcasecmp
(
"hist"
,
args
[
1
])
==
0
else
if
(
strcasecmp
(
"hist"
,
args
[
1
])
==
0
||
||
strcasecmp
(
"histogram"
,
args
[
1
])
==
0
)
strcasecmp
(
"histogram"
,
args
[
1
])
==
0
)
*
nmode
=
M_HIS
;
*
nmode
=
M_HIS
;
else
if
(
strcasecmp
(
"parameter"
,
args
[
1
])
==
0
)
else
if
(
strcasecmp
(
"parameter"
,
args
[
1
])
==
0
)
*
nmode
=
M_PAR
;
*
nmode
=
M_PAR
;
...
@@ -559,10 +589,8 @@ int thTokToPtr(char *token, int create, int intonly, daVarStruct *varp)
...
@@ -559,10 +589,8 @@ int thTokToPtr(char *token, int create, int intonly, daVarStruct *varp)
var
.
rhook
=
0
;
var
.
rhook
=
0
;
var
.
whook
=
0
;
var
.
whook
=
0
;
var
.
opaque
=
0
;
var
.
opaque
=
0
;
switch
(
toktyp
)
switch
(
toktyp
)
{
{
case
TOKINT
:
{
case
TOKINT
:
{
register
DAINT
*
longp
;
register
DAINT
*
longp
;
longp
=
malloc
(
sizeof
(
DAINT
));
longp
=
malloc
(
sizeof
(
DAINT
));
*
longp
=
atol
(
token
);
*
longp
=
atol
(
token
);
...
@@ -571,10 +599,8 @@ int thTokToPtr(char *token, int create, int intonly, daVarStruct *varp)
...
@@ -571,10 +599,8 @@ int thTokToPtr(char *token, int create, int intonly, daVarStruct *varp)
var
.
size
=
1
;
var
.
size
=
1
;
/* daVarRegister(token,longp,DAVARINT,1,DAVAR_READONLY);*/
/* daVarRegister(token,longp,DAVARINT,1,DAVAR_READONLY);*/
thVarRegister
((
int
)
0
,
&
var
);
thVarRegister
((
int
)
0
,
&
var
);
}
}
break
;
break
;
case
TOKFLOAT
:
{
case
TOKFLOAT
:
{
register
DAFLOAT
*
floatp
;
register
DAFLOAT
*
floatp
;
floatp
=
malloc
(
sizeof
(
DAFLOAT
));
floatp
=
malloc
(
sizeof
(
DAFLOAT
));
*
floatp
=
atof
(
token
);
*
floatp
=
atof
(
token
);
...
@@ -583,10 +609,8 @@ int thTokToPtr(char *token, int create, int intonly, daVarStruct *varp)
...
@@ -583,10 +609,8 @@ int thTokToPtr(char *token, int create, int intonly, daVarStruct *varp)
var
.
size
=
1
;
var
.
size
=
1
;
/* daVarRegister(token,floatp,DAVARFLOAT,1,DAVAR_READONLY);*/
/* daVarRegister(token,floatp,DAVARFLOAT,1,DAVAR_READONLY);*/
thVarRegister
((
int
)
0
,
&
var
);
thVarRegister
((
int
)
0
,
&
var
);
}
}
break
;
break
;
case
TOKVAR
:
{
case
TOKVAR
:
{
register
DAINT
*
longp
;
register
DAINT
*
longp
;
longp
=
malloc
(
sizeof
(
DAINT
));
longp
=
malloc
(
sizeof
(
DAINT
));
var
.
varptr
=
longp
;
var
.
varptr
=
longp
;
...
@@ -594,12 +618,12 @@ int thTokToPtr(char *token, int create, int intonly, daVarStruct *varp)
...
@@ -594,12 +618,12 @@ int thTokToPtr(char *token, int create, int intonly, daVarStruct *varp)
var
.
size
=
1
;
var
.
size
=
1
;
/* daVarRegister(token,intp,DAVARINT,1,DAVAR_READWRITE);*/
/* daVarRegister(token,intp,DAVARINT,1,DAVAR_READWRITE);*/
thVarRegister
((
int
)
0
,
&
var
);
thVarRegister
((
int
)
0
,
&
var
);
}
}
break
;
break
;
case
TOKARRAY
:
{
case
TOKARRAY
:
{
/* Only create if underlying variable exists. */
/* Only create if underlying variable exists. */
char
*
p
;
int
index
;
char
leftp
;
char
*
p
;
int
index
;
char
leftp
;
p
=
thTokenArray
(
token
,
&
index
);
p
=
thTokenArray
(
token
,
&
index
);
leftp
=
*
p
;
/* Save ( or [ character */
leftp
=
*
p
;
/* Save ( or [ character */
*
p
=
0
;
*
p
=
0
;
...
@@ -607,20 +631,18 @@ int thTokToPtr(char *token, int create, int intonly, daVarStruct *varp)
...
@@ -607,20 +631,18 @@ int thTokToPtr(char *token, int create, int intonly, daVarStruct *varp)
if
(
lookstat
!=
S_SUCCESS
)
if
(
lookstat
!=
S_SUCCESS
)
lookstat
=
thVarLookup
(
token
,
&
var
);
lookstat
=
thVarLookup
(
token
,
&
var
);
if
(
lookstat
==
S_SUCCESS
&&
intonly
&&
(
var
.
type
!=
DAVARINT
))
{
if
(
lookstat
==
S_SUCCESS
&&
intonly
&&
(
var
.
type
!=
DAVARINT
))
{
fprintf
(
STDERR
,
fprintf
(
STDERR
,
"Array %s must be a preregistered LONGINT array.
\n
"
,
"Array %s must be a preregistered LONGINT array.
\n
"
,
token
);
token
);
return
(
S_FAILURE
);
return
(
S_FAILURE
);
}
else
{
}
else
{
if
(
index
>=
var
.
size
)
{
if
(
index
>=
var
.
size
)
{
fprintf
(
STDERR
,
fprintf
(
STDERR
,
"Index %d exceeds %s array length of %d
\n
"
,
index
,
"Index %d exceeds %s array length of %d
\n
"
,
index
,
token
,
var
.
size
);
token
,
var
.
size
);
return
(
S_FAILURE
);
return
(
S_FAILURE
);
}
}
}
}
*
p
=
leftp
;
*
p
=
leftp
;
switch
(
var
.
type
)
switch
(
var
.
type
)
{
{
case
DAVARINT
:
case
DAVARINT
:
var
.
varptr
=
(
int
*
)(
var
.
varptr
)
+
index
;
var
.
varptr
=
(
int
*
)(
var
.
varptr
)
+
index
;
var
.
type
=
DAVARINT
;
var
.
type
=
DAVARINT
;
...
@@ -633,8 +655,7 @@ int thTokToPtr(char *token, int create, int intonly, daVarStruct *varp)
...
@@ -633,8 +655,7 @@ int thTokToPtr(char *token, int create, int intonly, daVarStruct *varp)
break
;
break
;
default:
default:
*
p
=
0
;
*
p
=
0
;
fprintf
(
STDERR
,
"Illegal type %d for variable %s
\n
"
fprintf
(
STDERR
,
"Illegal type %d for variable %s
\n
"
,
var
.
type
,
token
);
,
var
.
type
,
token
);
return
(
S_FAILURE
);
return
(
S_FAILURE
);
}
}
break
;
break
;
...
@@ -655,12 +676,12 @@ int thTokToPtr(char *token, int create, int intonly, daVarStruct *varp)
...
@@ -655,12 +676,12 @@ int thTokToPtr(char *token, int create, int intonly, daVarStruct *varp)
return
(
S_SUCCESS
);
return
(
S_SUCCESS
);
}
}
#endif
#endif
int
thCleanLine
(
char
*
s
)
int
thCleanLine
(
char
*
s
)
{
{
int
blank
;
int
blank
;
blank
=
1
;
blank
=
1
;
while
(
*
s
!=
0
)
{
while
(
*
s
!=
0
)
{
if
(
isspace
(
*
s
))
*
s
=
' '
;
/* Remove tabs, ... */
if
(
isspace
(
*
s
))
*
s
=
' '
;
/* Remove tabs, ... */
else
if
(
*
s
==
COMCHAR
)
{
else
if
(
*
s
==
COMCHAR
)
{
*
s
=
0
;
*
s
=
0
;
break
;
break
;
...
@@ -691,13 +712,11 @@ int thCleanLine(char *s)
...
@@ -691,13 +712,11 @@ int thCleanLine(char *s)
}
}
return(d);
return(d);
}*/
}*/
int
argtoInt
(
daVarStruct
*
x
)
int
argtoInt
(
daVarStruct
*
x
)
{
{
DAINT
l
;
DAINT
l
;
DAFLOAT
d
;
DAFLOAT
d
;
switch
(
x
->
type
)
switch
(
x
->
type
)
{
{
case
DAVARINT
:
case
DAVARINT
:
l
=
*
(
DAINT
*
)
x
->
varptr
;
l
=
*
(
DAINT
*
)
x
->
varptr
;
break
;
break
;
...
@@ -716,7 +735,6 @@ int argtoInt(daVarStruct *x)
...
@@ -716,7 +735,6 @@ int argtoInt(daVarStruct *x)
return
(
l
);
return
(
l
);
}
}
/*
/*
strstr - public-domain implementation of standard C library function
strstr - public-domain implementation of standard C library function
...
@@ -746,14 +764,14 @@ int argtoInt(daVarStruct *x)
...
@@ -746,14 +764,14 @@ int argtoInt(daVarStruct *x)
#define ZAP
#define ZAP
#endif
#endif
#include
<stddef.h>
/* defines size_t and NULL */
#include
<limits.h>
/* defines UCHAR_MAX */
#include
<limits.h>
/* defines UCHAR_MAX */
#include
<stddef.h>
/* defines size_t and NULL */
#ifdef ZAP
#ifdef ZAP
typedef
void
*
pointer
;
typedef
void
*
pointer
;
/* Not clear why we need to do this at all */
/* Not clear why we need to do this at all */
#ifndef linux
#ifndef linux
extern
pointer
memset
(
pointer
,
int
,
size_t
);
//
extern pointer memset( pointer, int, size_t );
#endif
#endif
#endif
#endif
...
@@ -818,7 +836,8 @@ strcasestr(const char *s1, const char *s2 )
...
@@ -818,7 +836,8 @@ strcasestr(const char *s1, const char *s2 )
c
=
UCHAR_MAX
;
c
=
UCHAR_MAX
;
do
do
if
(
!
isupper
(
c
))
shift
[
c
]
=
m
-
shift
[
c
];
if
(
!
isupper
(
c
))
shift
[
c
]
=
m
-
shift
[
c
];
while
(
--
c
>
0
);
while
(
--
c
>
0
);
/* Note: shift[0] is still undefined at this point. */
/* Note: shift[0] is still undefined at this point. */
...
@@ -830,10 +849,8 @@ strcasestr(const char *s1, const char *s2 )
...
@@ -830,10 +849,8 @@ strcasestr(const char *s1, const char *s2 )
/* Try to find the pattern in the text string: */
/* Try to find the pattern in the text string: */
for
(
top
=
tx
=
(
cuc
*
)
s1
;
;
tx
+=
shift
[
tolower
(
*
(
top
=
t
))]
)
for
(
top
=
tx
=
(
cuc
*
)
s1
;;
tx
+=
shift
[
tolower
(
*
(
top
=
t
))])
{
{
for
(
t
=
tx
,
p
=
(
cuc
*
)
s2
;;
++
t
,
++
p
)
{
for
(
t
=
tx
,
p
=
(
cuc
*
)
s2
;
;
++
t
,
++
p
)
{
if
(
*
p
==
EOS
)
/* entire pattern matched */
if
(
*
p
==
EOS
)
/* entire pattern matched */
return
(
char
*
)
tx
;
return
(
char
*
)
tx
;
...
@@ -849,13 +866,11 @@ strcasestr(const char *s1, const char *s2 )
...
@@ -849,13 +866,11 @@ strcasestr(const char *s1, const char *s2 )
if
(
*
t
==
EOS
)
if
(
*
t
==
EOS
)
return
NULL
;
/* no match */
return
NULL
;
/* no match */
}
}
while
(
++
t
-
tx
!=
m
);
/* < */
while
(
++
t
-
tx
!=
m
);
/* < */
}
}
}
}
void
thAddVarToList
(
daVarStructList
**
head
,
daVarStruct
*
varp
)
void
thAddVarToList
(
daVarStructList
**
head
,
daVarStruct
*
varp
)
{
{
daVarStructList
*
nextptr
;
daVarStructList
*
nextptr
;
if
(
head
==
0
)
{
if
(
head
==
0
)
{
...
@@ -927,9 +942,7 @@ static char sccsid[] = "@(#)fnmatch.c 8.2 (Berkeley) 4/16/94";
...
@@ -927,9 +942,7 @@ static char sccsid[] = "@(#)fnmatch.c 8.2 (Berkeley) 4/16/94";
/*static const char *rangematch __P((const char *, int, int));*/
/*static const char *rangematch __P((const char *, int, int));*/
static
const
char
*
rangematch
(
const
char
*
,
int
,
int
);
static
const
char
*
rangematch
(
const
char
*
,
int
,
int
);
int
int
fnmatch
(
pattern
,
string
,
flags
)
const
char
*
pattern
,
*
string
;
fnmatch
(
pattern
,
string
,
flags
)
const
char
*
pattern
,
*
string
;
int
flags
;
int
flags
;
{
{
const
char
*
stringstart
;
const
char
*
stringstart
;
...
@@ -964,8 +977,7 @@ fnmatch(pattern, string, flags)
...
@@ -964,8 +977,7 @@ fnmatch(pattern, string, flags)
/* Optimize for pattern with * at end or before /. */
/* Optimize for pattern with * at end or before /. */
if
(
c
==
EOS
)
if
(
c
==
EOS
)
if
(
flags
&
FNM_PATHNAME
)
if
(
flags
&
FNM_PATHNAME
)
return
(
strchr
(
string
,
'/'
)
==
NULL
?
return
(
strchr
(
string
,
'/'
)
==
NULL
?
0
:
FNM_NOMATCH
);
0
:
FNM_NOMATCH
);
else
else
return
(
0
);
return
(
0
);
else
if
(
c
==
'/'
&&
flags
&
FNM_PATHNAME
)
{
else
if
(
c
==
'/'
&&
flags
&
FNM_PATHNAME
)
{
...
@@ -988,8 +1000,7 @@ fnmatch(pattern, string, flags)
...
@@ -988,8 +1000,7 @@ fnmatch(pattern, string, flags)
return
(
FNM_NOMATCH
);
return
(
FNM_NOMATCH
);
if
(
*
string
==
'/'
&&
flags
&
FNM_PATHNAME
)
if
(
*
string
==
'/'
&&
flags
&
FNM_PATHNAME
)
return
(
FNM_NOMATCH
);
return
(
FNM_NOMATCH
);
if
((
pattern
=
if
((
pattern
=
rangematch
(
pattern
,
*
string
,
flags
))
==
NULL
)
rangematch
(
pattern
,
*
string
,
flags
))
==
NULL
)
return
(
FNM_NOMATCH
);
return
(
FNM_NOMATCH
);
++
string
;
++
string
;
break
;
break
;
...
@@ -1009,9 +1020,7 @@ fnmatch(pattern, string, flags)
...
@@ -1009,9 +1020,7 @@ fnmatch(pattern, string, flags)
/* NOTREACHED */
/* NOTREACHED */
}
}
static
const
char
*
static
const
char
*
rangematch
(
pattern
,
test
,
flags
)
const
char
*
pattern
;
rangematch
(
pattern
,
test
,
flags
)
const
char
*
pattern
;
int
test
,
flags
;
int
test
,
flags
;
{
{
int
negate
,
ok
;
int
negate
,
ok
;
...
@@ -1032,8 +1041,7 @@ rangematch(pattern, test, flags)
...
@@ -1032,8 +1041,7 @@ rangematch(pattern, test, flags)
c
=
*
pattern
++
;
c
=
*
pattern
++
;
if
(
c
==
EOS
)
if
(
c
==
EOS
)
return
(
NULL
);
return
(
NULL
);
if
(
*
pattern
==
'-'
if
(
*
pattern
==
'-'
&&
(
c2
=
*
(
pattern
+
1
))
!=
EOS
&&
c2
!=
']'
)
{
&&
(
c2
=
*
(
pattern
+
1
))
!=
EOS
&&
c2
!=
']'
)
{
pattern
+=
2
;
pattern
+=
2
;
if
(
c2
==
'\\'
&&
!
(
flags
&
FNM_NOESCAPE
))
if
(
c2
==
'\\'
&&
!
(
flags
&
FNM_NOESCAPE
))
c2
=
*
pattern
++
;
c2
=
*
pattern
++
;
...
...
This diff is collapsed.
Click to expand it.
nanocernlib
@
60d4533e
Subproject commit 60d4533ecaff8a49e71981f7c419fdd910a9e767
This diff is collapsed.
Click to expand it.
trg_track.f
+
1
−
1
View file @
28a0e034
...
@@ -445,7 +445,7 @@ CGAW B_field_z(iz,ir) = 0.0
...
@@ -445,7 +445,7 @@ CGAW B_field_z(iz,ir) = 0.0
*
*
SUBROUTINE
trgDeriv
(
u
,
dudt
,
spect
)
SUBROUTINE
trgDeriv
(
u
,
dudt
,
spect
)
IMPLICIT
NONE
IMPLICIT
NONE
REAL
*
8
u
(
9
),
dudt
(
9
)
REAL
*
8
u
(
6
),
dudt
(
9
)
*
--
calculate
the
derivatives
du
(
i
)/
dt
for
the
runke
kutta
routine
*
--
calculate
the
derivatives
du
(
i
)/
dt
for
the
runke
kutta
routine
*
*
*
Parameter
:
*
Parameter
:
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
sign in
to comment