19306f9a3SSatish Balay /* 29306f9a3SSatish Balay This file contains Fortran stubs for Options routines. 39306f9a3SSatish Balay These are not generated automatically since they require passing strings 49306f9a3SSatish Balay between Fortran and C. 59306f9a3SSatish Balay */ 69306f9a3SSatish Balay 7af0996ceSBarry Smith #include <petsc/private/fortranimpl.h> 8665c2dedSJed Brown #include <petscviewer.h> 99306f9a3SSatish Balay 10519f805aSKarl Rupp #if defined(PETSC_HAVE_FORTRAN_CAPS) 11a530d236SBarry Smith #define petscsubcommview_ PETSCSUBCOMMVIEW 12a530d236SBarry Smith #define petscsubcommgetparent_ PETSCSUBCOMMGETPARENT 13a530d236SBarry Smith #define petscsubcommgetcontiguousparent_ PETSCSUBCOMMGETCONTIGUOUSPARENT 14a530d236SBarry Smith #define petscsubcommgetchild_ PETSCSUBCOMMGETCHILD 15455a3cf9SBarry Smith #define petscoptionsallused_ PETSCOPTIONSALLUSED 1647340559SBarry Smith #define petscoptionsgetenumprivate_ PETSCOPTIONSGETENUMPRIVATE 1708f86b60SJed Brown #define petscoptionsgetbool_ PETSCOPTIONSGETBOOL 18*b0c0aa2bSBlaise Bourdin #define petscoptionsgetboolarray_ PETSCOPTIONSGETBOOLARRAY 199306f9a3SSatish Balay #define petscoptionsgetintarray_ PETSCOPTIONSGETINTARRAY 209306f9a3SSatish Balay #define petscoptionssetvalue_ PETSCOPTIONSSETVALUE 219306f9a3SSatish Balay #define petscoptionsclearvalue_ PETSCOPTIONSCLEARVALUE 229306f9a3SSatish Balay #define petscoptionshasname_ PETSCOPTIONSHASNAME 239306f9a3SSatish Balay #define petscoptionsgetint_ PETSCOPTIONSGETINT 249306f9a3SSatish Balay #define petscoptionsgetreal_ PETSCOPTIONSGETREAL 257a7a6802SBarry Smith #define petscoptionsgetscalar_ PETSCOPTIONSGETSCALAR 26*b0c0aa2bSBlaise Bourdin #define petscoptionsgetscalararray_ PETSCOPTIONSGETSCALARARRAY 279306f9a3SSatish Balay #define petscoptionsgetrealarray_ PETSCOPTIONSGETREALARRAY 289306f9a3SSatish Balay #define petscoptionsgetstring_ PETSCOPTIONSGETSTRING 299306f9a3SSatish Balay #define petscgetprogramname PETSCGETPROGRAMNAME 309306f9a3SSatish Balay #define petscoptionsinsertfile_ PETSCOPTIONSINSERTFILE 31a542b6e8SBarry Smith #define petscoptionsclear_ PETSCOPTIONSCLEAR 32ab66e762SBarry Smith #define petscoptionsinsertstring_ PETSCOPTIONSINSERTSTRING 333a15af8cSBlaise Bourdin #define petscoptionsview_ PETSCOPTIONSVIEW 34ac9b46efSSatish Balay #define petscoptionsleft_ PETSCOPTIONSLEFT 35a2865142SMatthew G. Knepley #define petscobjectviewfromoptions_ PETSCOBJECTVIEWFROMOPTIONS 369306f9a3SSatish Balay #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) 37a530d236SBarry Smith #define petscsubcommview_ petscsubcommview 38a530d236SBarry Smith #define petscsubcommgetparent_ petscsubcommgetparent 39a530d236SBarry Smith #define petscsubcommgetcontiguousparent_ petscsubcommgetcontiguousparent 40a530d236SBarry Smith #define petscsubcommgetchild_ petscsubcommgetchild 41455a3cf9SBarry Smith #define petscoptionsallused_ petscoptionsallused 4247340559SBarry Smith #define petscoptionsgetenumprivate_ petscoptionsgetenumprivate 4308f86b60SJed Brown #define petscoptionsgetbool_ petscoptionsgetbool 44*b0c0aa2bSBlaise Bourdin #define petscoptionsgetboolarray_ petscoptionsgetboolarray 459306f9a3SSatish Balay #define petscoptionssetvalue_ petscoptionssetvalue 469306f9a3SSatish Balay #define petscoptionsclearvalue_ petscoptionsclearvalue 479306f9a3SSatish Balay #define petscoptionshasname_ petscoptionshasname 489306f9a3SSatish Balay #define petscoptionsgetint_ petscoptionsgetint 499306f9a3SSatish Balay #define petscoptionsgetreal_ petscoptionsgetreal 507a7a6802SBarry Smith #define petscoptionsgetscalar_ petscoptionsgetscalar 51*b0c0aa2bSBlaise Bourdin #define petscoptionsgetscalararray_ petscoptionsgetscalararray 529306f9a3SSatish Balay #define petscoptionsgetrealarray_ petscoptionsgetrealarray 539306f9a3SSatish Balay #define petscoptionsgetstring_ petscoptionsgetstring 549306f9a3SSatish Balay #define petscoptionsgetintarray_ petscoptionsgetintarray 559306f9a3SSatish Balay #define petscgetprogramname_ petscgetprogramname 569306f9a3SSatish Balay #define petscoptionsinsertfile_ petscoptionsinsertfile 57a542b6e8SBarry Smith #define petscoptionsclear_ petscoptionsclear 58ab66e762SBarry Smith #define petscoptionsinsertstring_ petscoptionsinsertstring 593a15af8cSBlaise Bourdin #define petscoptionsview_ petscoptionsview 60ac9b46efSSatish Balay #define petscoptionsleft_ petscoptionsleft 61a2865142SMatthew G. Knepley #define petscobjectviewfromoptions_ petscobjectviewfromoptions 629306f9a3SSatish Balay #endif 639306f9a3SSatish Balay 649306f9a3SSatish Balay /* ---------------------------------------------------------------------*/ 659306f9a3SSatish Balay 6619caf8f3SSatish Balay PETSC_EXTERN void petscoptionsinsertstring_(PetscOptions *options,char* file,PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T len) 67ab66e762SBarry Smith { 68ab66e762SBarry Smith char *c1; 69ab66e762SBarry Smith 70ab66e762SBarry Smith FIXCHAR(file,len,c1); 71d49bb8f9SBarry Smith *ierr = PetscOptionsInsertString(*options,c1);if (*ierr) return; 72ab66e762SBarry Smith FREECHAR(file,c1); 73ab66e762SBarry Smith } 74ab66e762SBarry Smith 7519caf8f3SSatish Balay PETSC_EXTERN void petscoptionsinsertfile_(MPI_Fint *comm,PetscOptions *options,char* file,PetscBool *require,PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T len) 769306f9a3SSatish Balay { 779306f9a3SSatish Balay char *c1; 789306f9a3SSatish Balay 799306f9a3SSatish Balay FIXCHAR(file,len,c1); 80d49bb8f9SBarry Smith *ierr = PetscOptionsInsertFile(MPI_Comm_f2c(*comm),*options,c1,*require);if (*ierr) return; 819306f9a3SSatish Balay FREECHAR(file,c1); 829306f9a3SSatish Balay } 839306f9a3SSatish Balay 8419caf8f3SSatish Balay PETSC_EXTERN void petscoptionssetvalue_(PetscOptions *options,char* name,char* value, 8519caf8f3SSatish Balay PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T len1,PETSC_FORTRAN_CHARLEN_T len2) 869306f9a3SSatish Balay { 879306f9a3SSatish Balay char *c1,*c2; 889306f9a3SSatish Balay 899306f9a3SSatish Balay FIXCHAR(name,len1,c1); 909306f9a3SSatish Balay FIXCHAR(value,len2,c2); 91d49bb8f9SBarry Smith *ierr = PetscOptionsSetValue(*options,c1,c2);if (*ierr) return; 929306f9a3SSatish Balay FREECHAR(name,c1); 939306f9a3SSatish Balay FREECHAR(value,c2); 949306f9a3SSatish Balay } 959306f9a3SSatish Balay 9619caf8f3SSatish Balay PETSC_EXTERN void petscoptionsclear_(PetscOptions *options,PetscErrorCode *ierr) 97a542b6e8SBarry Smith { 98c5929fdfSBarry Smith *ierr = PetscOptionsClear(*options); 99a542b6e8SBarry Smith } 100a542b6e8SBarry Smith 10119caf8f3SSatish Balay PETSC_EXTERN void petscoptionsclearvalue_(PetscOptions *options,char* name,PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T len) 1029306f9a3SSatish Balay { 1039306f9a3SSatish Balay char *c1; 1049306f9a3SSatish Balay 1059306f9a3SSatish Balay FIXCHAR(name,len,c1); 106d49bb8f9SBarry Smith *ierr = PetscOptionsClearValue(*options,c1);if (*ierr) return; 1079306f9a3SSatish Balay FREECHAR(name,c1); 1089306f9a3SSatish Balay } 1099306f9a3SSatish Balay 11019caf8f3SSatish Balay PETSC_EXTERN void petscoptionshasname_(PetscOptions *options,char* pre,char* name, 11119caf8f3SSatish Balay PetscBool *flg,PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T len1,PETSC_FORTRAN_CHARLEN_T len2) 1129306f9a3SSatish Balay { 1139306f9a3SSatish Balay char *c1,*c2; 1149306f9a3SSatish Balay 1159306f9a3SSatish Balay FIXCHAR(pre,len1,c1); 1169306f9a3SSatish Balay FIXCHAR(name,len2,c2); 117d49bb8f9SBarry Smith *ierr = PetscOptionsHasName(*options,c1,c2,flg);if (*ierr) return; 1189306f9a3SSatish Balay FREECHAR(pre,c1); 1199306f9a3SSatish Balay FREECHAR(name,c2); 1209306f9a3SSatish Balay } 1219306f9a3SSatish Balay 12219caf8f3SSatish Balay PETSC_EXTERN void petscoptionsgetint_(PetscOptions *opt,char* pre,char* name, 12319caf8f3SSatish Balay PetscInt *ivalue,PetscBool *flg,PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T len1,PETSC_FORTRAN_CHARLEN_T len2) 1249306f9a3SSatish Balay { 1259306f9a3SSatish Balay char *c1,*c2; 126ace3abfcSBarry Smith PetscBool flag; 1279306f9a3SSatish Balay 1289306f9a3SSatish Balay FIXCHAR(pre,len1,c1); 1299306f9a3SSatish Balay FIXCHAR(name,len2,c2); 130d49bb8f9SBarry Smith *ierr = PetscOptionsGetInt(*opt,c1,c2,ivalue,&flag);if (*ierr) return; 1315c550465SJed Brown if (!FORTRANNULLBOOL(flg)) *flg = flag; 1329306f9a3SSatish Balay FREECHAR(pre,c1); 1339306f9a3SSatish Balay FREECHAR(name,c2); 1349306f9a3SSatish Balay } 1359306f9a3SSatish Balay 13619caf8f3SSatish Balay PETSC_EXTERN void petscoptionsgetenumprivate_(PetscOptions *options,char* pre,char* name,const char *const*list, 13719caf8f3SSatish Balay PetscEnum *ivalue,PetscBool *flg,PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T len1,PETSC_FORTRAN_CHARLEN_T len2) 13847340559SBarry Smith { 13947340559SBarry Smith char *c1,*c2; 14047340559SBarry Smith PetscBool flag; 14147340559SBarry Smith 14247340559SBarry Smith FIXCHAR(pre,len1,c1); 14347340559SBarry Smith FIXCHAR(name,len2,c2); 144d49bb8f9SBarry Smith *ierr = PetscOptionsGetEnum(*options,c1,c2,list,ivalue,&flag);if (*ierr) return; 14547340559SBarry Smith if (!FORTRANNULLBOOL(flg)) *flg = flag; 14647340559SBarry Smith FREECHAR(pre,c1); 14747340559SBarry Smith FREECHAR(name,c2); 14847340559SBarry Smith } 14947340559SBarry Smith 15019caf8f3SSatish Balay PETSC_EXTERN void petscoptionsgetbool_(PetscOptions *options,char* pre,char* name, 15119caf8f3SSatish Balay PetscBool *ivalue,PetscBool *flg,PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T len1,PETSC_FORTRAN_CHARLEN_T len2) 1529306f9a3SSatish Balay { 1539306f9a3SSatish Balay char *c1,*c2; 154ace3abfcSBarry Smith PetscBool flag; 1559306f9a3SSatish Balay 1569306f9a3SSatish Balay FIXCHAR(pre,len1,c1); 1579306f9a3SSatish Balay FIXCHAR(name,len2,c2); 158d49bb8f9SBarry Smith *ierr = PetscOptionsGetBool(*options,c1,c2,ivalue,&flag);if (*ierr) return; 1595c550465SJed Brown if (!FORTRANNULLBOOL(flg)) *flg = flag; 1609306f9a3SSatish Balay FREECHAR(pre,c1); 1619306f9a3SSatish Balay FREECHAR(name,c2); 1629306f9a3SSatish Balay } 1639306f9a3SSatish Balay 164*b0c0aa2bSBlaise Bourdin PETSC_EXTERN void petscoptionsgetboolarray_(PetscOptions *options,char* pre,char* name, 165*b0c0aa2bSBlaise Bourdin PetscBool *dvalue,PetscInt *nmax,PetscBool *flg,PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T len1,PETSC_FORTRAN_CHARLEN_T len2) 166*b0c0aa2bSBlaise Bourdin { 167*b0c0aa2bSBlaise Bourdin char *c1,*c2; 168*b0c0aa2bSBlaise Bourdin PetscBool flag; 169*b0c0aa2bSBlaise Bourdin 170*b0c0aa2bSBlaise Bourdin FIXCHAR(pre,len1,c1); 171*b0c0aa2bSBlaise Bourdin FIXCHAR(name,len2,c2); 172*b0c0aa2bSBlaise Bourdin *ierr = PetscOptionsGetBoolArray(*options,c1,c2,dvalue,nmax,&flag);if (*ierr) return; 173*b0c0aa2bSBlaise Bourdin if (!FORTRANNULLBOOL(flg)) *flg = flag; 174*b0c0aa2bSBlaise Bourdin FREECHAR(pre,c1); 175*b0c0aa2bSBlaise Bourdin FREECHAR(name,c2); 176*b0c0aa2bSBlaise Bourdin } 177*b0c0aa2bSBlaise Bourdin 17819caf8f3SSatish Balay PETSC_EXTERN void petscoptionsgetreal_(PetscOptions *options,char* pre,char* name, 17919caf8f3SSatish Balay PetscReal *dvalue,PetscBool *flg,PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T len1,PETSC_FORTRAN_CHARLEN_T len2) 1809306f9a3SSatish Balay { 1819306f9a3SSatish Balay char *c1,*c2; 182ace3abfcSBarry Smith PetscBool flag; 1839306f9a3SSatish Balay 1849306f9a3SSatish Balay FIXCHAR(pre,len1,c1); 1859306f9a3SSatish Balay FIXCHAR(name,len2,c2); 186d49bb8f9SBarry Smith *ierr = PetscOptionsGetReal(*options,c1,c2,dvalue,&flag);if (*ierr) return; 1875c550465SJed Brown if (!FORTRANNULLBOOL(flg)) *flg = flag; 1889306f9a3SSatish Balay FREECHAR(pre,c1); 1899306f9a3SSatish Balay FREECHAR(name,c2); 1909306f9a3SSatish Balay } 1919306f9a3SSatish Balay 19219caf8f3SSatish Balay PETSC_EXTERN void petscoptionsgetscalar_(PetscOptions *options,char* pre,char* name, 19319caf8f3SSatish Balay PetscScalar *dvalue,PetscBool *flg,PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T len1,PETSC_FORTRAN_CHARLEN_T len2) 1947a7a6802SBarry Smith { 1957a7a6802SBarry Smith char *c1,*c2; 1967a7a6802SBarry Smith PetscBool flag; 1977a7a6802SBarry Smith 1987a7a6802SBarry Smith FIXCHAR(pre,len1,c1); 1997a7a6802SBarry Smith FIXCHAR(name,len2,c2); 200d49bb8f9SBarry Smith *ierr = PetscOptionsGetScalar(*options,c1,c2,dvalue,&flag);if (*ierr) return; 2017a7a6802SBarry Smith if (!FORTRANNULLBOOL(flg)) *flg = flag; 2027a7a6802SBarry Smith FREECHAR(pre,c1); 2037a7a6802SBarry Smith FREECHAR(name,c2); 2047a7a6802SBarry Smith } 2057a7a6802SBarry Smith 206*b0c0aa2bSBlaise Bourdin PETSC_EXTERN void petscoptionsgetscalararray_(PetscOptions *options,char* pre,char* name, 207*b0c0aa2bSBlaise Bourdin PetscScalar *dvalue,PetscInt *nmax,PetscBool *flg,PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T len1,PETSC_FORTRAN_CHARLEN_T len2) 208*b0c0aa2bSBlaise Bourdin { 209*b0c0aa2bSBlaise Bourdin char *c1,*c2; 210*b0c0aa2bSBlaise Bourdin PetscBool flag; 211*b0c0aa2bSBlaise Bourdin 212*b0c0aa2bSBlaise Bourdin FIXCHAR(pre,len1,c1); 213*b0c0aa2bSBlaise Bourdin FIXCHAR(name,len2,c2); 214*b0c0aa2bSBlaise Bourdin *ierr = PetscOptionsGetScalarArray(*options,c1,c2,dvalue,nmax,&flag);if (*ierr) return; 215*b0c0aa2bSBlaise Bourdin if (!FORTRANNULLBOOL(flg)) *flg = flag; 216*b0c0aa2bSBlaise Bourdin FREECHAR(pre,c1); 217*b0c0aa2bSBlaise Bourdin FREECHAR(name,c2); 218*b0c0aa2bSBlaise Bourdin } 219*b0c0aa2bSBlaise Bourdin 22019caf8f3SSatish Balay PETSC_EXTERN void petscoptionsgetrealarray_(PetscOptions *options,char* pre,char* name, 22119caf8f3SSatish Balay PetscReal *dvalue,PetscInt *nmax,PetscBool *flg,PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T len1,PETSC_FORTRAN_CHARLEN_T len2) 2229306f9a3SSatish Balay { 2239306f9a3SSatish Balay char *c1,*c2; 224ace3abfcSBarry Smith PetscBool flag; 2259306f9a3SSatish Balay 2269306f9a3SSatish Balay FIXCHAR(pre,len1,c1); 2279306f9a3SSatish Balay FIXCHAR(name,len2,c2); 228d49bb8f9SBarry Smith *ierr = PetscOptionsGetRealArray(*options,c1,c2,dvalue,nmax,&flag);if (*ierr) return; 2295c550465SJed Brown if (!FORTRANNULLBOOL(flg)) *flg = flag; 2309306f9a3SSatish Balay FREECHAR(pre,c1); 2319306f9a3SSatish Balay FREECHAR(name,c2); 2329306f9a3SSatish Balay } 2339306f9a3SSatish Balay 23419caf8f3SSatish Balay PETSC_EXTERN void petscoptionsgetintarray_(PetscOptions *options,char* pre,char* name, 23519caf8f3SSatish Balay PetscInt *dvalue,PetscInt *nmax,PetscBool *flg,PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T len1,PETSC_FORTRAN_CHARLEN_T len2) 2369306f9a3SSatish Balay { 2379306f9a3SSatish Balay char *c1,*c2; 238ace3abfcSBarry Smith PetscBool flag; 2399306f9a3SSatish Balay 2409306f9a3SSatish Balay FIXCHAR(pre,len1,c1); 2419306f9a3SSatish Balay FIXCHAR(name,len2,c2); 242d49bb8f9SBarry Smith *ierr = PetscOptionsGetIntArray(*options,c1,c2,dvalue,nmax,&flag);if (*ierr) return; 2435c550465SJed Brown if (!FORTRANNULLBOOL(flg)) *flg = flag; 2449306f9a3SSatish Balay FREECHAR(pre,c1); 2459306f9a3SSatish Balay FREECHAR(name,c2); 2469306f9a3SSatish Balay } 2479306f9a3SSatish Balay 24819caf8f3SSatish Balay PETSC_EXTERN void petscoptionsgetstring_(PetscOptions *options,char* pre,char* name, 24919caf8f3SSatish Balay char* string,PetscBool *flg, 25019caf8f3SSatish Balay PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T len1,PETSC_FORTRAN_CHARLEN_T len2,PETSC_FORTRAN_CHARLEN_T len) 2519306f9a3SSatish Balay { 2529306f9a3SSatish Balay char *c1,*c2,*c3; 2534610e317SSatish Balay size_t len3; 254ace3abfcSBarry Smith PetscBool flag; 2559306f9a3SSatish Balay 2569306f9a3SSatish Balay FIXCHAR(pre,len1,c1); 2579306f9a3SSatish Balay FIXCHAR(name,len2,c2); 2589306f9a3SSatish Balay c3 = string; 2599306f9a3SSatish Balay len3 = len - 1; 2609306f9a3SSatish Balay 261d49bb8f9SBarry Smith *ierr = PetscOptionsGetString(*options,c1,c2,c3,len3,&flag);if (*ierr) return; 2625c550465SJed Brown if (!FORTRANNULLBOOL(flg)) *flg = flag; 2639306f9a3SSatish Balay FREECHAR(pre,c1); 2649306f9a3SSatish Balay FREECHAR(name,c2); 2657c363081SBarry Smith FIXRETURNCHAR(flag,string,len); 2669306f9a3SSatish Balay } 2679306f9a3SSatish Balay 26819caf8f3SSatish Balay PETSC_EXTERN void petscgetprogramname_(char* name,PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T len_in) 2699306f9a3SSatish Balay { 2709306f9a3SSatish Balay char *tmp; 2714610e317SSatish Balay size_t len; 2729306f9a3SSatish Balay tmp = name; 2739306f9a3SSatish Balay len = len_in - 1; 2749306f9a3SSatish Balay *ierr = PetscGetProgramName(tmp,len); 2757c363081SBarry Smith FIXRETURNCHAR(PETSC_TRUE,name,len_in); 2769306f9a3SSatish Balay } 2779306f9a3SSatish Balay 27819caf8f3SSatish Balay PETSC_EXTERN void petscoptionsview_(PetscOptions *options,PetscViewer *vin,PetscErrorCode *ierr) 2793a15af8cSBlaise Bourdin { 2803a15af8cSBlaise Bourdin PetscViewer v; 2813a15af8cSBlaise Bourdin 2823a15af8cSBlaise Bourdin PetscPatchDefaultViewers_Fortran(vin,v); 283c5929fdfSBarry Smith *ierr = PetscOptionsView(*options,v); 2843a15af8cSBlaise Bourdin } 2853a15af8cSBlaise Bourdin 28619caf8f3SSatish Balay PETSC_EXTERN void petscobjectviewfromoptions_(PetscObject *obj,PetscObject *bobj,char* option,PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T loption) 287a2865142SMatthew G. Knepley { 288685405a1SBarry Smith char *o; 289a2865142SMatthew G. Knepley 290a2865142SMatthew G. Knepley FIXCHAR(option, loption, o); 291b14c0cbaSBlaise Bourdin CHKFORTRANNULLOBJECT(obj); 292d49bb8f9SBarry Smith *ierr = PetscObjectViewFromOptions(*obj, *bobj, o);if (*ierr) return; 293a2865142SMatthew G. Knepley FREECHAR(option, o); 294a2865142SMatthew G. Knepley } 295a530d236SBarry Smith 296a530d236SBarry Smith PETSC_EXTERN void petscsubcommgetparent_(PetscSubcomm *scomm,MPI_Fint *pcomm, int *ierr) 297a530d236SBarry Smith { 298a530d236SBarry Smith MPI_Comm tcomm; 299a530d236SBarry Smith *ierr = PetscSubcommGetParent(*scomm,&tcomm); 300a530d236SBarry Smith *pcomm = MPI_Comm_c2f(tcomm); 301a530d236SBarry Smith } 302a530d236SBarry Smith 303a530d236SBarry Smith PETSC_EXTERN void petscsubcommgetcontiguousparent_(PetscSubcomm *scomm,MPI_Fint *pcomm, int *ierr) 304a530d236SBarry Smith { 305a530d236SBarry Smith MPI_Comm tcomm; 306a530d236SBarry Smith *ierr = PetscSubcommGetContiguousParent(*scomm,&tcomm); 307a530d236SBarry Smith *pcomm = MPI_Comm_c2f(tcomm); 308a530d236SBarry Smith } 309a530d236SBarry Smith 310a530d236SBarry Smith PETSC_EXTERN void petscsubcommgetchild_(PetscSubcomm *scomm,MPI_Fint *ccomm, int *ierr) 311a530d236SBarry Smith { 312a530d236SBarry Smith MPI_Comm tcomm; 313a530d236SBarry Smith *ierr = PetscSubcommGetChild(*scomm,&tcomm); 314a530d236SBarry Smith *ccomm = MPI_Comm_c2f(tcomm); 315a530d236SBarry Smith } 316a530d236SBarry Smith 317a530d236SBarry Smith PETSC_EXTERN void petscsubcommview_(PetscSubcomm *psubcomm,PetscViewer *viewer, int *ierr) 318a530d236SBarry Smith { 319a530d236SBarry Smith PetscViewer v; 320a530d236SBarry Smith PetscPatchDefaultViewers_Fortran(viewer,v); 321a530d236SBarry Smith *ierr = PetscSubcommView(*psubcomm,v); 322a530d236SBarry Smith } 323