16dd63270SBarry Smith module petscmpi 26dd63270SBarry Smith#include <petscconf.h> 36dd63270SBarry Smith#include "petsc/finclude/petscsys.h" 46dd63270SBarry Smith#if defined(PETSC_HAVE_MPIUNI) 56dd63270SBarry Smith use mpiuni 66dd63270SBarry Smith#else 76dd63270SBarry Smith#if defined(PETSC_HAVE_MPI_F90MODULE) 86dd63270SBarry Smith use mpi 96dd63270SBarry Smith#else 106dd63270SBarry Smith#include "mpif.h" 116dd63270SBarry Smith#endif 126dd63270SBarry Smith#endif 136dd63270SBarry Smith 146dd63270SBarry Smith public:: MPIU_REAL, MPIU_SUM, MPIU_SCALAR, MPIU_INTEGER 156dd63270SBarry Smith public:: PETSC_COMM_WORLD, PETSC_COMM_SELF 166dd63270SBarry Smith 176dd63270SBarry Smith! These values are for __float128 are handled in the common block (below) 186dd63270SBarry Smith! and transmitted from the C code 196dd63270SBarry Smith 206dd63270SBarry Smith integer4 :: MPIU_REAL 216dd63270SBarry Smith integer4 :: MPIU_SUM 226dd63270SBarry Smith integer4 :: MPIU_SCALAR 236dd63270SBarry Smith integer4 :: MPIU_INTEGER 246dd63270SBarry Smith 256dd63270SBarry Smith MPI_Comm::PETSC_COMM_WORLD = 0 266dd63270SBarry Smith MPI_Comm::PETSC_COMM_SELF = 0 276dd63270SBarry Smith 286dd63270SBarry Smith#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES) 296dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::MPIU_REAL 306dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::MPIU_SUM 316dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::MPIU_SCALAR 326dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::MPIU_INTEGER 336dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_COMM_SELF 346dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_COMM_WORLD 356dd63270SBarry Smith#endif 366dd63270SBarry Smith end module 376dd63270SBarry Smith 386dd63270SBarry Smith! ------------------------------------------------------------------------ 396dd63270SBarry Smith 406dd63270SBarry Smith module petscsysdef 416dd63270SBarry Smith#if defined(PETSC_HAVE_MPI_F90MODULE_VISIBILITY) 426dd63270SBarry Smith use petscmpi 436dd63270SBarry Smith#else 446dd63270SBarry Smith use petscmpi, only: MPIU_REAL,MPIU_SUM,MPIU_SCALAR,MPIU_INTEGER,PETSC_COMM_WORLD,PETSC_COMM_SELF 456dd63270SBarry Smith#endif 466dd63270SBarry Smith PetscReal,Parameter :: PetscReal_Private = 1.0 476dd63270SBarry Smith Integer,Parameter :: PETSC_REAL_KIND = Selected_Real_Kind(Precision(PetscReal_Private)) 486dd63270SBarry Smith 496dd63270SBarry Smith PetscBool, parameter :: PETSC_TRUE = .true. 506dd63270SBarry Smith PetscBool, parameter :: PETSC_FALSE = .false. 516dd63270SBarry Smith 526dd63270SBarry Smith PetscInt, parameter :: PETSC_DECIDE = -1 536dd63270SBarry Smith PetscInt, parameter :: PETSC_DECIDE_INTEGER = -1 546dd63270SBarry Smith PetscReal, parameter :: PETSC_DECIDE_REAL = -1.0d0 556dd63270SBarry Smith#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES) 566dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_DECIDE 576dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_DECIDE_INTEGER 586dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_DECIDE_REAL 596dd63270SBarry Smith#endif 606dd63270SBarry Smith 616dd63270SBarry Smith PetscInt, parameter :: PETSC_DETERMINE = -1 626dd63270SBarry Smith PetscInt, parameter :: PETSC_DETERMINE_INTEGER = -1 636dd63270SBarry Smith PetscReal, parameter :: PETSC_DETERMINE_REAL = -1.0d0 646dd63270SBarry Smith#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES) 656dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_DETERMINE 666dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_DETERMINE_INTEGER 676dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_DETERMINE_REAL 686dd63270SBarry Smith#endif 696dd63270SBarry Smith 706dd63270SBarry Smith PetscInt, parameter :: PETSC_CURRENT = -2 716dd63270SBarry Smith PetscInt, parameter :: PETSC_CURRENT_INTEGER = -2 726dd63270SBarry Smith PetscReal, parameter :: PETSC_CURRENT_REAL = -2.0d0 736dd63270SBarry Smith#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES) 746dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_CURRENT 756dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_CURRENT_INTEGER 766dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_CURRENT_REAL 776dd63270SBarry Smith#endif 786dd63270SBarry Smith 796dd63270SBarry Smith PetscInt, parameter :: PETSC_DEFAULT = -2 806dd63270SBarry Smith PetscInt, parameter :: PETSC_DEFAULT_INTEGER = -2 816dd63270SBarry Smith PetscReal, parameter :: PETSC_DEFAULT_REAL = -2.0d0 826dd63270SBarry Smith#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES) 836dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_DEFAULT 846dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_DEFAULT_INTEGER 856dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_DEFAULT_REAL 866dd63270SBarry Smith#endif 876dd63270SBarry Smith PetscFortranAddr, parameter :: PETSC_STDOUT = 0 886dd63270SBarry Smith! 896dd63270SBarry Smith! PETSc DataTypes 906dd63270SBarry Smith! 916dd63270SBarry Smith#if defined(PETSC_USE_REAL_SINGLE) 926dd63270SBarry Smith#define PETSC_REAL PETSC_FLOAT 936dd63270SBarry Smith#elif defined(PETSC_USE_REAL___FLOAT128) 946dd63270SBarry Smith#define PETSC_REAL PETSC___FLOAT128 956dd63270SBarry Smith#else 966dd63270SBarry Smith#define PETSC_REAL PETSC_DOUBLE 976dd63270SBarry Smith#endif 986dd63270SBarry Smith#define PETSC_FORTRANADDR PETSC_LONG 996dd63270SBarry Smith 1006dd63270SBarry Smith! PETSc mathematics include file. Defines certain basic mathematical 1016dd63270SBarry Smith! constants and functions for working with single and double precision 1026dd63270SBarry Smith! floating point numbers as well as complex and integers. 1036dd63270SBarry Smith! 1046dd63270SBarry Smith! Representation of complex i 1056dd63270SBarry Smith! 1066dd63270SBarry Smith#if defined(PETSC_USE_REAL_SINGLE) 1076dd63270SBarry Smith PetscComplex, parameter :: PETSC_i = (0.0e0,1.0e0) 1086dd63270SBarry Smith#else 1096dd63270SBarry Smith PetscComplex, parameter :: PETSC_i = (0.0d0,1.0d0) 1106dd63270SBarry Smith#endif 1116dd63270SBarry Smith 1126dd63270SBarry Smith! A PETSC_NULL_FUNCTION pointer 1136dd63270SBarry Smith! 1146dd63270SBarry Smith external PETSC_NULL_FUNCTION 1156dd63270SBarry Smith! 1166dd63270SBarry Smith! Possible arguments to PetscPushErrorHandler() 1176dd63270SBarry Smith! 1186dd63270SBarry Smith external PETSCTRACEBACKERRORHANDLER 1196dd63270SBarry Smith external PETSCABORTERRORHANDLER 1206dd63270SBarry Smith external PETSCEMACSCLIENTERRORHANDLER 1216dd63270SBarry Smith external PETSCATTACHDEBUGGERERRORHANDLER 1226dd63270SBarry Smith external PETSCIGNOREERRORHANDLER 1236dd63270SBarry Smith! 1246dd63270SBarry Smith external PetscIsInfOrNanScalar 1256dd63270SBarry Smith external PetscIsInfOrNanReal 1266dd63270SBarry Smith PetscBool PetscIsInfOrNanScalar 1276dd63270SBarry Smith PetscBool PetscIsInfOrNanReal 1286dd63270SBarry Smith 1296dd63270SBarry Smith#include <../ftn/sys/petscall.h> 1306dd63270SBarry Smith 1316dd63270SBarry Smith PetscViewer, parameter :: PETSC_VIEWER_STDOUT_SELF = tPetscViewer(9) 1326dd63270SBarry Smith PetscViewer, parameter :: PETSC_VIEWER_DRAW_WORLD = tPetscViewer(4) 1336dd63270SBarry Smith PetscViewer, parameter :: PETSC_VIEWER_DRAW_SELF = tPetscViewer(5) 1346dd63270SBarry Smith PetscViewer, parameter :: PETSC_VIEWER_SOCKET_WORLD = tPetscViewer(6) 1356dd63270SBarry Smith PetscViewer, parameter :: PETSC_VIEWER_SOCKET_SELF = tPetscViewer(7) 1366dd63270SBarry Smith PetscViewer, parameter :: PETSC_VIEWER_STDOUT_WORLD = tPetscViewer(8) 1376dd63270SBarry Smith PetscViewer, parameter :: PETSC_VIEWER_STDERR_WORLD = tPetscViewer(10) 1386dd63270SBarry Smith PetscViewer, parameter :: PETSC_VIEWER_STDERR_SELF = tPetscViewer(11) 1396dd63270SBarry Smith PetscViewer, parameter :: PETSC_VIEWER_BINARY_WORLD = tPetscViewer(12) 1406dd63270SBarry Smith PetscViewer, parameter :: PETSC_VIEWER_BINARY_SELF = tPetscViewer(13) 1416dd63270SBarry Smith PetscViewer, parameter :: PETSC_VIEWER_MATLAB_WORLD = tPetscViewer(14) 1426dd63270SBarry Smith PetscViewer, parameter :: PETSC_VIEWER_MATLAB_SELF = tPetscViewer(15) 1436dd63270SBarry Smith 1446dd63270SBarry Smith PetscViewer PETSC_VIEWER_STDOUT_ 1456dd63270SBarry Smith PetscViewer PETSC_VIEWER_DRAW_ 1466dd63270SBarry Smith external PETSC_VIEWER_STDOUT_ 1476dd63270SBarry Smith external PETSC_VIEWER_DRAW_ 1486dd63270SBarry Smith external PetscViewerAndFormatDestroy 1496dd63270SBarry Smith 1506dd63270SBarry Smith#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES) 1516dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_VIEWER_STDOUT_SELF 1526dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_VIEWER_DRAW_WORLD 1536dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_VIEWER_DRAW_SELF 1546dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_VIEWER_SOCKET_WORLD 1556dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_VIEWER_SOCKET_SELF 1566dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_VIEWER_STDOUT_WORLD 1576dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_VIEWER_STDERR_WORLD 1586dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_VIEWER_STDERR_SELF 1596dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_VIEWER_BINARY_WORLD 1606dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_VIEWER_BINARY_SELF 1616dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_VIEWER_MATLAB_WORLD 1626dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_VIEWER_MATLAB_SELF 1636dd63270SBarry Smith#endif 1646dd63270SBarry Smith 1656dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_MEM = 55 1666dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_SUP = 56 1676dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_SUP_SYS = 57 1686dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_ORDER = 58 1696dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_SIG = 59 1706dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_FP = 72 1716dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_COR = 74 1726dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_LIB = 76 1736dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_PLIB = 77 1746dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_MEMC = 78 1756dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_CONV_FAILED = 82 1766dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_USER = 83 1776dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_SYS = 88 1786dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_POINTER = 70 1796dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_MPI_LIB_INCOMP = 87 1806dd63270SBarry Smith 1816dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_ARG_SIZ = 60 1826dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_ARG_IDN = 61 1836dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_ARG_WRONG = 62 1846dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_ARG_CORRUPT = 64 1856dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_ARG_OUTOFRANGE = 63 1866dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_ARG_BADPTR = 68 1876dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_ARG_NOTSAMETYPE = 69 1886dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_ARG_NOTSAMECOMM = 80 1896dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_ARG_WRONGSTATE = 73 1906dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_ARG_TYPENOTSET = 89 1916dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_ARG_INCOMP = 75 1926dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_ARG_NULL = 85 1936dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_ARG_UNKNOWN_TYPE = 86 1946dd63270SBarry Smith 1956dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_FILE_OPEN = 65 1966dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_FILE_READ = 66 1976dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_FILE_WRITE = 67 1986dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_FILE_UNEXPECTED = 79 1996dd63270SBarry Smith 2006dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_MAT_LU_ZRPVT = 71 2016dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_MAT_CH_ZRPVT = 81 2026dd63270SBarry Smith 2036dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_INT_OVERFLOW = 84 2046dd63270SBarry Smith 2056dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_FLOP_COUNT = 90 2066dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_NOT_CONVERGED = 91 2076dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_MISSING_FACTOR = 92 2086dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_OPT_OVERWRITE = 93 2096dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_WRONG_MPI_SIZE = 94 2106dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_USER_INPUT = 95 2116dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_GPU_RESOURCE = 96 2126dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_GPU = 97 2136dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_MPI = 98 2146dd63270SBarry Smith PetscErrorCode, parameter :: PETSC_ERR_RETURN = 99 2156dd63270SBarry Smith 2166dd63270SBarry Smith character(len = 80) :: PETSC_NULL_CHARACTER = '' 2176dd63270SBarry Smith PetscInt PETSC_NULL_INTEGER, PETSC_NULL_INTEGER_ARRAY(1) 2186dd63270SBarry Smith PetscInt, pointer :: PETSC_NULL_INTEGER_POINTER(:) 2196dd63270SBarry Smith PetscScalar, pointer :: PETSC_NULL_SCALAR_POINTER(:) 2206dd63270SBarry Smith PetscFortranDouble PETSC_NULL_DOUBLE 2216dd63270SBarry Smith PetscScalar PETSC_NULL_SCALAR, PETSC_NULL_SCALAR_ARRAY(1) 2226dd63270SBarry Smith PetscReal PETSC_NULL_REAL, PETSC_NULL_REAL_ARRAY(1) 2236dd63270SBarry Smith PetscReal, pointer :: PETSC_NULL_REAL_POINTER(:) 2246dd63270SBarry Smith PetscBool PETSC_NULL_BOOL 2256dd63270SBarry Smith PetscEnum PETSC_NULL_ENUM 2266dd63270SBarry Smith MPI_Comm PETSC_NULL_MPI_COMM 2276dd63270SBarry Smith! 2286dd63270SBarry Smith! Basic math constants 2296dd63270SBarry Smith! 2306dd63270SBarry Smith PetscReal PETSC_PI 2316dd63270SBarry Smith PetscReal PETSC_MAX_REAL 2326dd63270SBarry Smith PetscReal PETSC_MIN_REAL 2336dd63270SBarry Smith PetscReal PETSC_MACHINE_EPSILON 2346dd63270SBarry Smith PetscReal PETSC_SQRT_MACHINE_EPSILON 2356dd63270SBarry Smith PetscReal PETSC_SMALL 2366dd63270SBarry Smith PetscReal PETSC_INFINITY 2376dd63270SBarry Smith PetscReal PETSC_NINFINITY 2386dd63270SBarry Smith 2396dd63270SBarry Smith#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES) 2406dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_NULL_CHARACTER 2416dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_NULL_INTEGER 2426dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_NULL_INTEGER_ARRAY 2436dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_NULL_INTEGER_POINTER 2446dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_NULL_SCALAR_POINTER 2456dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_NULL_REAL_POINTER 2466dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_NULL_DOUBLE 2476dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_NULL_SCALAR 2486dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_NULL_SCALAR_ARRAY 2496dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_NULL_REAL 2506dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_NULL_REAL_ARRAY 2516dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_NULL_BOOL 2526dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_NULL_ENUM 2536dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_NULL_MPI_COMM 2546dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_PI 2556dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_MAX_REAL 2566dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_MIN_REAL 2576dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_MACHINE_EPSILON 2586dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_SQRT_MACHINE_EPSILON 2596dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_SMALL 2606dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_INFINITY 2616dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PETSC_NINFINITY 2626dd63270SBarry Smith#endif 2636dd63270SBarry Smith 2646dd63270SBarry Smith type tPetscReal2d 2656dd63270SBarry Smith sequence 2666dd63270SBarry Smith PetscReal, dimension(:), pointer :: ptr 2676dd63270SBarry Smith end type tPetscReal2D 2686dd63270SBarry Smith 2696dd63270SBarry Smith end module 2706dd63270SBarry Smith 2716dd63270SBarry Smith! ------------------------------------------------------------------------ 2726dd63270SBarry Smith 2736dd63270SBarry Smith module petscsys 2746dd63270SBarry Smith use,intrinsic :: iso_c_binding 2756dd63270SBarry Smith use petscsysdef 2766dd63270SBarry Smith 2776dd63270SBarry Smith#include <../src/sys/ftn-mod/petscsys.h90> 2786dd63270SBarry Smith#include <../src/sys/ftn-mod/petscviewer.h90> 2796dd63270SBarry Smith#include <../ftn/sys/petscall.h90> 2806dd63270SBarry Smith 2816dd63270SBarry Smith interface PetscInitialize 2826dd63270SBarry Smith module procedure PetscInitializeWithHelp, PetscInitializeNoHelp, PetscInitializeNoArguments 2836dd63270SBarry Smith end interface 2846dd63270SBarry Smith 2856dd63270SBarry Smith interface PetscSetFortranBasePointers 2866dd63270SBarry Smith subroutine PetscSetFortranBasePointers( & 2876dd63270SBarry Smith & PETSC_NULL_CHARACTER, & 2886dd63270SBarry Smith & PETSC_NULL_INTEGER,PETSC_NULL_SCALAR, & 2896dd63270SBarry Smith & PETSC_NULL_DOUBLE,PETSC_NULL_REAL, & 2906dd63270SBarry Smith & PETSC_NULL_BOOL,PETSC_NULL_ENUM,PETSC_NULL_FUNCTION, & 2916dd63270SBarry Smith & PETSC_NULL_MPI_COMM, & 2926dd63270SBarry Smith & PETSC_NULL_INTEGER_ARRAY,PETSC_NULL_SCALAR_ARRAY, & 2936dd63270SBarry Smith & PETSC_NULL_REAL_ARRAY, APETSC_NULL_INTEGER_POINTER, & 2946dd63270SBarry Smith & PETSC_NULL_SCALAR_POINTER, PETSC_NULL_REAL_POINTER) 2956dd63270SBarry Smith character(*) PETSC_NULL_CHARACTER 2966dd63270SBarry Smith PetscInt PETSC_NULL_INTEGER 2976dd63270SBarry Smith PetscScalar PETSC_NULL_SCALAR 2986dd63270SBarry Smith PetscFortranDouble PETSC_NULL_DOUBLE 2996dd63270SBarry Smith PetscReal PETSC_NULL_REAL 3006dd63270SBarry Smith PetscBool PETSC_NULL_BOOL 3016dd63270SBarry Smith PetscEnum PETSC_NULL_ENUM 3026dd63270SBarry Smith external PETSC_NULL_FUNCTION 3036dd63270SBarry Smith MPI_Comm PETSC_NULL_MPI_COMM 3046dd63270SBarry Smith PetscInt PETSC_NULL_INTEGER_ARRAY(*) 3056dd63270SBarry Smith PetscScalar PETSC_NULL_SCALAR_ARRAY(*) 3066dd63270SBarry Smith PetscReal PETSC_NULL_REAL_ARRAY(*) 3076dd63270SBarry Smith PetscInt, pointer :: APETSC_NULL_INTEGER_POINTER(:) 3086dd63270SBarry Smith PetscScalar, pointer :: PETSC_NULL_SCALAR_POINTER(:) 3096dd63270SBarry Smith PetscReal, pointer :: PETSC_NULL_REAL_POINTER(:) 3106dd63270SBarry Smith end subroutine PetscSetFortranBasePointers 3116dd63270SBarry Smith end interface 3126dd63270SBarry Smith 3136dd63270SBarry Smith interface PetscOptionsString 3146dd63270SBarry Smith subroutine PetscOptionsString(string, text, man, default, value, flg, ierr) 3156dd63270SBarry Smith character(*) string, text, man, default, value 3166dd63270SBarry Smith PetscBool flg 3176dd63270SBarry Smith PetscErrorCode ierr 3186dd63270SBarry Smith end subroutine PetscOptionsString 3196dd63270SBarry Smith end interface 3206dd63270SBarry Smith 3216dd63270SBarry Smith Interface petscbinaryread 3226dd63270SBarry Smith subroutine petscbinaryreadcomplex(fd,data,num,count,type,z) 3236dd63270SBarry Smith import ePetscDataType 3246dd63270SBarry Smith integer4 fd 3256dd63270SBarry Smith PetscComplex data(*) 3266dd63270SBarry Smith PetscInt num 3276dd63270SBarry Smith PetscInt count 3286dd63270SBarry Smith PetscDataType type 3296dd63270SBarry Smith PetscErrorCode z 3306dd63270SBarry Smith end subroutine 3316dd63270SBarry Smith subroutine petscbinaryreadreal(fd,data,num,count,type,z) 3326dd63270SBarry Smith import ePetscDataType 3336dd63270SBarry Smith integer4 fd 3346dd63270SBarry Smith PetscReal data(*) 3356dd63270SBarry Smith PetscInt num 3366dd63270SBarry Smith PetscInt count 3376dd63270SBarry Smith PetscDataType type 3386dd63270SBarry Smith PetscErrorCode z 3396dd63270SBarry Smith end subroutine 3406dd63270SBarry Smith subroutine petscbinaryreadint(fd,data,num,count,type,z) 3416dd63270SBarry Smith import ePetscDataType 3426dd63270SBarry Smith integer4 fd 3436dd63270SBarry Smith PetscInt data(*) 3446dd63270SBarry Smith PetscInt num 3456dd63270SBarry Smith PetscInt count 3466dd63270SBarry Smith PetscDataType type 3476dd63270SBarry Smith PetscErrorCode z 3486dd63270SBarry Smith end subroutine 3496dd63270SBarry Smith subroutine petscbinaryreadcomplex1(fd,data,num,count,type,z) 3506dd63270SBarry Smith import ePetscDataType 3516dd63270SBarry Smith integer4 fd 3526dd63270SBarry Smith PetscComplex data 3536dd63270SBarry Smith PetscInt num 3546dd63270SBarry Smith PetscInt count 3556dd63270SBarry Smith PetscDataType type 3566dd63270SBarry Smith PetscErrorCode z 3576dd63270SBarry Smith end subroutine 3586dd63270SBarry Smith subroutine petscbinaryreadreal1(fd,data,num,count,type,z) 3596dd63270SBarry Smith import ePetscDataType 3606dd63270SBarry Smith integer4 fd 3616dd63270SBarry Smith PetscReal data 3626dd63270SBarry Smith PetscInt num 3636dd63270SBarry Smith PetscInt count 3646dd63270SBarry Smith PetscDataType type 3656dd63270SBarry Smith PetscErrorCode z 3666dd63270SBarry Smith end subroutine 3676dd63270SBarry Smith subroutine petscbinaryreadint1(fd,data,num,count,type,z) 3686dd63270SBarry Smith import ePetscDataType 3696dd63270SBarry Smith integer4 fd 3706dd63270SBarry Smith PetscInt data 3716dd63270SBarry Smith PetscInt num 3726dd63270SBarry Smith PetscInt count 3736dd63270SBarry Smith PetscDataType type 3746dd63270SBarry Smith PetscErrorCode z 3756dd63270SBarry Smith end subroutine 3766dd63270SBarry Smith subroutine petscbinaryreadcomplexcnt(fd,data,num,count,type,z) 3776dd63270SBarry Smith import ePetscDataType 3786dd63270SBarry Smith integer4 fd 3796dd63270SBarry Smith PetscComplex data(*) 3806dd63270SBarry Smith PetscInt num 3816dd63270SBarry Smith PetscInt count(1) 3826dd63270SBarry Smith PetscDataType type 3836dd63270SBarry Smith PetscErrorCode z 3846dd63270SBarry Smith end subroutine 3856dd63270SBarry Smith subroutine petscbinaryreadrealcnt(fd,data,num,count,type,z) 3866dd63270SBarry Smith import ePetscDataType 3876dd63270SBarry Smith integer4 fd 3886dd63270SBarry Smith PetscReal data(*) 3896dd63270SBarry Smith PetscInt num 3906dd63270SBarry Smith PetscInt count(1) 3916dd63270SBarry Smith PetscDataType type 3926dd63270SBarry Smith PetscErrorCode z 3936dd63270SBarry Smith end subroutine 3946dd63270SBarry Smith subroutine petscbinaryreadintcnt(fd,data,num,count,type,z) 3956dd63270SBarry Smith import ePetscDataType 3966dd63270SBarry Smith integer4 fd 3976dd63270SBarry Smith PetscInt data(*) 3986dd63270SBarry Smith PetscInt num 3996dd63270SBarry Smith PetscInt count(1) 4006dd63270SBarry Smith PetscDataType type 4016dd63270SBarry Smith PetscErrorCode z 4026dd63270SBarry Smith end subroutine 4036dd63270SBarry Smith subroutine petscbinaryreadcomplex1cnt(fd,data,num,count,type,z) 4046dd63270SBarry Smith import ePetscDataType 4056dd63270SBarry Smith integer4 fd 4066dd63270SBarry Smith PetscComplex data 4076dd63270SBarry Smith PetscInt num 4086dd63270SBarry Smith PetscInt count(1) 4096dd63270SBarry Smith PetscDataType type 4106dd63270SBarry Smith PetscErrorCode z 4116dd63270SBarry Smith end subroutine 4126dd63270SBarry Smith subroutine petscbinaryreadreal1cnt(fd,data,num,count,type,z) 4136dd63270SBarry Smith import ePetscDataType 4146dd63270SBarry Smith integer4 fd 4156dd63270SBarry Smith PetscReal data 4166dd63270SBarry Smith PetscInt num 4176dd63270SBarry Smith PetscInt count(1) 4186dd63270SBarry Smith PetscDataType type 4196dd63270SBarry Smith PetscErrorCode z 4206dd63270SBarry Smith end subroutine 4216dd63270SBarry Smith subroutine petscbinaryreadint1cnt(fd,data,num,count,type,z) 4226dd63270SBarry Smith import ePetscDataType 4236dd63270SBarry Smith integer4 fd 4246dd63270SBarry Smith PetscInt data 4256dd63270SBarry Smith PetscInt num 4266dd63270SBarry Smith PetscInt count(1) 4276dd63270SBarry Smith PetscDataType type 4286dd63270SBarry Smith PetscErrorCode z 4296dd63270SBarry Smith end subroutine 4306dd63270SBarry Smith end Interface 4316dd63270SBarry Smith 4326dd63270SBarry Smith Interface petscbinarywrite 4336dd63270SBarry Smith subroutine petscbinarywritecomplex(fd,data,num,type,z) 4346dd63270SBarry Smith import ePetscDataType 4356dd63270SBarry Smith integer4 fd 4366dd63270SBarry Smith PetscComplex data(*) 4376dd63270SBarry Smith PetscInt num 4386dd63270SBarry Smith PetscDataType type 4396dd63270SBarry Smith PetscErrorCode z 4406dd63270SBarry Smith end subroutine 4416dd63270SBarry Smith subroutine petscbinarywritereal(fd,data,num,type,z) 4426dd63270SBarry Smith import ePetscDataType 4436dd63270SBarry Smith integer4 fd 4446dd63270SBarry Smith PetscReal data(*) 4456dd63270SBarry Smith PetscInt num 4466dd63270SBarry Smith PetscDataType type 4476dd63270SBarry Smith PetscErrorCode z 4486dd63270SBarry Smith end subroutine 4496dd63270SBarry Smith subroutine petscbinarywriteint(fd,data,num,type,z) 4506dd63270SBarry Smith import ePetscDataType 4516dd63270SBarry Smith integer4 fd 4526dd63270SBarry Smith PetscInt data(*) 4536dd63270SBarry Smith PetscInt num 4546dd63270SBarry Smith PetscDataType type 4556dd63270SBarry Smith PetscErrorCode z 4566dd63270SBarry Smith end subroutine 4576dd63270SBarry Smith subroutine petscbinarywritecomplex1(fd,data,num,type,z) 4586dd63270SBarry Smith import ePetscDataType 4596dd63270SBarry Smith integer4 fd 4606dd63270SBarry Smith PetscComplex data 4616dd63270SBarry Smith PetscInt num 4626dd63270SBarry Smith PetscDataType type 4636dd63270SBarry Smith PetscErrorCode z 4646dd63270SBarry Smith end subroutine 4656dd63270SBarry Smith subroutine petscbinarywritereal1(fd,data,num,type,z) 4666dd63270SBarry Smith import ePetscDataType 4676dd63270SBarry Smith integer4 fd 4686dd63270SBarry Smith PetscReal data 4696dd63270SBarry Smith PetscInt num 4706dd63270SBarry Smith PetscDataType type 4716dd63270SBarry Smith PetscErrorCode z 4726dd63270SBarry Smith end subroutine 4736dd63270SBarry Smith subroutine petscbinarywriteint1(fd,data,num,type,z) 4746dd63270SBarry Smith import ePetscDataType 4756dd63270SBarry Smith integer4 fd 4766dd63270SBarry Smith PetscInt data 4776dd63270SBarry Smith PetscInt num 4786dd63270SBarry Smith PetscDataType type 4796dd63270SBarry Smith PetscErrorCode z 4806dd63270SBarry Smith end subroutine 4816dd63270SBarry Smith end Interface 4826dd63270SBarry Smith 4836dd63270SBarry Smith contains 4846dd63270SBarry Smith#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES) 4856dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PetscInitializeWithHelp 4866dd63270SBarry Smith#endif 4876dd63270SBarry Smith subroutine PetscInitializeWithHelp(filename,help,ierr) 4886dd63270SBarry Smith character(len=*) :: filename 4896dd63270SBarry Smith character(len=*) :: help 4906dd63270SBarry Smith PetscErrorCode :: ierr 4916dd63270SBarry Smith 4926dd63270SBarry Smith if (filename .ne. PETSC_NULL_CHARACTER) then 4936dd63270SBarry Smith call PetscInitializeF(trim(filename),help,ierr) 4946dd63270SBarry Smith CHKERRQ(ierr) 4956dd63270SBarry Smith else 4966dd63270SBarry Smith call PetscInitializeF(filename,help,ierr) 4976dd63270SBarry Smith CHKERRQ(ierr) 4986dd63270SBarry Smith endif 4996dd63270SBarry Smith end subroutine PetscInitializeWithHelp 5006dd63270SBarry Smith 5016dd63270SBarry Smith#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES) 5026dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PetscInitializeNoHelp 5036dd63270SBarry Smith#endif 5046dd63270SBarry Smith subroutine PetscInitializeNoHelp(filename,ierr) 5056dd63270SBarry Smith character(len=*) :: filename 5066dd63270SBarry Smith PetscErrorCode :: ierr 5076dd63270SBarry Smith 5086dd63270SBarry Smith if (filename .ne. PETSC_NULL_CHARACTER) then 5096dd63270SBarry Smith call PetscInitializeF(trim(filename),PETSC_NULL_CHARACTER,ierr) 5106dd63270SBarry Smith CHKERRQ(ierr) 5116dd63270SBarry Smith else 5126dd63270SBarry Smith call PetscInitializeF(filename,PETSC_NULL_CHARACTER,ierr) 5136dd63270SBarry Smith CHKERRQ(ierr) 5146dd63270SBarry Smith endif 5156dd63270SBarry Smith end subroutine PetscInitializeNoHelp 5166dd63270SBarry Smith 5176dd63270SBarry Smith#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES) 5186dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::PetscInitializeNoArguments 5196dd63270SBarry Smith#endif 5206dd63270SBarry Smith subroutine PetscInitializeNoArguments(ierr) 5216dd63270SBarry Smith PetscErrorCode :: ierr 5226dd63270SBarry Smith 5236dd63270SBarry Smith call PetscInitializeF(PETSC_NULL_CHARACTER,PETSC_NULL_CHARACTER,ierr) 5246dd63270SBarry Smith CHKERRQ(ierr) 5256dd63270SBarry Smith end subroutine PetscInitializeNoArguments 5266dd63270SBarry Smith 5276dd63270SBarry Smith#include <../ftn/sys/petscall.hf90> 5286dd63270SBarry Smith end module 5296dd63270SBarry Smith 5306dd63270SBarry Smith Subroutine F90ArraySetRealPointer(array, sz, j, T) 5316dd63270SBarry Smith use petscsysdef 5326dd63270SBarry Smith PetscInt j,sz 5336dd63270SBarry Smith PetscReal, target :: array(1:sz) 5346dd63270SBarry Smith PetscReal2d, pointer :: T(:) 5356dd63270SBarry Smith T(j+1)%ptr=>array 5366dd63270SBarry Smith End Subroutine 5376dd63270SBarry Smith#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES) 5386dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT:: F90ArraySetRealPointer 5396dd63270SBarry Smith#endif 5406dd63270SBarry Smith 5416dd63270SBarry Smith! ------------------------------------------------------------------------ 5426dd63270SBarry Smith! TODO: generate the modules below by looping over 5436dd63270SBarry Smith! ftn/sys/XXX.h90 544*bfe80ac4SPierre Jolivet! and skipping those in petscall.h 5456dd63270SBarry Smith 5466dd63270SBarry Smith module petscbag 5476dd63270SBarry Smith use petscsys 5486dd63270SBarry Smith#include <../include/petsc/finclude/petscbag.h> 5496dd63270SBarry Smith#include <../ftn/sys/petscbag.h> 5506dd63270SBarry Smith#include <../ftn/sys/petscbag.h90> 5516dd63270SBarry Smith contains 5526dd63270SBarry Smith 5536dd63270SBarry Smith#include <../ftn/sys/petscbag.hf90> 5546dd63270SBarry Smith end module 5556dd63270SBarry Smith 5566dd63270SBarry Smith! ------------------------------------------------------------------------ 5576dd63270SBarry Smith 5586dd63270SBarry Smith module petscbm 5596dd63270SBarry Smith use petscsys 5606dd63270SBarry Smith#include <../include/petsc/finclude/petscbm.h> 5616dd63270SBarry Smith#include <../ftn/sys/petscbm.h> 5626dd63270SBarry Smith#include <../ftn/sys/petscbm.h90> 5636dd63270SBarry Smith contains 5646dd63270SBarry Smith 5656dd63270SBarry Smith#include <../ftn/sys/petscbm.hf90> 5666dd63270SBarry Smith end module 5676dd63270SBarry Smith 5686dd63270SBarry Smith! ------------------------------------------------------------------------ 5696dd63270SBarry Smith 5706dd63270SBarry Smith module petscmatlab 5716dd63270SBarry Smith use petscsys 5726dd63270SBarry Smith#include <../include/petsc/finclude/petscmatlab.h> 5736dd63270SBarry Smith#include <../ftn/sys/petscmatlab.h> 5746dd63270SBarry Smith#include <../ftn/sys/petscmatlab.h90> 5756dd63270SBarry Smith 5766dd63270SBarry Smith contains 5776dd63270SBarry Smith 5786dd63270SBarry Smith#include <../ftn/sys/petscmatlab.hf90> 5796dd63270SBarry Smith end module 5806dd63270SBarry Smith 5816dd63270SBarry Smith! ------------------------------------------------------------------------ 5826dd63270SBarry Smith 5836dd63270SBarry Smith module petscdraw 5846dd63270SBarry Smith use petscsys 5856dd63270SBarry Smith#include <../include/petsc/finclude/petscdraw.h> 5866dd63270SBarry Smith#include <../ftn/sys/petscdraw.h> 5876dd63270SBarry Smith#include <../ftn/sys/petscdraw.h90> 5886dd63270SBarry Smith 5896dd63270SBarry Smith PetscEnum, parameter :: PETSC_DRAW_BASIC_COLORS = 33 5906dd63270SBarry Smith PetscEnum, parameter :: PETSC_DRAW_ROTATE = -1 5916dd63270SBarry Smith PetscEnum, parameter :: PETSC_DRAW_WHITE = 0 5926dd63270SBarry Smith PetscEnum, parameter :: PETSC_DRAW_BLACK = 1 5936dd63270SBarry Smith PetscEnum, parameter :: PETSC_DRAW_RED = 2 5946dd63270SBarry Smith PetscEnum, parameter :: PETSC_DRAW_GREEN = 3 5956dd63270SBarry Smith PetscEnum, parameter :: PETSC_DRAW_CYAN = 4 5966dd63270SBarry Smith PetscEnum, parameter :: PETSC_DRAW_BLUE = 5 5976dd63270SBarry Smith PetscEnum, parameter :: PETSC_DRAW_MAGENTA = 6 5986dd63270SBarry Smith PetscEnum, parameter :: PETSC_DRAW_AQUAMARINE = 7 5996dd63270SBarry Smith PetscEnum, parameter :: PETSC_DRAW_FORESTGREEN = 8 6006dd63270SBarry Smith PetscEnum, parameter :: PETSC_DRAW_ORANGE = 9 6016dd63270SBarry Smith PetscEnum, parameter :: PETSC_DRAW_VIOLET = 10 6026dd63270SBarry Smith PetscEnum, parameter :: PETSC_DRAW_BROWN = 11 6036dd63270SBarry Smith PetscEnum, parameter :: PETSC_DRAW_PINK = 12 6046dd63270SBarry Smith PetscEnum, parameter :: PETSC_DRAW_CORAL = 13 6056dd63270SBarry Smith PetscEnum, parameter :: PETSC_DRAW_GRAY = 14 6066dd63270SBarry Smith PetscEnum, parameter :: PETSC_DRAW_YELLOW = 15 6076dd63270SBarry Smith PetscEnum, parameter :: PETSC_DRAW_GOLD = 16 6086dd63270SBarry Smith PetscEnum, parameter :: PETSC_DRAW_LIGHTPINK = 17 6096dd63270SBarry Smith PetscEnum, parameter :: PETSC_DRAW_MEDIUMTURQUOISE = 18 6106dd63270SBarry Smith PetscEnum, parameter :: PETSC_DRAW_KHAKI = 19 6116dd63270SBarry Smith PetscEnum, parameter :: PETSC_DRAW_DIMGRAY = 20 6126dd63270SBarry Smith PetscEnum, parameter :: PETSC_DRAW_YELLOWGREEN = 21 6136dd63270SBarry Smith PetscEnum, parameter :: PETSC_DRAW_SKYBLUE = 22 6146dd63270SBarry Smith PetscEnum, parameter :: PETSC_DRAW_DARKGREEN = 23 6156dd63270SBarry Smith PetscEnum, parameter :: PETSC_DRAW_NAVYBLUE = 24 6166dd63270SBarry Smith PetscEnum, parameter :: PETSC_DRAW_SANDYBROWN = 25 6176dd63270SBarry Smith PetscEnum, parameter :: PETSC_DRAW_CADETBLUE = 26 6186dd63270SBarry Smith PetscEnum, parameter :: PETSC_DRAW_POWDERBLUE = 27 6196dd63270SBarry Smith PetscEnum, parameter :: PETSC_DRAW_DEEPPINK = 28 6206dd63270SBarry Smith PetscEnum, parameter :: PETSC_DRAW_THISTLE = 29 6216dd63270SBarry Smith PetscEnum, parameter :: PETSC_DRAW_LIMEGREEN = 30 6226dd63270SBarry Smith PetscEnum, parameter :: PETSC_DRAW_LAVENDERBLUSH = 31 6236dd63270SBarry Smith PetscEnum, parameter :: PETSC_DRAW_PLUM = 32 6246dd63270SBarry Smith 6256dd63270SBarry Smith contains 6266dd63270SBarry Smith 6276dd63270SBarry Smith#include <../ftn/sys/petscdraw.hf90> 6286dd63270SBarry Smith end module 6296dd63270SBarry Smith 6306dd63270SBarry Smith! ------------------------------------------------------------------------ 6316dd63270SBarry Smith 6326dd63270SBarry Smith subroutine PetscSetCOMM(c1,c2) 6336dd63270SBarry Smith use petscmpi, only: PETSC_COMM_WORLD,PETSC_COMM_SELF 6346dd63270SBarry Smith 6356dd63270SBarry Smith implicit none 6366dd63270SBarry Smith MPI_Comm c1,c2 6376dd63270SBarry Smith 6386dd63270SBarry Smith PETSC_COMM_WORLD = c1 6396dd63270SBarry Smith PETSC_COMM_SELF = c2 6406dd63270SBarry Smith end 6416dd63270SBarry Smith 6426dd63270SBarry Smith subroutine PetscGetCOMM(c1) 6436dd63270SBarry Smith use petscmpi, only: PETSC_COMM_WORLD 6446dd63270SBarry Smith implicit none 6456dd63270SBarry Smith MPI_Comm c1 6466dd63270SBarry Smith 6476dd63270SBarry Smith c1 = PETSC_COMM_WORLD 6486dd63270SBarry Smith end 6496dd63270SBarry Smith 6506dd63270SBarry Smith subroutine PetscSetModuleBlock() 6516dd63270SBarry Smith use petscsys!, only: PETSC_NULL_CHARACTER,PETSC_NULL_INTEGER,& 6526dd63270SBarry Smith ! PETSC_NULL_SCALAR,PETSC_NULL_DOUBLE,PETSC_NULL_REAL,& 6536dd63270SBarry Smith ! PETSC_NULL_BOOL,PETSC_NULL_FUNCTION,PETSC_NULL_MPI_COMM 6546dd63270SBarry Smith implicit none 6556dd63270SBarry Smith 6566dd63270SBarry Smith call PetscSetFortranBasePointers(PETSC_NULL_CHARACTER, & 6576dd63270SBarry Smith & PETSC_NULL_INTEGER,PETSC_NULL_SCALAR, & 6586dd63270SBarry Smith & PETSC_NULL_DOUBLE,PETSC_NULL_REAL, & 6596dd63270SBarry Smith & PETSC_NULL_BOOL,PETSC_NULL_ENUM,PETSC_NULL_FUNCTION, & 6606dd63270SBarry Smith & PETSC_NULL_MPI_COMM, & 6616dd63270SBarry Smith & PETSC_NULL_INTEGER_ARRAY,PETSC_NULL_SCALAR_ARRAY, & 6626dd63270SBarry Smith & PETSC_NULL_REAL_ARRAY, PETSC_NULL_INTEGER_POINTER, & 6636dd63270SBarry Smith & PETSC_NULL_SCALAR_POINTER, PETSC_NULL_REAL_POINTER) 6646dd63270SBarry Smith end 6656dd63270SBarry Smith 6666dd63270SBarry Smith subroutine PetscSetModuleBlockMPI(freal,fscalar,fsum,finteger) 6676dd63270SBarry Smith use petscmpi, only: MPIU_REAL,MPIU_SUM,MPIU_SCALAR,MPIU_INTEGER 6686dd63270SBarry Smith implicit none 6696dd63270SBarry Smith 6706dd63270SBarry Smith integer4 freal,fscalar,fsum,finteger 6716dd63270SBarry Smith 6726dd63270SBarry Smith MPIU_REAL = freal 6736dd63270SBarry Smith MPIU_SCALAR = fscalar 6746dd63270SBarry Smith MPIU_SUM = fsum 6756dd63270SBarry Smith MPIU_INTEGER = finteger 6766dd63270SBarry Smith 6776dd63270SBarry Smith end 6786dd63270SBarry Smith 6796dd63270SBarry Smith subroutine PetscSetModuleBlockNumeric(pi,maxreal,minreal,eps, & 6806dd63270SBarry Smith & seps,small,pinf,pninf) 6816dd63270SBarry Smith use petscsys, only: PETSC_PI,PETSC_MAX_REAL,PETSC_MIN_REAL,& 6826dd63270SBarry Smith PETSC_MACHINE_EPSILON,PETSC_SQRT_MACHINE_EPSILON,& 6836dd63270SBarry Smith PETSC_SMALL,PETSC_INFINITY,PETSC_NINFINITY 6846dd63270SBarry Smith implicit none 6856dd63270SBarry Smith 6866dd63270SBarry Smith PetscReal pi,maxreal,minreal,eps,seps 6876dd63270SBarry Smith PetscReal small,pinf,pninf 6886dd63270SBarry Smith 6896dd63270SBarry Smith PETSC_PI = pi 6906dd63270SBarry Smith PETSC_MAX_REAL = maxreal 6916dd63270SBarry Smith PETSC_MIN_REAL = minreal 6926dd63270SBarry Smith PETSC_MACHINE_EPSILON = eps 6936dd63270SBarry Smith PETSC_SQRT_MACHINE_EPSILON = seps 6946dd63270SBarry Smith PETSC_SMALL = small 6956dd63270SBarry Smith PETSC_INFINITY = pinf 6966dd63270SBarry Smith PETSC_NINFINITY = pninf 6976dd63270SBarry Smith 6986dd63270SBarry Smith end 6996dd63270SBarry Smith 700