Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
mpim-sw
cdo
Commits
e6776242
Commit
e6776242
authored
Aug 14, 2015
by
Uwe Schulzweida
Browse files
select: select also ps for variables on hybrid sigma pressure levels
parent
6b880ad4
Changes
2
Hide whitespace changes
Inline
Side-by-side
ChangeLog
View file @
e6776242
...
...
@@ -3,6 +3,10 @@
* using CDI library version 1.7.0
* Version 1.7.0 released
2015-08-14 Uwe Schulzweida
* select: select also ps for variables on hybrid sigma pressure levels
2015-08-12 Uwe Schulzweida
* selmon: does not work with negative years (bug fix) [report: Tim Brcher]
...
...
src/Select.c
View file @
e6776242
...
...
@@ -464,6 +464,31 @@ void par_check_word_flag(int npar, char **parlist, int *flaglist, const char *tx
}
int
vlist_get_psvarid
(
int
nvars
,
int
vlistID
,
int
zaxisID
)
{
int
psvarid
=
-
1
;
char
name
[
CDI_MAX_NAME
];
char
psname
[
CDI_MAX_NAME
];
psname
[
0
]
=
0
;
zaxisInqPsName
(
zaxisID
,
psname
);
if
(
psname
[
0
]
)
{
for
(
int
varID
=
0
;
varID
<
nvars
;
++
varID
)
{
vlistInqVarName
(
vlistID
,
varID
,
name
);
if
(
strcmp
(
name
,
psname
)
==
0
)
{
psvarid
=
varID
;
break
;
}
}
}
return
psvarid
;
}
void
*
Select
(
void
*
argument
)
{
int
streamID2
=
CDI_UNDEFID
;
...
...
@@ -473,13 +498,11 @@ void *Select(void *argument)
int
varID2
,
levelID2
;
int
recID
,
varID
,
levelID
;
int
iparam
;
int
nsel
;
int
vdate
,
vtime
;
int
last_year
=
-
999999999
;
char
paramstr
[
32
];
char
varname
[
CDI_MAX_NAME
];
char
stdname
[
CDI_MAX_NAME
];
char
**
argnames
=
NULL
;
int
vlistID0
=
-
1
,
vlistID2
=
-
1
;
int
i
;
int
result
=
FALSE
;
...
...
@@ -541,8 +564,8 @@ void *Select(void *argument)
operatorInputArg
(
cdoOperatorEnter
(
operatorID
));
nsel
=
operatorArgc
();
argnames
=
operatorArgv
();
int
nsel
=
operatorArgc
();
char
**
argnames
=
operatorArgv
();
if
(
cdoVerbose
)
for
(
i
=
0
;
i
<
nsel
;
i
++
)
...
...
@@ -688,6 +711,19 @@ void *Select(void *argument)
}
}
for
(
varID
=
0
;
varID
<
nvars
;
varID
++
)
{
if
(
vars
[
varID
]
)
{
zaxisID
=
vlistInqVarZaxis
(
vlistID1
,
varID
);
if
(
zaxisInqType
(
zaxisID
)
==
ZAXIS_HYBRID
)
{
int
psvarid
=
vlist_get_psvarid
(
nvars
,
vlistID1
,
zaxisID
);
if
(
psvarid
!=
-
1
&&
!
vars
[
psvarid
]
)
vars
[
psvarid
]
=
TRUE
;
}
}
}
for
(
varID
=
0
;
varID
<
nvars
;
varID
++
)
{
if
(
vars
[
varID
]
)
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment