예제 #1
0
파일: fortran.c 프로젝트: jeffhammond/ga
Integer FATR ndra_create_(
#ifdef F2C_HIDDEN_STRING_LENGTH_AFTER_ARGS
        Integer *type,
        Integer *ndim,
        Integer  dims[],
        char    *name,
        char    *filename,
        Integer *mode,
        Integer  reqdims[],
        Integer *d_a,
        int  nlen,
        int  flen
#else
        Integer *type,
        Integer *ndim,
        Integer  dims[],
        char    *name,
        int  nlen,
        char    *filename,
        int  flen,
        Integer *mode,
        Integer  reqdims[],
        Integer *d_a
#endif
        )
{
    ga_f2cstring(name, nlen, cname, DRA_MAX_NAME);
    ga_f2cstring(filename, flen, cfilename, DRA_MAX_FNAME);
    return ndrai_create(type, ndim, dims, cname, cfilename, mode, reqdims, d_a);
}
예제 #2
0
Integer FATR eaf_stat_(
#ifdef F2C_HIDDEN_STRING_LENGTH_AFTER_ARGS
        char *path,
        Integer *avail_kb,
        char *fstype,
        int pathlen,
        int fslen
#else
        char *path,
        int pathlen,
        Integer *avail_kb,
        char *fstype,
        int fslen
#endif
        )
{
    char pbuf[1024];
    char fbuf[32];

    int  code;
    long kb;

    ga_f2cstring(path, pathlen, pbuf, sizeof(pbuf));
    /* return (Integer) EAF_ERR_TOO_LONG; TODO errcheck? */

    code = EAF_Stat(pbuf, &kb, fbuf, sizeof(fbuf));

    if (!code) {
        ga_c2fstring(fbuf, fstype, fslen);
        /* return (Integer) EAF_ERR_TOO_SHORT; TODO errcheck? */
        *avail_kb = (double) kb;
    }

    return code;
}
예제 #3
0
Integer FATR eaf_open_(
#ifdef F2C_HIDDEN_STRING_LENGTH_AFTER_ARGS
        char *fname,
        Integer *type,
        Integer *fd,
        int flen
#else
        char *fname,
        int flen,
        Integer *type,
        Integer *fd
#endif
        )
{
    char buf[1024];
    int code, tmp;

    ga_f2cstring(fname, flen, buf, sizeof(buf));
    /* return (Integer) EAF_ERR_TOO_LONG; TODO errcheck? */

    code = EAF_Open(buf, (int) *type, &tmp);
    *fd = (Integer) tmp;

    return (Integer)code;
}
예제 #4
0
파일: gaf2c.c 프로젝트: jeffhammond/ga
void ga_f2c_get_cmd_args(int *argc, char ***argv)
{
    Integer i=0;
    int iargc=F2C_IARGC();
    char **iargv=NULL;

    if (iargc > F2C_GETARG_ARGV_MAX) {
        printf("ga_f2c_get_cmd_args: too many cmd line args");
        armci_msg_abort(1);
    }
    iargv = (char**)malloc(sizeof(char*)*F2C_GETARG_ARGV_MAX);
    if (!iargv) {
        printf("ga_f2c_get_cmd_args: malloc iargv failed");
        armci_msg_abort(1);
    }
    for (i=0; i<iargc; i++) {
        char fstring[F2C_GETARG_ARGLEN_MAX];
        char cstring[F2C_GETARG_ARGLEN_MAX];
        F2C_GETARG(&i, fstring, F2C_GETARG_ARGLEN_MAX);
        ga_f2cstring(fstring, F2C_GETARG_ARGLEN_MAX,
                cstring, F2C_GETARG_ARGLEN_MAX);
        iargv[i] = strdup(cstring);
    }
    *argc = iargc;
    *argv = iargv;
    iargv[iargc] = 0;
}
예제 #5
0
Integer FATR eaf_delete_(char *fname, int flen)
{
    char buf[1024];

    ga_f2cstring(fname, flen, buf, sizeof(buf));
    /* return (Integer) EAF_ERR_TOO_LONG; TODO errcheck? */

    return (Integer) EAF_Delete(buf);
}
예제 #6
0
파일: fortran.c 프로젝트: jeffhammond/ga
Integer FATR dra_open_(
#ifdef F2C_HIDDEN_STRING_LENGTH_AFTER_ARGS
        char    *filename,
        Integer *mode,
        Integer *d_a,
        int      flen
#else
        char    *filename,
        int      flen,
        Integer *mode,
        Integer *d_a
#endif
        )
{
    ga_f2cstring(filename, flen, cfilename, DRA_MAX_FNAME);
    return drai_open(cfilename, mode, d_a);
}