#include #include #include #include "gpi.h" int uniform_fetch(char *name_variable, void *dd, ftnlen length_name,int type_case); int dfetch_(char *name_variable, double *dd, ftnlen length_name) {return uniform_fetch(name_variable, dd, length_name,1);} int ffetch_(char *name_variable, float *dd, ftnlen length_name) {return uniform_fetch(name_variable, dd, length_name,2);} int ifetch_(char *name_variable, int *dd, ftnlen length_name) {return uniform_fetch(name_variable, dd, length_name,3);} int uniform_fetch(char *name_variable, void *dd, ftnlen length_name,int type_case) { char string[MAX_STRING_LENGTH]; if (length_name > MAX_STRING_LENGTH) { fprintf(stderr,"fetch: parname string too long\nparname=%s\n",name_variable); return -1; } strncpy(string,name_variable,((size_t) length_name)); *(string + length_name) = '\0'; switch (type_case) { case 1: return dfetch(string,dd); case 2: return ffetch(string,dd); case 3: return ifetch(string,dd); } exit(-1); } double gp_dfetch__(char *name_variable, double *def_val, char *message, ftnlen length_name, ftnlen length_msg) { char string[MAX_STRING_LENGTH]; char msg_string[MAX_STRING_LENGTH]; if (length_name > MAX_STRING_LENGTH) { fprintf(stderr,"fetch: parname string too long\nparname=%s\n",name_variable); return -1; } if (length_msg > MAX_STRING_LENGTH) { fprintf(stderr,"fetch: message string too long\nparname=%s\n",message); return -1; } strncpy(string,name_variable,((size_t) length_name)); *(string + length_name) = '\0'; strncpy(msg_string,message,((size_t) length_msg)); *(msg_string + length_msg) = '\0'; return GP_dfetch(string,*def_val,msg_string); } /* this fetch is double to avoid problems between fortran and C on 64 bit machines double gp_ffetch__(char *name_variable, float *def_val, char *message, ftnlen length_name, ftnlen length_msg) { char string[MAX_STRING_LENGTH]; char msg_string[MAX_STRING_LENGTH]; if (length_name > MAX_STRING_LENGTH) { fprintf(stderr,"fetch: parname string too long\nparname=%s\n",name_variable); return -1; } if (length_msg > MAX_STRING_LENGTH) { fprintf(stderr,"fetch: message string too long\nparname=%s\n",message); return -1; } strncpy(string,name_variable,((size_t) length_name)); *(string + length_name) = '\0'; strncpy(msg_string,message,((size_t) length_msg)); *(msg_string + length_msg) = '\0'; return (double) GP_ffetch(string,*def_val,msg_string); } */ int gp_ifetch__(char *name_variable, int *def_val, char *message, ftnlen length_name, ftnlen length_msg) { char string[MAX_STRING_LENGTH]; char msg_string[MAX_STRING_LENGTH]; if (length_name > MAX_STRING_LENGTH) { fprintf(stderr,"fetch: parname string too long\nparname=%s\n",name_variable); return -1; } if (length_msg > MAX_STRING_LENGTH) { fprintf(stderr,"fetch: message string too long\nparname=%s\n",message); return -1; } strncpy(string,name_variable,((size_t) length_name)); *(string + length_name) = '\0'; strncpy(msg_string,message,((size_t) length_msg)); *(msg_string + length_msg) = '\0'; return GP_ifetch(string,*def_val,msg_string); }