#include #include #include #include #include #include #include #include #include NhlErrorTypes print_names_W( void ) { int i, total_name_elements; string *name; int ndims_name, dsizes_name[NCL_MAX_DIMENSIONS]; /* * Retrieve the only argument. */ name = (string *) NclGetArgValue(0,1,&ndims_name,dsizes_name,NULL,NULL, NULL,2); /* * Compute total number of elements in names array. */ total_name_elements = 1; for(i = 0; i < ndims_name; i++) total_name_elements *= dsizes_name[i]; for(i = 0; i < total_name_elements; i++) { printf("name = '%s'\n", NrmQuarkToString(name[i])); } return(NhlNOERROR); } void Init(void){ void *args; int dimsizes[NCL_MAX_DIMENSIONS]; int nargs; nargs = 0; args = NewArgs(1); SetArgTemplate(args, nargs, "string", 0, NclANY); nargs++; NclRegisterProc(print_names_W, args, "print_names", nargs); }