Commit c0a2aca5 authored by Uwe Schulzweida's avatar Uwe Schulzweida
Browse files

Docu update

parent 89071f73
......@@ -67,10 +67,8 @@ doc/tex/mod/EcaCwdi -text
doc/tex/mod/EcaCwfi -text
doc/tex/mod/EcaEtr -text
doc/tex/mod/EcaFd -text
doc/tex/mod/EcaFdns -text
doc/tex/mod/EcaGsl -text
doc/tex/mod/EcaHd -text
doc/tex/mod/EcaHurr -text
doc/tex/mod/EcaHwdi -text
doc/tex/mod/EcaHwfi -text
doc/tex/mod/EcaId -text
......@@ -88,9 +86,6 @@ doc/tex/mod/EcaRr1 -text
doc/tex/mod/EcaRx1day -text
doc/tex/mod/EcaRx5day -text
doc/tex/mod/EcaSdii -text
doc/tex/mod/EcaStrbre -text
doc/tex/mod/EcaStrgal -text
doc/tex/mod/EcaStrwin -text
doc/tex/mod/EcaSu -text
doc/tex/mod/EcaTg10p -text
doc/tex/mod/EcaTg90p -text
......@@ -102,6 +97,7 @@ doc/tex/mod/EcaTx90p -text
doc/tex/mod/Enlarge -text
doc/tex/mod/Ensstat -text
doc/tex/mod/Exprf -text
doc/tex/mod/Fdns -text
doc/tex/mod/Filedes -text
doc/tex/mod/Fillmiss -text
doc/tex/mod/Fldstat -text
......@@ -111,6 +107,7 @@ doc/tex/mod/Hi -text
doc/tex/mod/Histogram -text
doc/tex/mod/Hourpctl -text
doc/tex/mod/Hourstat -text
doc/tex/mod/Hurr -text
doc/tex/mod/Info -text
doc/tex/mod/Input -text
doc/tex/mod/Intgrid -text
......@@ -157,6 +154,9 @@ doc/tex/mod/Specinfo -text
doc/tex/mod/Spectral -text
doc/tex/mod/Split -text
doc/tex/mod/Splittime -text
doc/tex/mod/Strbre -text
doc/tex/mod/Strgal -text
doc/tex/mod/Strwin -text
doc/tex/mod/Subtrend -text
doc/tex/mod/Timpctl -text
doc/tex/mod/Timsort -text
......
......@@ -381,8 +381,12 @@ Operator catalog:
Vargen random Create a field with random values
Rotuv rotuvb Backward rotation
Mastrfu mastrfu Mass stream function
Hi hi Humidity index (C)
Wct wct Windchill temperature (C)
Fdns fdns Frost days where no snow index per time period
Strwin strwin Strong wind days index per time period
Strbre strbre Strong breeze days index per time period
Strgal strgal Strong gale days index per time period
Hurr hurr Hurricane days index per time period
-------------------------------------------------------------
ECA indices
-------------------------------------------------------------
......@@ -394,7 +398,6 @@ Operator catalog:
EcaCwfi eca_cwfi Cold-spell days index wrt 10th percentile of reference period
EcaEtr eca_etr Intra-period extreme temperature range
EcaFd eca_fd Frost days index per time period
EcaFdns eca_fdns Frost days where no snow index per time period
EcaGsl eca_gsl Growing season length index
EcaHd eca_hd Heating degree days per time period
EcaHwdi eca_hwdi Heat wave duration index wrt mean of reference period
......@@ -414,10 +417,6 @@ Operator catalog:
EcaRx1day eca_rx1day Highest one day precipitation amount per time period
EcaRx5day eca_rx5day Highest five-day precipitation amount per time period
EcaSdii eca_sdii Simple daily intensity index per time period
EcaStrwin eca_strwin Strong wind days index per time period
EcaStrbre eca_strbre Strong breeze days index per time period
EcaStrgal eca_strgal Strong gale days index per time period
EcaHurr eca_hurr Hurricane days index per time period
EcaSu eca_su Summer days index per time period
EcaTg10p eca_tg10p Cold days percent wrt 10th percentile of reference period
EcaTg90p eca_tg90p Warm days percent wrt 90th percentile of reference period
......
No preview for this file type
......@@ -84,8 +84,12 @@ Timsort Miscellaneous
Vargen Miscellaneous
Rotuv Miscellaneous
Mastrfu Miscellaneous
Hi Miscellaneous
Wct Miscellaneous
Fdns Miscellaneous
Strwin Miscellaneous
Strbre Miscellaneous
Strgal Miscellaneous
Hurr Miscellaneous
EcaCdd ECA indices
EcaCfd ECA indices
EcaCsu ECA indices
......@@ -94,7 +98,6 @@ EcaCwdi ECA indices
EcaCwfi ECA indices
EcaEtr ECA indices
EcaFd ECA indices
EcaFdns ECA indices
EcaGsl ECA indices
EcaHd ECA indices
EcaHwdi ECA indices
......@@ -114,10 +117,6 @@ EcaRr1 ECA indices
EcaRx1day ECA indices
EcaRx5day ECA indices
EcaSdii ECA indices
EcaStrwin ECA indices
EcaStrbre ECA indices
EcaStrgal ECA indices
EcaHurr ECA indices
EcaSu ECA indices
EcaTg10p ECA indices
EcaTg90p ECA indices
......
@BeginModule
@NewPage
@Name = EcaFdns
@Name = Fdns
@Title = Frost days where no snow index per time period
@Section = ECA indices
@Class = ECA index
@Section = Miscellaneous
@Arguments = ifile1 ifile2 ofile
@Operators = eca_fdns
@Operators = fdns
@BeginDescription
Let @file{ifile1} be a time series of daily minimum temperatures TN
......@@ -18,6 +16,6 @@ the last contributing time step in @file{ifile}.
@EndModule
@BeginOperator_eca_fdns
@BeginOperator_fdns
@Title = Frost days where no snow index per time period
@EndOperator
@BeginModule
@NewPage
@Name = EcaHurr
@Name = Hurr
@Title = Hurricane days index per time period
@Section = ECA indices
@Class = ECA index
@Section = Miscellaneous
@Arguments = ifile ofile
@Operators = eca_hurr
@Operators = hurr
@BeginDescription
Let @file{ifile} be a time series of daily maximum horizontal wind speeds
......@@ -18,6 +17,6 @@ the last contributing time step in @file{ifile}.
@EndModule
@BeginOperator_eca_hurr
@BeginOperator_hurr
@Title = Hurricane days index per time period
@EndOperator
@BeginModule
@Name = EcaStrbre
@Name = Strbre
@Title = Strong breeze days index per time period
@Section = ECA indices
@Class = ECA index
@Section = Miscellaneous
@Arguments = ifile ofile
@Operators = eca_strbre
@Operators = strbre
@BeginDescription
Let @file{ifile} be a time series of daily maximum horizontal wind speeds
......@@ -17,6 +16,6 @@ the last contributing time step in @file{ifile}.
@EndModule
@BeginOperator_eca_strbre
@BeginOperator_strbre
@Title = Strong breeze days index per time period
@EndOperator
@BeginModule
@Name = EcaStrgal
@Name = Strgal
@Title = Strong gale days index per time period
@Section = ECA indices
@Class = ECA index
@Section = Miscellaneous
@Arguments = ifile ofile
@Operators = eca_strgal
@Operators = strgal
@BeginDescription
Let @file{ifile} be a time series of daily maximum horizontal wind speeds
......@@ -17,6 +16,6 @@ the last contributing time step in @file{ifile}.
@EndModule
@BeginOperator_eca_strgal
@BeginOperator_strgal
@Title = Strong gale days index per time period
@EndOperator
@BeginModule
@NewPage
@Name = EcaStrwin
@Name = Strwin
@Title = Strong wind days index per time period
@Section = ECA indices
@Class = ECA index
@Section = Miscellaneous
@Arguments = ifile ofile
@Operators = eca_strwin
@Operators = strwin
@BeginDescription
Let @file{ifile} be a time series of daily maximum horizontal wind speeds
......@@ -20,7 +19,7 @@ the last contributing time step in @file{ifile}.
@EndModule
@BeginOperator_eca_strwin
@BeginOperator_strwin
@Title = Strong wind days index per time period
@Parameter = [v]
@EndOperator
......
@BeginModule
@NewPage
@Name = Wct
@Title = Windchill temperature (°C)
@Section = Miscellaneous
......
......@@ -53,12 +53,12 @@
EcaRr1 eca_rr1 RR1 number of wet days
EcaSdii eca_sdii SDII simple daily intensity index
EcaFdns eca_fdns frost days without surface snow
Fdns fdns frost days without surface snow
EcaStrwin eca_strwin number of strong-wind days
EcaStrbre eca_strbre number of strong-breeze days
EcaStrgal eca_strgal number of strong-gale days
EcaHurr eca_hurr number of hurricane days
Strwin strwin number of strong-wind days
Strbre strbre number of strong-breeze days
Strgal strgal number of strong-gale days
Hurr hurr number of hurricane days
*/
#include <stdio.h>
......@@ -464,6 +464,7 @@ void *EcaGsl(void *argument)
char *longname;
int argN = 6;
double argT = 5.0;
double minLandFraction = 0.5;
ECA_REQUEST_4 request;
cdoInitialize(argument);
......@@ -471,6 +472,7 @@ void *EcaGsl(void *argument)
if ( operatorArgc() > 0 ) argN = atoi(operatorArgv()[0]);
if ( operatorArgc() > 1 ) argT = atof(operatorArgv()[1]);
if ( operatorArgc() > 2 ) minLandFraction = atof(operatorArgv()[2]);
longname = (char *) malloc(strlen(GSL_LONGNAME) + 160);
sprintf(longname, GSL_LONGNAME, argN, argT, argN, argT);
......@@ -485,6 +487,8 @@ void *EcaGsl(void *argument)
request.s1arg = TO_KELVIN(argT);
request.s2 = farselltc;
request.s2arg = TO_KELVIN(argT);
request.s3 = farselgec;
request.s3arg = minLandFraction;
request.consecutiveDays = argN;
eca4(&request);
......@@ -1325,12 +1329,12 @@ void *EcaSdii(void *argument)
}
void *EcaFdns(void *argument)
void *Fdns(void *argument)
{
ECA_REQUEST_2 request;
cdoInitialize(argument);
cdoOperatorAdd("eca_fdns", 0, 17, NULL);
cdoOperatorAdd("fdns", 0, 17, NULL);
request.var1.name = FDNS_NAME;
request.var1.longname = FDNS_LONGNAME;
......@@ -1352,15 +1356,15 @@ void *EcaFdns(void *argument)
}
void *EcaStrwin(void *argument)
void *Strwin(void *argument)
{
static const char func[] = "EcaStrwin";
static const char func[] = "Strwin";
char *longname;
double maxWind = 10.5;
ECA_REQUEST_1 request;
cdoInitialize(argument);
cdoOperatorAdd("eca_strwin", 0, 17, NULL);
cdoOperatorAdd("strwin", 0, 17, NULL);
if ( operatorArgc() > 0 )
maxWind = atof(operatorArgv()[0]);
......@@ -1395,13 +1399,13 @@ void *EcaStrwin(void *argument)
}
void *EcaStrbre(void *argument)
void *Strbre(void *argument)
{
static const double maxWind = 10.5;
ECA_REQUEST_1 request;
cdoInitialize(argument);
cdoOperatorAdd("eca_strbre", 0, 17, NULL);
cdoOperatorAdd("strbre", 0, 17, NULL);
request.var1.name = STRBRE_NAME;
request.var1.longname = STRBRE_LONGNAME;
......@@ -1428,13 +1432,13 @@ void *EcaStrbre(void *argument)
}
void *EcaStrgal(void *argument)
void *Strgal(void *argument)
{
static const double maxWind = 20.5;
ECA_REQUEST_1 request;
cdoInitialize(argument);
cdoOperatorAdd("eca_strgal", 0, 17, NULL);
cdoOperatorAdd("strgal", 0, 17, NULL);
request.var1.name = STRBRE_NAME;
request.var1.longname = STRBRE_LONGNAME;
......@@ -1461,13 +1465,13 @@ void *EcaStrgal(void *argument)
}
void *EcaHurr(void *argument)
void *Hurr(void *argument)
{
static const double maxWind = 32.5;
ECA_REQUEST_1 request;
cdoInitialize(argument);
cdoOperatorAdd("eca_hurr", 0, 17, NULL);
cdoOperatorAdd("hurr", 0, 17, NULL);
request.var1.name = HURR_NAME;
request.var1.longname = HURR_LONGNAME;
......
......@@ -93,6 +93,7 @@ void *Runpctl(void *argument);
/* QR */
void *Runstat(void *argument);
/* RQ */
void *Seascount(void *argument);
void *Seaspctl(void *argument);
/* QR */
void *Seasstat(void *argument);
......@@ -132,6 +133,7 @@ void *Test2(void *argument);
void *Tests(void *argument);
void *Timsort(void *argument);
/* RQ */
void *Timcount(void *argument);
void *Timpctl(void *argument);
/* QR */
void *Timstat(void *argument);
......@@ -202,11 +204,11 @@ void *EcaRx1day(void *argument);
void *EcaRx5day(void *argument);
void *EcaSdii(void *argument);
void *EcaFdns(void *argument);
void *EcaStrwin(void *argument);
void *EcaStrbre(void *argument);
void *EcaStrgal(void *argument);
void *EcaHurr(void *argument);
void *Fdns(void *argument);
void *Strwin(void *argument);
void *Strbre(void *argument);
void *Strgal(void *argument);
void *Hurr(void *argument);
void *Hi(void *argument);
void *Wct(void *argument);
......@@ -275,6 +277,7 @@ void *Wct(void *argument);
/* QR */
#define RunstatOperators {"runmin", "runmax", "runsum", "runmean", "runavg", "runvar", "runstd"}
/* RQ */
#define SeascountOperators {"seascount"}
#define SeaspctlOperators {"seaspctl"}
/* QR */
#define SeasstatOperators {"seasmin", "seasmax", "seassum", "seasmean", "seasavg", "seasvar", "seasstd"}
......@@ -317,6 +320,11 @@ void *Wct(void *argument);
#define TestsOperators {"normal", "studentt", "chisquare", "beta", "fisher"}
#define TimsortOperators {"timsort"}
/* RQ */
#define TimcountOperators {"timcount"}
#define YearcountOperators {"yearcount"}
#define MoncountOperators {"moncount"}
#define DaycountOperators {"daycount"}
#define HourcountOperators {"hourcount"}
#define TimpctlOperators {"timpctl"}
#define YearpctlOperators {"yearpctl"}
#define MonpctlOperators {"monpctl"}
......@@ -396,12 +404,12 @@ void *Wct(void *argument);
#define EcaRx5dayOperators {"eca_rx5day"}
#define EcaSdiiOperators {"eca_sdii"}
#define EcaFdnsOperators {"eca_fdns"}
#define FdnsOperators {"fdns"}
#define EcaStrwinOperators {"eca_strwin"}
#define EcaStrbreOperators {"eca_strbre"}
#define EcaStrgalOperators {"eca_strgal"}
#define EcaHurrOperators {"eca_hurr"}
#define StrwinOperators {"strwin"}
#define StrbreOperators {"strbre"}
#define StrgalOperators {"strgal"}
#define HurrOperators {"hurr"}
#define HiOperators {"hi"}
#define WctOperators {"wct"}
......@@ -474,6 +482,7 @@ static MODULES Modules[] =
/* QR */
{ Runstat, RunstatHelp, RunstatOperators, 1, 1 },
/* RQ */
{ Seascount, NULL, SeascountOperators, 1, 1 },
{ Seaspctl, SeaspctlHelp, SeaspctlOperators, 3, 1 },
/* QR */
{ Seasstat, SeasstatHelp, SeasstatOperators, 1, 1 },
......@@ -512,6 +521,11 @@ static MODULES Modules[] =
{ Test2, NULL, Test2Operators, 2, 1 },
{ Tests, NULL, TestsOperators, 1, 1 },
/* RQ */
{ Timcount, NULL, TimcountOperators, 1, 1 },
{ Timcount, NULL, YearcountOperators, 1, 1 },
{ Timcount, NULL, MoncountOperators, 1, 1 },
{ Timcount, NULL, DaycountOperators, 1, 1 },
{ Timcount, NULL, HourcountOperators, 1, 1 },
{ Timpctl, TimpctlHelp, TimpctlOperators, 3, 1 },
{ Timpctl, YearpctlHelp, YearpctlOperators, 3, 1 },
{ Timpctl, MonpctlHelp, MonpctlOperators, 3, 1 },
......@@ -589,13 +603,13 @@ static MODULES Modules[] =
{ EcaRx1day, EcaRx1dayHelp, EcaRx1dayOperators, 1, 1 },
{ EcaRx5day, EcaRx5dayHelp, EcaRx5dayOperators, 1, 1 },
{ EcaSdii, EcaSdiiHelp, EcaSdiiOperators, 1, 1 },
{ EcaFdns, EcaFdnsHelp, EcaFdnsOperators, 2, 1 },
{ EcaStrwin, EcaStrwinHelp, EcaStrwinOperators, 1, 1 },
{ EcaStrbre, EcaStrbreHelp, EcaStrbreOperators, 1, 1 },
{ EcaStrgal, EcaStrgalHelp, EcaStrgalOperators, 1, 1 },
{ EcaHurr, EcaHurrHelp, EcaHurrOperators, 1, 1 },
{ Fdns, FdnsHelp, FdnsOperators, 2, 1 },
{ Strwin, StrwinHelp, StrwinOperators, 1, 1 },
{ Strbre, StrbreHelp, StrbreOperators, 1, 1 },
{ Strgal, StrgalHelp, StrgalOperators, 1, 1 },
{ Hurr, HurrHelp, HurrOperators, 1, 1 },
{ Hi, HiHelp, HiOperators, 3, 1 },
{ Hi, NULL, HiOperators, 3, 1 },
{ Wct, WctHelp, WctOperators, 2, 1 },
/* QR */
};
......
......@@ -2902,33 +2902,108 @@ static char *MastrfuHelp[] = {
NULL
};
static char *HiHelp[] = {
static char *WctHelp[] = {
"NAME",
" hi - Humidity index (°C)",
" wct - Windchill temperature (°C)",
"",
"SYNOPSIS",
" hi ifile1 ifile2 ifile3 ofile",
" wct ifile1 ifile2 ofile",
"",
"DESCRIPTION",
" Let ifile1, ifile2 and ifile3 be time series",
" of temperature, vapour pressure and relative humidity records.",
" Then a corresponding time series of resulting humidity index values",
" is written to ofile.",
" Let ifile1 and ifile2 be time series of temperature and wind",
" speed records, then a corresponding time series of resulting windchill",
" temperatures is written to ofile. Note that the temperature and",
" wind speed records must be given in units of °C and m/s, respectively.",
NULL
};
static char *WctHelp[] = {
static char *FdnsHelp[] = {
"NAME",
" wct - Windchill temperature (°C)",
" fdns - Frost days where no snow index per time period",
"",
"SYNOPSIS",
" wct ifile1 ifile2 ofile",
" fdns ifile1 ifile2 ofile",
"",
"DESCRIPTION",
" Let ifile1 and ifile2 be time series of temperature and wind",
" speed records, then a corresponding time series of resulting windchill",
" temperatures is written to ofile. Note that the temperature and",
" wind speed records must be given in units of °C and m/s, respectively.",
" Let ifile1 be a time series of daily minimum temperatures TN",
" and ifile2 be a corresponding series of daily surface snow",
" amounts. Then counted is the number of days where TN < 0° Celsius",
" and the surface snow amount is less than 1 cm.",
" The date information for a time step in ofile is the date of",
" the last contributing time step in ifile.",
NULL
};
static char *StrwinHelp[] = {
"NAME",
" strwin - Strong wind days index per time period",
"",
"SYNOPSIS",
" strwin[,v] ifile ofile",
"",
"DESCRIPTION",
" Let ifile be a time series of daily maximum horizontal wind speeds",
" VX, then counted is the number of days where VX > v. The horizontal wind",
" speed v is an optional parameter with default v = 10.5 m/s. Note that both",
" VX and v must be given in units of m/s. Also note that the horizontal wind",
" speed is defined as the square root of the sum of squares of the zonal and",
" meridional wind speeds.",
" The date information for a time step in ofile is the date of",
" the last contributing time step in ifile.",
"",
"PARAMETER",
" v FLOAT Horizontal wind speed threshold (m/s, default v = 10.5 m/s)",
NULL
};
static char *StrbreHelp[] = {
"NAME",
" strbre - Strong breeze days index per time period",
"",
"SYNOPSIS",
" strbre ifile ofile",
"",
"DESCRIPTION",
" Let ifile be a time series of daily maximum horizontal wind speeds",
" VX, then counted is the number of days where VX is greater than or equal ",
" to 10.5 m/s. Note that VX is defined as the square root of the sum of squares",
" of the zonal and meridional wind speeds and must be given in units of m/s.",
" The date information for a time step in ofile is the date of",
" the last contributing time step in ifile.",
NULL
};
static char *StrgalHelp[] = {
"NAME",
" strgal - Strong gale days index per time period",
"",
"SYNOPSIS",
" strgal ifile ofile",
"",
"DESCRIPTION",
" Let ifile be a time series of daily maximum horizontal wind speeds",
" VX, then counted is the number of days where VX is greater than or equal ",
" to 20.5 m/s. Note that VX is defined as the square root of the sum of squares",
" of the zonal and meridional wind speeds and must be given in units of m/s.",
" The date information for a time step in ofile is the date of",
" the last contributing time step in ifile.",
NULL
};
static char *HurrHelp[] = {
"NAME",
" hurr - Hurricane days index per time period",
"",
"SYNOPSIS",
" hurr ifile ofile",
"",
"DESCRIPTION",
" Let ifile be a time series of daily maximum horizontal wind speeds",
" VX, then counted is the number of days where VX is greater than or equal ",
" to 32.5 m/s. Note that VX is defined as the square root of the sum of squares",
" of the zonal and meridional wind speeds and must be given in units of m/s.",
" The date information for a time step in ofile is the date of",
" the last contributing time step in ifile.",
NULL
};
......@@ -3084,23 +3159,6 @@ static char *EcaFdHelp[] = {
NULL
};
static char *EcaFdnsHelp[] = {
"NAME",
" eca_fdns - Frost days where no snow index per time period",
"",
"SYNOPSIS",
" eca_fdns ifile1 ifile2 ofile",
"",
"DESCRIPTION",
" Let ifile1 be a time series of daily minimum temperatures TN",
" and ifile2 be a corresponding series of daily surface snow",
" amounts. Then counted is the number of days where TN < 0° Celsius",
" and the surface snow amount is less than 1 cm.",
" The date information for a time step in ofile is the date of",
" the last contributing time step in ifile.",
NULL
};
static char *EcaGslHelp[] = {
"NAME",
" eca_gsl - Growing season length index",
......@@ -3455,79 +3513,6 @@ static char *EcaSdiiHelp[] = {
NULL
};
static char *EcaStrwinHelp[] = {
"NAME",
" eca_strwin - Strong wind days index per time period",
"",
"SYNOPSIS",
" eca_strwin[,v] ifile ofile",
"",
"DESCRIPTION",
" Let ifile be a time series of daily maximum horizontal wind speeds",
" VX, then counted is the number of days where VX > v. The horizontal wind",
" speed v is an optional parameter with default v = 10.5 m/s. Note that both",
" VX and v must be given in units of m/s. Also note that the horizontal wind",
" speed is defined as the square root of the sum of squares of the zonal and",
" meridional wind speeds.",
" The date information for a time step in ofile is the date of",
" the last contributing time step in ifile.",
"",
"PARAMETER",
" v FLOAT Horizontal wind speed threshold (m/s, default v = 10.5 m/s)",
NULL
};
static char *EcaStrbreHelp[] = {
"NAME",
" eca_strbre - Strong breeze days index per time period",
"",
"SYNOPSIS",
" eca_strbre ifile ofile",
"",
"DESCRIPTION",
" Let ifile be a time series of daily maximum horizontal wind speeds",
" VX, then counted is the number of days where VX is greater than or equal ",
" to 10.5 m/s. Note that VX is defined as the square root of the sum of squares",