#include #include #include void conv2lower (char *par); int par2num (char *parname) { int parnumber = 0, mode; char c, p; /*******************************************************************\ * Check to see whether the parameter is a name or a number, i.e. * * a classical parameter * \*******************************************************************/ if (*parname >= 48 && *parname <= 57) parnumber = atoi(parname); else { conv2lower (parname); if (strncmp (parname, "x", 1) == 0 || strncmp (parname, "sky", 3) == 0) parnumber = 1; if (strncmp (parname, "y", 1) == 0) parnumber = 2; if (strncmp (parname, "mag", 3) == 0) parnumber = 3; if (strncmp (parname, "re", 2) == 0 || strncmp (parname, "rs", 2) == 0 || strncmp (parname, "rb", 2) == 0) parnumber = 4; if (strncmp (parname, "n", 1) == 0 || strncmp (parname, "alpha", 5) == 0) parnumber = 5; if (strncmp (parname, "beta", 4) == 0) parnumber = 6; if (strncmp (parname, "gamma", 5) == 0) parnumber = 7; if (strncmp (parname, "q", 1) == 0 || strncmp(parname, "b/a", 3) == 0) parnumber = 9; if (strncmp (parname, "pa", 2) == 0) parnumber = 10; if (strncmp (parname, "c", 1) == 0) parnumber = 1; if (strncmp (parname, "f", 1) == 0) { /* Fourier modes */ sscanf (parname, "%c%d%c", &c, &mode, &p); if (p == 'p') parnumber = 2 * (mode-1) + 2; else parnumber = 2 * (mode-1) + 1; } if (strncmp (parname, "r", 1) == 0) /* Coord. rotation */ sscanf (parname, "%c%d", &c, &parnumber); } return (parnumber); }