1*9306f9a3SSatish Balay /* 2*9306f9a3SSatish Balay This file contains Fortran stubs for Options routines. 3*9306f9a3SSatish Balay These are not generated automatically since they require passing strings 4*9306f9a3SSatish Balay between Fortran and C. 5*9306f9a3SSatish Balay */ 6*9306f9a3SSatish Balay 7*9306f9a3SSatish Balay #include "zpetsc.h" 8*9306f9a3SSatish Balay #include "petscsys.h" 9*9306f9a3SSatish Balay 10*9306f9a3SSatish Balay #ifdef PETSC_HAVE_FORTRAN_CAPS 11*9306f9a3SSatish Balay #define petscoptionsgettruth_ PETSCOPTIONSGETTRUTH 12*9306f9a3SSatish Balay #define petscoptionsgetintarray_ PETSCOPTIONSGETINTARRAY 13*9306f9a3SSatish Balay #define petscoptionssetvalue_ PETSCOPTIONSSETVALUE 14*9306f9a3SSatish Balay #define petscoptionsclearvalue_ PETSCOPTIONSCLEARVALUE 15*9306f9a3SSatish Balay #define petscoptionshasname_ PETSCOPTIONSHASNAME 16*9306f9a3SSatish Balay #define petscoptionsgetint_ PETSCOPTIONSGETINT 17*9306f9a3SSatish Balay #define petscoptionsgetreal_ PETSCOPTIONSGETREAL 18*9306f9a3SSatish Balay #define petscoptionsgetrealarray_ PETSCOPTIONSGETREALARRAY 19*9306f9a3SSatish Balay #define petscoptionsgetstring_ PETSCOPTIONSGETSTRING 20*9306f9a3SSatish Balay #define petscgetprogramname PETSCGETPROGRAMNAME 21*9306f9a3SSatish Balay #define petscoptionsinsertfile_ PETSCOPTIONSINSERTFILE 22*9306f9a3SSatish Balay #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) 23*9306f9a3SSatish Balay #define petscoptionsgettruth_ petscoptionsgettruth 24*9306f9a3SSatish Balay #define petscoptionssetvalue_ petscoptionssetvalue 25*9306f9a3SSatish Balay #define petscoptionsclearvalue_ petscoptionsclearvalue 26*9306f9a3SSatish Balay #define petscoptionshasname_ petscoptionshasname 27*9306f9a3SSatish Balay #define petscoptionsgetint_ petscoptionsgetint 28*9306f9a3SSatish Balay #define petscoptionsgetreal_ petscoptionsgetreal 29*9306f9a3SSatish Balay #define petscoptionsgetrealarray_ petscoptionsgetrealarray 30*9306f9a3SSatish Balay #define petscoptionsgetstring_ petscoptionsgetstring 31*9306f9a3SSatish Balay #define petscoptionsgetintarray_ petscoptionsgetintarray 32*9306f9a3SSatish Balay #define petscgetprogramname_ petscgetprogramname 33*9306f9a3SSatish Balay #define petscoptionsinsertfile_ petscoptionsinsertfile 34*9306f9a3SSatish Balay #endif 35*9306f9a3SSatish Balay 36*9306f9a3SSatish Balay EXTERN_C_BEGIN 37*9306f9a3SSatish Balay 38*9306f9a3SSatish Balay /* ---------------------------------------------------------------------*/ 39*9306f9a3SSatish Balay 40*9306f9a3SSatish Balay void PETSC_STDCALL petscoptionsinsertfile_(CHAR file PETSC_MIXED_LEN(len),PetscErrorCode *ierr PETSC_END_LEN(len)) 41*9306f9a3SSatish Balay { 42*9306f9a3SSatish Balay char *c1; 43*9306f9a3SSatish Balay 44*9306f9a3SSatish Balay FIXCHAR(file,len,c1); 45*9306f9a3SSatish Balay *ierr = PetscOptionsInsertFile(c1); 46*9306f9a3SSatish Balay FREECHAR(file,c1); 47*9306f9a3SSatish Balay } 48*9306f9a3SSatish Balay 49*9306f9a3SSatish Balay void PETSC_STDCALL petscoptionssetvalue_(CHAR name PETSC_MIXED_LEN(len1),CHAR value PETSC_MIXED_LEN(len2), 50*9306f9a3SSatish Balay PetscErrorCode *ierr PETSC_END_LEN(len1) PETSC_END_LEN(len2)) 51*9306f9a3SSatish Balay { 52*9306f9a3SSatish Balay char *c1,*c2; 53*9306f9a3SSatish Balay 54*9306f9a3SSatish Balay FIXCHAR(name,len1,c1); 55*9306f9a3SSatish Balay FIXCHAR(value,len2,c2); 56*9306f9a3SSatish Balay *ierr = PetscOptionsSetValue(c1,c2); 57*9306f9a3SSatish Balay FREECHAR(name,c1); 58*9306f9a3SSatish Balay FREECHAR(value,c2); 59*9306f9a3SSatish Balay } 60*9306f9a3SSatish Balay 61*9306f9a3SSatish Balay void PETSC_STDCALL petscoptionsclearvalue_(CHAR name PETSC_MIXED_LEN(len),PetscErrorCode *ierr PETSC_END_LEN(len)) 62*9306f9a3SSatish Balay { 63*9306f9a3SSatish Balay char *c1; 64*9306f9a3SSatish Balay 65*9306f9a3SSatish Balay FIXCHAR(name,len,c1); 66*9306f9a3SSatish Balay *ierr = PetscOptionsClearValue(c1); 67*9306f9a3SSatish Balay FREECHAR(name,c1); 68*9306f9a3SSatish Balay } 69*9306f9a3SSatish Balay 70*9306f9a3SSatish Balay void PETSC_STDCALL petscoptionshasname_(CHAR pre PETSC_MIXED_LEN(len1),CHAR name PETSC_MIXED_LEN(len2), 71*9306f9a3SSatish Balay PetscTruth *flg,PetscErrorCode *ierr PETSC_END_LEN(len1) PETSC_END_LEN(len2)) 72*9306f9a3SSatish Balay { 73*9306f9a3SSatish Balay char *c1,*c2; 74*9306f9a3SSatish Balay 75*9306f9a3SSatish Balay FIXCHAR(pre,len1,c1); 76*9306f9a3SSatish Balay FIXCHAR(name,len2,c2); 77*9306f9a3SSatish Balay *ierr = PetscOptionsHasName(c1,c2,flg); 78*9306f9a3SSatish Balay FREECHAR(pre,c1); 79*9306f9a3SSatish Balay FREECHAR(name,c2); 80*9306f9a3SSatish Balay } 81*9306f9a3SSatish Balay 82*9306f9a3SSatish Balay void PETSC_STDCALL petscoptionsgetint_(CHAR pre PETSC_MIXED_LEN(len1),CHAR name PETSC_MIXED_LEN(len2), 83*9306f9a3SSatish Balay PetscInt *ivalue,PetscTruth *flg,PetscErrorCode *ierr PETSC_END_LEN(len1) PETSC_END_LEN(len2)) 84*9306f9a3SSatish Balay { 85*9306f9a3SSatish Balay char *c1,*c2; 86*9306f9a3SSatish Balay 87*9306f9a3SSatish Balay FIXCHAR(pre,len1,c1); 88*9306f9a3SSatish Balay FIXCHAR(name,len2,c2); 89*9306f9a3SSatish Balay *ierr = PetscOptionsGetInt(c1,c2,ivalue,flg); 90*9306f9a3SSatish Balay FREECHAR(pre,c1); 91*9306f9a3SSatish Balay FREECHAR(name,c2); 92*9306f9a3SSatish Balay } 93*9306f9a3SSatish Balay 94*9306f9a3SSatish Balay void PETSC_STDCALL petscoptionsgettruth_(CHAR pre PETSC_MIXED_LEN(len1),CHAR name PETSC_MIXED_LEN(len2), 95*9306f9a3SSatish Balay PetscTruth *ivalue,PetscTruth *flg,PetscErrorCode *ierr PETSC_END_LEN(len1) PETSC_END_LEN(len2)) 96*9306f9a3SSatish Balay { 97*9306f9a3SSatish Balay char *c1,*c2; 98*9306f9a3SSatish Balay 99*9306f9a3SSatish Balay FIXCHAR(pre,len1,c1); 100*9306f9a3SSatish Balay FIXCHAR(name,len2,c2); 101*9306f9a3SSatish Balay *ierr = PetscOptionsGetTruth(c1,c2,ivalue,flg); 102*9306f9a3SSatish Balay FREECHAR(pre,c1); 103*9306f9a3SSatish Balay FREECHAR(name,c2); 104*9306f9a3SSatish Balay } 105*9306f9a3SSatish Balay 106*9306f9a3SSatish Balay void PETSC_STDCALL petscoptionsgetreal_(CHAR pre PETSC_MIXED_LEN(len1),CHAR name PETSC_MIXED_LEN(len2), 107*9306f9a3SSatish Balay PetscReal *dvalue,PetscTruth *flg,PetscErrorCode *ierr PETSC_END_LEN(len1) PETSC_END_LEN(len2)) 108*9306f9a3SSatish Balay { 109*9306f9a3SSatish Balay char *c1,*c2; 110*9306f9a3SSatish Balay 111*9306f9a3SSatish Balay FIXCHAR(pre,len1,c1); 112*9306f9a3SSatish Balay FIXCHAR(name,len2,c2); 113*9306f9a3SSatish Balay *ierr = PetscOptionsGetReal(c1,c2,dvalue,flg); 114*9306f9a3SSatish Balay FREECHAR(pre,c1); 115*9306f9a3SSatish Balay FREECHAR(name,c2); 116*9306f9a3SSatish Balay } 117*9306f9a3SSatish Balay 118*9306f9a3SSatish Balay void PETSC_STDCALL petscoptionsgetrealarray_(CHAR pre PETSC_MIXED_LEN(len1),CHAR name PETSC_MIXED_LEN(len2), 119*9306f9a3SSatish Balay PetscReal *dvalue,PetscInt *nmax,PetscTruth *flg,PetscErrorCode *ierr PETSC_END_LEN(len1) PETSC_END_LEN(len2)) 120*9306f9a3SSatish Balay { 121*9306f9a3SSatish Balay char *c1,*c2; 122*9306f9a3SSatish Balay 123*9306f9a3SSatish Balay FIXCHAR(pre,len1,c1); 124*9306f9a3SSatish Balay FIXCHAR(name,len2,c2); 125*9306f9a3SSatish Balay *ierr = PetscOptionsGetRealArray(c1,c2,dvalue,nmax,flg); 126*9306f9a3SSatish Balay FREECHAR(pre,c1); 127*9306f9a3SSatish Balay FREECHAR(name,c2); 128*9306f9a3SSatish Balay } 129*9306f9a3SSatish Balay 130*9306f9a3SSatish Balay void PETSC_STDCALL petscoptionsgetintarray_(CHAR pre PETSC_MIXED_LEN(len1),CHAR name PETSC_MIXED_LEN(len2), 131*9306f9a3SSatish Balay PetscInt *dvalue,PetscInt *nmax,PetscTruth *flg,PetscErrorCode *ierr PETSC_END_LEN(len1) PETSC_END_LEN(len2)) 132*9306f9a3SSatish Balay { 133*9306f9a3SSatish Balay char *c1,*c2; 134*9306f9a3SSatish Balay 135*9306f9a3SSatish Balay FIXCHAR(pre,len1,c1); 136*9306f9a3SSatish Balay FIXCHAR(name,len2,c2); 137*9306f9a3SSatish Balay *ierr = PetscOptionsGetIntArray(c1,c2,dvalue,nmax,flg); 138*9306f9a3SSatish Balay FREECHAR(pre,c1); 139*9306f9a3SSatish Balay FREECHAR(name,c2); 140*9306f9a3SSatish Balay } 141*9306f9a3SSatish Balay 142*9306f9a3SSatish Balay void PETSC_STDCALL petscoptionsgetstring_(CHAR pre PETSC_MIXED_LEN(len1),CHAR name PETSC_MIXED_LEN(len2), 143*9306f9a3SSatish Balay CHAR string PETSC_MIXED_LEN(len),PetscTruth *flg, 144*9306f9a3SSatish Balay PetscErrorCode *ierr PETSC_END_LEN(len1) PETSC_END_LEN(len2) PETSC_END_LEN(len)) 145*9306f9a3SSatish Balay { 146*9306f9a3SSatish Balay char *c1,*c2,*c3; 147*9306f9a3SSatish Balay int len3; 148*9306f9a3SSatish Balay 149*9306f9a3SSatish Balay FIXCHAR(pre,len1,c1); 150*9306f9a3SSatish Balay FIXCHAR(name,len2,c2); 151*9306f9a3SSatish Balay #if defined(PETSC_USES_CPTOFCD) 152*9306f9a3SSatish Balay c3 = _fcdtocp(string); 153*9306f9a3SSatish Balay len3 = _fcdlen(string) - 1; 154*9306f9a3SSatish Balay #else 155*9306f9a3SSatish Balay c3 = string; 156*9306f9a3SSatish Balay len3 = len - 1; 157*9306f9a3SSatish Balay #endif 158*9306f9a3SSatish Balay 159*9306f9a3SSatish Balay *ierr = PetscOptionsGetString(c1,c2,c3,len3,flg); 160*9306f9a3SSatish Balay FREECHAR(pre,c1); 161*9306f9a3SSatish Balay FREECHAR(name,c2); 162*9306f9a3SSatish Balay FIXRETURNCHAR(string,len); 163*9306f9a3SSatish Balay } 164*9306f9a3SSatish Balay 165*9306f9a3SSatish Balay void PETSC_STDCALL petscgetprogramname_(CHAR name PETSC_MIXED_LEN(len_in),PetscErrorCode *ierr PETSC_END_LEN(len_in)) 166*9306f9a3SSatish Balay { 167*9306f9a3SSatish Balay char *tmp; 168*9306f9a3SSatish Balay int len; 169*9306f9a3SSatish Balay #if defined(PETSC_USES_CPTOFCD) 170*9306f9a3SSatish Balay tmp = _fcdtocp(name); 171*9306f9a3SSatish Balay len = _fcdlen(name) - 1; 172*9306f9a3SSatish Balay #else 173*9306f9a3SSatish Balay tmp = name; 174*9306f9a3SSatish Balay len = len_in - 1; 175*9306f9a3SSatish Balay #endif 176*9306f9a3SSatish Balay *ierr = PetscGetProgramName(tmp,len); 177*9306f9a3SSatish Balay FIXRETURNCHAR(name,len_in); 178*9306f9a3SSatish Balay } 179*9306f9a3SSatish Balay 180*9306f9a3SSatish Balay EXTERN_C_END 181*9306f9a3SSatish Balay 182