med_int nedfscai(med_idt *fid,med_int *ind,char *scalaire, med_int *data_type,char *desc) #endif { med_int ret; char *fs1,*fs2; med_type_champ typechamp; fs1 = (char *) malloc(sizeof(char)*MED_TAILLE_NOM+1); fs2 = (char *) malloc(sizeof(char)*MED_TAILLE_DESC+1); if (!(fs1&&fs2)) return -1; ret = (med_int) MEDscalaireInfo( *fid, (int)*ind, (char *)fs1, &typechamp ,(char *)fs2); *data_type = (med_int) typechamp; strncpy(scalaire,fs1,MED_TAILLE_NOM); strncpy(desc,fs2,MED_TAILLE_DESC); _MEDfstring(scalaire,MED_TAILLE_NOM); _MEDfstring(desc,MED_TAILLE_DESC); free(fs1); free(fs2); return(ret); }
med_int nedffami(med_int *fid, char *maa,med_int *lon1,med_int *ind, char *fam,med_int *num,med_int *attr_ident,med_int *attr_val, char *attr_desc,med_int *n_attr, char *groupe ,med_int *n_groupe) #endif { med_int ret; char * fn1,* fs1, * fs2; char fs3[MED_TAILLE_NOM+1]; int natt,ngro,j; char str[MED_TAILLE_LNOM+1]; fn1 = _MED2cstring(maa, (int) * lon1); if (!fn1) return(-1); if ((ngro = MEDnGroupe ((med_idt) *fid,fn1,*ind)) < 0) return -1; if ((natt = MEDnAttribut((med_idt) *fid,fn1,*ind)) < 0) return -1; fs1 = (char *) malloc(MED_TAILLE_DESC*natt+1); fs2 = (char *) malloc(MED_TAILLE_LNOM*ngro+1); ret = (med_int) MEDfamInfo((med_idt) *fid,fn1,(int) *ind, (char *)fs3 , (med_int *)num, (med_int *) attr_ident,(med_int *) attr_val, (char *) fs1, (med_int *) n_attr, (char *)fs2 ,(med_int *) n_groupe); strncpy(fam,fs3,MED_TAILLE_NOM); _MEDfstring(fam,MED_TAILLE_NOM); strncpy(attr_desc,fs1,MED_TAILLE_DESC*natt); _MEDfstring(attr_desc,MED_TAILLE_DESC*natt); for (j=0;j<ngro;j++) { strncpy(str,fs2+j*MED_TAILLE_LNOM,MED_TAILLE_LNOM); _MEDfstring(str,MED_TAILLE_LNOM); str[MED_TAILLE_LNOM] = '\0'; if (j == 0) strcpy(groupe,str); else strcat(groupe,str); } _MEDfstring(groupe,MED_TAILLE_LNOM*ngro); free(fs1); free(fs2); _MEDcstringFree(fn1); return(ret); }
med_int nedfspdi(med_idt *fid,char *scalaire, med_int *lon1,med_int *indice, med_int *numdt,char *dt_unit, med_float *dt, med_int *numo) #endif { med_int ret; char *fn1; char fs1[MED_TAILLE_PNOM+1]; fn1 = _MED2cstring(scalaire, (int) *lon1); if (!fn1) return(-1); ret = (med_int) MEDscalairePasdetempsInfo( *fid,(char *) fn1,(int) *indice, (med_int *) numdt, (char *) fs1, (med_float *) dt, (med_int *) numo); strncpy(dt_unit,fs1,MED_TAILLE_PNOM); _MEDfstring(dt_unit,MED_TAILLE_PNOM); _MEDcstringFree(fn1); return (ret); }