! >>> Warning: This is a generated file. If you modify it, you get what you deserve. <<< ! ! Generated by "../../../interfaces/f2003/bindGen.rb" from input file "../../../src/cdi.h". module mo_cdi use iso_c_binding implicit none private public ctrim public c_len interface integer(c_size_t) function lib_strlen(charPtr) bind(c, name = "strlen") import c_size_t, c_ptr type(c_ptr), value :: charPtr end function lib_strlen subroutine lib_free(pointer) bind(c, name = "free") import c_ptr type(c_ptr), value :: pointer end subroutine lib_free end interface integer(c_int), public, parameter :: CDI_MAX_NAME = 256 integer(c_int), public, parameter :: CDI_UNDEFID = -1 integer(c_int), public, parameter :: CDI_GLOBAL = -1 integer(c_int), public, parameter :: CDI_BIGENDIAN = 0 integer(c_int), public, parameter :: CDI_LITTLEENDIAN = 1 integer(c_int), public, parameter :: CDI_PDPENDIAN = 2 integer(c_int), public, parameter :: CDI_REAL = 1 integer(c_int), public, parameter :: CDI_COMP = 2 integer(c_int), public, parameter :: CDI_BOTH = 3 integer(c_int), public, parameter :: CDI_NOERR = 0 integer(c_int), public, parameter :: CDI_EEOF = -1 integer(c_int), public, parameter :: CDI_ETMOF = -9 integer(c_int), public, parameter :: CDI_ESYSTEM = -10 integer(c_int), public, parameter :: CDI_EINVAL = -20 integer(c_int), public, parameter :: CDI_EISDIR = -21 integer(c_int), public, parameter :: CDI_EISEMPTY = -22 integer(c_int), public, parameter :: CDI_EUFTYPE = -23 integer(c_int), public, parameter :: CDI_ELIBNAVAIL = -24 integer(c_int), public, parameter :: CDI_EUFSTRUCT = -25 integer(c_int), public, parameter :: CDI_EUNC4 = -26 integer(c_int), public, parameter :: CDI_EDIMSIZE = -27 integer(c_int), public, parameter :: CDI_ELIMIT = -99 integer(c_int), public, parameter :: CDI_FILETYPE_GRB = 1 integer(c_int), public, parameter :: CDI_FILETYPE_GRB2 = 2 integer(c_int), public, parameter :: CDI_FILETYPE_NC = 3 integer(c_int), public, parameter :: CDI_FILETYPE_NC2 = 4 integer(c_int), public, parameter :: CDI_FILETYPE_NC4 = 5 integer(c_int), public, parameter :: CDI_FILETYPE_NC4C = 6 integer(c_int), public, parameter :: CDI_FILETYPE_NC5 = 7 integer(c_int), public, parameter :: CDI_FILETYPE_SRV = 8 integer(c_int), public, parameter :: CDI_FILETYPE_EXT = 9 integer(c_int), public, parameter :: CDI_FILETYPE_IEG = 10 integer(c_int), public, parameter :: CDI_COMPRESS_NONE = 0 integer(c_int), public, parameter :: CDI_COMPRESS_SZIP = 1 integer(c_int), public, parameter :: CDI_COMPRESS_AEC = 2 integer(c_int), public, parameter :: CDI_COMPRESS_ZIP = 3 integer(c_int), public, parameter :: CDI_COMPRESS_JPEG = 4 integer(c_int), public, parameter :: CDI_DATATYPE_PACK = 0 integer(c_int), public, parameter :: CDI_DATATYPE_PACK1 = 1 integer(c_int), public, parameter :: CDI_DATATYPE_PACK2 = 2 integer(c_int), public, parameter :: CDI_DATATYPE_PACK3 = 3 integer(c_int), public, parameter :: CDI_DATATYPE_PACK4 = 4 integer(c_int), public, parameter :: CDI_DATATYPE_PACK5 = 5 integer(c_int), public, parameter :: CDI_DATATYPE_PACK6 = 6 integer(c_int), public, parameter :: CDI_DATATYPE_PACK7 = 7 integer(c_int), public, parameter :: CDI_DATATYPE_PACK8 = 8 integer(c_int), public, parameter :: CDI_DATATYPE_PACK9 = 9 integer(c_int), public, parameter :: CDI_DATATYPE_PACK10 = 10 integer(c_int), public, parameter :: CDI_DATATYPE_PACK11 = 11 integer(c_int), public, parameter :: CDI_DATATYPE_PACK12 = 12 integer(c_int), public, parameter :: CDI_DATATYPE_PACK13 = 13 integer(c_int), public, parameter :: CDI_DATATYPE_PACK14 = 14 integer(c_int), public, parameter :: CDI_DATATYPE_PACK15 = 15 integer(c_int), public, parameter :: CDI_DATATYPE_PACK16 = 16 integer(c_int), public, parameter :: CDI_DATATYPE_PACK17 = 17 integer(c_int), public, parameter :: CDI_DATATYPE_PACK18 = 18 integer(c_int), public, parameter :: CDI_DATATYPE_PACK19 = 19 integer(c_int), public, parameter :: CDI_DATATYPE_PACK20 = 20 integer(c_int), public, parameter :: CDI_DATATYPE_PACK21 = 21 integer(c_int), public, parameter :: CDI_DATATYPE_PACK22 = 22 integer(c_int), public, parameter :: CDI_DATATYPE_PACK23 = 23 integer(c_int), public, parameter :: CDI_DATATYPE_PACK24 = 24 integer(c_int), public, parameter :: CDI_DATATYPE_PACK25 = 25 integer(c_int), public, parameter :: CDI_DATATYPE_PACK26 = 26 integer(c_int), public, parameter :: CDI_DATATYPE_PACK27 = 27 integer(c_int), public, parameter :: CDI_DATATYPE_PACK28 = 28 integer(c_int), public, parameter :: CDI_DATATYPE_PACK29 = 29 integer(c_int), public, parameter :: CDI_DATATYPE_PACK30 = 30 integer(c_int), public, parameter :: CDI_DATATYPE_PACK31 = 31 integer(c_int), public, parameter :: CDI_DATATYPE_PACK32 = 32 integer(c_int), public, parameter :: CDI_DATATYPE_CPX32 = 64 integer(c_int), public, parameter :: CDI_DATATYPE_CPX64 = 128 integer(c_int), public, parameter :: CDI_DATATYPE_FLT32 = 132 integer(c_int), public, parameter :: CDI_DATATYPE_FLT64 = 164 integer(c_int), public, parameter :: CDI_DATATYPE_INT8 = 208 integer(c_int), public, parameter :: CDI_DATATYPE_INT16 = 216 integer(c_int), public, parameter :: CDI_DATATYPE_INT32 = 232 integer(c_int), public, parameter :: CDI_DATATYPE_UINT8 = 308 integer(c_int), public, parameter :: CDI_DATATYPE_UINT16 = 316 integer(c_int), public, parameter :: CDI_DATATYPE_UINT32 = 332 integer(c_int), public, parameter :: CDI_DATATYPE_INT = 251 integer(c_int), public, parameter :: CDI_DATATYPE_FLT = 252 integer(c_int), public, parameter :: CDI_DATATYPE_TXT = 253 integer(c_int), public, parameter :: CDI_DATATYPE_CPX = 254 integer(c_int), public, parameter :: CDI_DATATYPE_UCHAR = 255 integer(c_int), public, parameter :: CDI_DATATYPE_LONG = 256 integer(c_int), public, parameter :: CDI_DATATYPE_UINT = 257 integer(c_int), public, parameter :: CDI_CHUNK_AUTO = 1 integer(c_int), public, parameter :: CDI_CHUNK_GRID = 2 integer(c_int), public, parameter :: CDI_CHUNK_LINES = 3 integer(c_int), public, parameter :: GRID_GENERIC = 1 integer(c_int), public, parameter :: GRID_GAUSSIAN = 2 integer(c_int), public, parameter :: GRID_GAUSSIAN_REDUCED = 3 integer(c_int), public, parameter :: GRID_LONLAT = 4 integer(c_int), public, parameter :: GRID_SPECTRAL = 5 integer(c_int), public, parameter :: GRID_FOURIER = 6 integer(c_int), public, parameter :: GRID_GME = 7 integer(c_int), public, parameter :: GRID_TRAJECTORY = 8 integer(c_int), public, parameter :: GRID_UNSTRUCTURED = 9 integer(c_int), public, parameter :: GRID_CURVILINEAR = 10 integer(c_int), public, parameter :: GRID_PROJECTION = 12 integer(c_int), public, parameter :: GRID_CHARXY = 13 integer(c_int), public, parameter :: CDI_PROJ_RLL = 21 integer(c_int), public, parameter :: CDI_PROJ_LCC = 22 integer(c_int), public, parameter :: CDI_PROJ_LAEA = 23 integer(c_int), public, parameter :: CDI_PROJ_SINU = 24 integer(c_int), public, parameter :: CDI_PROJ_STERE = 25 integer(c_int), public, parameter :: ZAXIS_SURFACE = 0 integer(c_int), public, parameter :: ZAXIS_GENERIC = 1 integer(c_int), public, parameter :: ZAXIS_HYBRID = 2 integer(c_int), public, parameter :: ZAXIS_HYBRID_HALF = 3 integer(c_int), public, parameter :: ZAXIS_PRESSURE = 4 integer(c_int), public, parameter :: ZAXIS_HEIGHT = 5 integer(c_int), public, parameter :: ZAXIS_DEPTH_BELOW_SEA = 6 integer(c_int), public, parameter :: ZAXIS_DEPTH_BELOW_LAND = 7 integer(c_int), public, parameter :: ZAXIS_ISENTROPIC = 8 integer(c_int), public, parameter :: ZAXIS_TRAJECTORY = 9 integer(c_int), public, parameter :: ZAXIS_ALTITUDE = 10 integer(c_int), public, parameter :: ZAXIS_SIGMA = 11 integer(c_int), public, parameter :: ZAXIS_MEANSEA = 12 integer(c_int), public, parameter :: ZAXIS_TOA = 13 integer(c_int), public, parameter :: ZAXIS_SEA_BOTTOM = 14 integer(c_int), public, parameter :: ZAXIS_ATMOSPHERE = 15 integer(c_int), public, parameter :: ZAXIS_CLOUD_BASE = 16 integer(c_int), public, parameter :: ZAXIS_CLOUD_TOP = 17 integer(c_int), public, parameter :: ZAXIS_ISOTHERM_ZERO = 18 integer(c_int), public, parameter :: ZAXIS_SNOW = 19 integer(c_int), public, parameter :: ZAXIS_LAKE_BOTTOM = 20 integer(c_int), public, parameter :: ZAXIS_SEDIMENT_BOTTOM = 21 integer(c_int), public, parameter :: ZAXIS_SEDIMENT_BOTTOM_TA = 22 integer(c_int), public, parameter :: ZAXIS_SEDIMENT_BOTTOM_TW = 23 integer(c_int), public, parameter :: ZAXIS_MIX_LAYER = 24 integer(c_int), public, parameter :: ZAXIS_REFERENCE = 25 integer(c_int), public, parameter :: ZAXIS_CHAR = 26 integer(c_int), public, parameter :: MAX_KV_PAIRS_MATCH = 10 integer(c_int), public, parameter :: TIME_CONSTANT = 0 integer(c_int), public, parameter :: TIME_VARYING = 1 integer(c_int), public, parameter :: TIME_VARIABLE = 1 integer(c_int), public, parameter :: TSTEP_INSTANT = 1 integer(c_int), public, parameter :: TSTEP_AVG = 2 integer(c_int), public, parameter :: TSTEP_ACCUM = 3 integer(c_int), public, parameter :: TSTEP_MAX = 4 integer(c_int), public, parameter :: TSTEP_MIN = 5 integer(c_int), public, parameter :: TSTEP_DIFF = 6 integer(c_int), public, parameter :: TSTEP_RMS = 7 integer(c_int), public, parameter :: TSTEP_SD = 8 integer(c_int), public, parameter :: TSTEP_COV = 9 integer(c_int), public, parameter :: TSTEP_RATIO = 10 integer(c_int), public, parameter :: TSTEP_SUM = 11 integer(c_int), public, parameter :: TSTEP_RANGE = 12 integer(c_int), public, parameter :: TSTEP_INSTANT2 = 13 integer(c_int), public, parameter :: TSTEP_INSTANT3 = 14 integer(c_int), public, parameter :: TAXIS_ABSOLUTE = 1 integer(c_int), public, parameter :: TAXIS_RELATIVE = 2 integer(c_int), public, parameter :: TAXIS_FORECAST = 3 integer(c_int), public, parameter :: TUNIT_SECOND = 1 integer(c_int), public, parameter :: TUNIT_MINUTE = 2 integer(c_int), public, parameter :: TUNIT_QUARTER = 3 integer(c_int), public, parameter :: TUNIT_30MINUTES = 4 integer(c_int), public, parameter :: TUNIT_HOUR = 5 integer(c_int), public, parameter :: TUNIT_3HOURS = 6 integer(c_int), public, parameter :: TUNIT_6HOURS = 7 integer(c_int), public, parameter :: TUNIT_12HOURS = 8 integer(c_int), public, parameter :: TUNIT_DAY = 9 integer(c_int), public, parameter :: TUNIT_MONTH = 10 integer(c_int), public, parameter :: TUNIT_YEAR = 11 integer(c_int), public, parameter :: CALENDAR_STANDARD = 0 integer(c_int), public, parameter :: CALENDAR_GREGORIAN = 1 integer(c_int), public, parameter :: CALENDAR_PROLEPTIC = 2 integer(c_int), public, parameter :: CALENDAR_360DAYS = 3 integer(c_int), public, parameter :: CALENDAR_365DAYS = 4 integer(c_int), public, parameter :: CALENDAR_366DAYS = 5 integer(c_int), public, parameter :: CALENDAR_NONE = 6 integer(c_int), public, parameter :: CDI_UUID_SIZE = 16 public t_CdiParam type, bind(c) :: t_CdiParam integer(c_int) :: discipline integer(c_int) :: category integer(c_int) :: number end type t_CdiParam public :: t_CdiIterator type :: t_CdiIterator type(c_ptr) :: ptr end type t_CdiIterator public :: t_CdiGribIterator type :: t_CdiGribIterator type(c_ptr) :: ptr end type t_CdiGribIterator public :: cdiReset public :: cdiStringError public :: cdiDebug public :: cdiLibraryVersion public :: cdiPrintVersion public :: cdiHaveFiletype public :: cdiDefMissval public :: cdiInqMissval public :: cdiInqGridMissval public :: cdiDefGlobal public :: namespaceNew public :: namespaceSetActive public :: namespaceGetActive public :: namespaceDelete public :: cdiParamToString public :: cdiDecodeParam public :: cdiEncodeParam public :: cdiDecodeDate public :: cdiEncodeDate public :: cdiDecodeTime public :: cdiEncodeTime public :: cdiGetFiletype public :: streamOpenRead public :: streamOpenWrite public :: streamOpenAppend public :: streamClose public :: streamSync public :: streamDefNumWorker public :: streamDefVlist public :: streamInqVlist public :: streamInqFiletype public :: streamDefByteorder public :: streamInqByteorder public :: streamDefCompType public :: streamInqCompType public :: streamDefCompLevel public :: streamInqCompLevel public :: streamDefTimestep public :: streamInqTimestep public :: streamInqCurTimestepID public :: streamFilename public :: streamFilesuffix public :: streamNvals public :: streamInqNvars public :: streamWriteVar public :: streamWriteVarF public :: streamReadVar public :: streamReadVarF public :: streamWriteVarSlice public :: streamWriteVarSliceF public :: streamReadVarSlice public :: streamReadVarSliceF public :: streamWriteVarChunk public :: streamDefRecord public :: streamInqRecord public :: streamWriteRecord public :: streamWriteRecordF public :: streamReadRecord public :: streamReadRecordF public :: streamCopyRecord public :: cdiIterator_new public :: cdiIterator_clone public :: cdiIterator_serialize public :: cdiIterator_deserialize public :: cdiIterator_delete public :: cdiIterator_nextField public :: cdiIterator_inqStartTime public :: cdiIterator_inqEndTime public :: cdiIterator_inqRTime public :: cdiIterator_inqVTime public :: cdiIterator_inqLevelType public :: cdiIterator_inqLevel public :: cdiIterator_inqLevelUuid public :: cdiIterator_inqTile public :: cdiIterator_inqTileCount public :: cdiIterator_inqParam public :: cdiIterator_inqParamParts public :: cdiIterator_inqDatatype public :: cdiIterator_inqFiletype public :: cdiIterator_inqTsteptype public :: cdiIterator_inqVariableName public :: cdiIterator_inqGridId public :: cdiIterator_readField public :: cdiIterator_readFieldF public :: cdiGribIterator_clone public :: cdiGribIterator_delete public :: cdiGribIterator_getLong public :: cdiGribIterator_getDouble public :: cdiGribIterator_getLength public :: cdiGribIterator_getString public :: cdiGribIterator_getSize public :: cdiGribIterator_getLongArray public :: cdiGribIterator_getDoubleArray public :: cdiGribIterator_inqEdition public :: cdiGribIterator_inqLongValue public :: cdiGribIterator_inqLongDefaultValue public :: cdiGribIterator_inqDoubleValue public :: cdiGribIterator_inqDoubleDefaultValue public :: cdiGribIterator_inqStringValue public :: vlistCreate public :: vlistDestroy public :: vlistDuplicate public :: vlistCopy public :: vlistCopyFlag public :: vlistClearFlag public :: vlistCat public :: vlistMerge public :: vlistPrint public :: vlistNumber public :: vlistNvars public :: vlistNgrids public :: vlistNzaxis public :: vlistNsubtypes public :: vlistDefNtsteps public :: vlistNtsteps public :: vlistGridsizeMax public :: vlistGrid public :: vlistGridIndex public :: vlistChangeGridIndex public :: vlistChangeGrid public :: vlistZaxis public :: vlistZaxisIndex public :: vlistChangeZaxisIndex public :: vlistChangeZaxis public :: vlistNrecs public :: vlistSubtype public :: vlistSubtypeIndex public :: vlistDefTaxis public :: vlistInqTaxis public :: vlistDefTable public :: vlistInqTable public :: vlistDefInstitut public :: vlistInqInstitut public :: vlistDefModel public :: vlistInqModel public :: vlistDefVarTiles public :: vlistDefVar public :: vlistChangeVarGrid public :: vlistChangeVarZaxis public :: vlistInqVar public :: vlistInqVarGrid public :: vlistInqVarZaxis public :: vlistInqVarID public :: vlistDefVarTimetype public :: vlistInqVarTimetype public :: vlistDefVarTsteptype public :: vlistInqVarTsteptype public :: vlistDefVarCompType public :: vlistInqVarCompType public :: vlistDefVarCompLevel public :: vlistInqVarCompLevel public :: vlistDefVarParam public :: vlistInqVarParam public :: vlistDefVarCode public :: vlistInqVarCode public :: vlistDefVarDatatype public :: vlistInqVarDatatype public :: vlistDefVarChunkType public :: vlistInqVarChunkType public :: vlistDefVarXYZ public :: vlistInqVarXYZ public :: vlistInqVarNumber public :: vlistDefVarInstitut public :: vlistInqVarInstitut public :: vlistDefVarModel public :: vlistInqVarModel public :: vlistDefVarTable public :: vlistInqVarTable public :: vlistDefVarName public :: vlistInqVarName public :: vlistCopyVarName public :: vlistDefVarStdname public :: vlistInqVarStdname public :: vlistDefVarLongname public :: vlistInqVarLongname public :: vlistDefVarUnits public :: vlistInqVarUnits public :: vlistDefVarMissval public :: vlistInqVarMissval public :: vlistDefVarExtra public :: vlistInqVarExtra public :: vlistDefVarScalefactor public :: vlistInqVarScalefactor public :: vlistDefVarAddoffset public :: vlistInqVarAddoffset public :: vlistDefVarTimave public :: vlistInqVarTimave public :: vlistInqVarSize public :: vlistDefIndex public :: vlistInqIndex public :: vlistDefFlag public :: vlistInqFlag public :: vlistFindVar public :: vlistFindLevel public :: vlistMergedVar public :: vlistMergedLevel public :: cdiClearAdditionalKeys public :: cdiDefAdditionalKey public :: vlistDefVarIntKey public :: vlistDefVarDblKey public :: vlistHasVarKey public :: vlistInqVarDblKey public :: vlistInqVarIntKey public :: cdiInqNatts public :: cdiInqAtt public :: cdiDelAtt public :: cdiCopyAtts public :: cdiDefAttInt public :: cdiDefAttFlt public :: cdiDefAttTxt public :: cdiInqAttInt public :: cdiInqAttFlt public :: cdiInqAttTxt public :: gridName public :: gridNamePtr public :: gridCompress public :: gridDefMaskGME public :: gridInqMaskGME public :: gridDefMask public :: gridInqMask public :: gridCreate public :: gridDestroy public :: gridDuplicate public :: gridDefProj public :: gridInqProj public :: gridInqProjType public :: gridInqType public :: gridInqSize public :: gridDefXsize public :: gridInqXsize public :: gridDefYsize public :: gridInqYsize public :: gridDefNP public :: gridInqNP public :: gridDefXvals public :: gridInqXvals public :: gridInqXvalsPart public :: gridInqXIsc public :: gridDefYvals public :: gridInqYvals public :: gridInqYvalsPart public :: gridInqYIsc integer(c_int), public, parameter :: CDI_KEY_TABLESVERSION = 801 integer(c_int), public, parameter :: CDI_KEY_LOCALTABLESVERSION = 802 integer(c_int), public, parameter :: CDI_KEY_TYPEOFGENERATINGPROCESS = 803 integer(c_int), public, parameter :: CDI_KEY_PRODUCTDEFINITIONTEMPLATE = 804 integer(c_int), public, parameter :: CDI_KEY_TYPEOFPROCESSEDDATA = 805 integer(c_int), public, parameter :: CDI_KEY_SHAPEOFTHEEARTH = 806 integer(c_int), public, parameter :: CDI_KEY_BACKGROUNDPROCESS = 807 integer(c_int), public, parameter :: CDI_KEY_TYPEOFENSEMBLEFORECAST = 808 integer(c_int), public, parameter :: CDI_KEY_NUMBEROFFORECASTSINENSEMBLE =& & 809 integer(c_int), public, parameter :: CDI_KEY_PERTURBATIONNUMBER = 810 integer(c_int), public, parameter :: CDI_KEY_CENTRE = 811 integer(c_int), public, parameter :: CDI_KEY_SUBCENTRE = 812 integer(c_int), public, parameter :: CDI_KEY_MPIMTYPE = 813 integer(c_int), public, parameter :: CDI_KEY_MPIMCLASS = 814 integer(c_int), public, parameter :: CDI_KEY_MPIMUSER = 815 integer(c_int), public, parameter :: CDI_KEY_REVSTATUS = 816 integer(c_int), public, parameter :: CDI_KEY_REVNUMBER = 817 integer(c_int), public, parameter :: CDI_KEY_GRIB2LOCALSECTIONNUMBER = 818 integer(c_int), public, parameter :: CDI_KEY_SECTION2PADDINGLENGTH = 819 integer(c_int), public, parameter :: CDI_KEY_SECTION2PADDING = 820 integer(c_int), public, parameter :: CDI_KEY_UVRELATIVETOGRID = 821 integer(c_int), public, parameter :: CDI_KEY_CONSTITUENTTYPE = 822 public :: cdiDefKeyInt public :: cdiInqKeyInt public :: cdiDefKeyBytes public :: cdiInqKeyBytes public :: cdiDefKeyString public :: cdiInqKeyString public :: cdiInqKeyLen public :: cdiCopyKeys integer(c_int), public, parameter :: CDI_KEY_XNAME = 901 integer(c_int), public, parameter :: CDI_KEY_XDIMNAME = 902 integer(c_int), public, parameter :: CDI_KEY_XLONGNAME = 903 integer(c_int), public, parameter :: CDI_KEY_XUNITS = 904 integer(c_int), public, parameter :: CDI_KEY_YNAME = 911 integer(c_int), public, parameter :: CDI_KEY_YDIMNAME = 912 integer(c_int), public, parameter :: CDI_KEY_YLONGNAME = 913 integer(c_int), public, parameter :: CDI_KEY_YUNITS = 914 integer(c_int), public, parameter :: CDI_KEY_VDIMNAME = 920 integer(c_int), public, parameter :: CDI_KEY_MAPPING = 921 integer(c_int), public, parameter :: CDI_KEY_MAPNAME = 922 integer(c_int), public, parameter :: CDI_KEY_NAME = 941 integer(c_int), public, parameter :: CDI_KEY_DIMNAME = 942 integer(c_int), public, parameter :: CDI_KEY_LONGNAME = 943 integer(c_int), public, parameter :: CDI_KEY_UNITS = 944 integer(c_int), public, parameter :: CDI_KEY_PSNAME = 950 integer(c_int), public, parameter :: CDI_KEY_P0NAME = 951 integer(c_int), public, parameter :: CDI_KEY_P0VALUE = 952 public :: cdiGridDefKeyStr public :: cdiGridInqKeyStr public :: cdiZaxisDefKeyStr public :: cdiZaxisInqKeyStr public :: cdiZaxisDefKeyFlt public :: cdiZaxisInqKeyFlt public :: gridDefXname public :: gridInqXname public :: gridDefXlongname public :: gridInqXlongname public :: gridDefXunits public :: gridInqXunits public :: gridDefYname public :: gridInqYname public :: gridDefYlongname public :: gridInqYlongname public :: gridDefYunits public :: gridInqYunits public :: gridInqXstdname public :: gridInqYstdname public :: gridDefDatatype public :: gridInqDatatype public :: gridInqXval public :: gridInqYval public :: gridInqXinc public :: gridInqYinc public :: gridIsCircular public :: gridInqTrunc public :: gridDefTrunc public :: gridDefNumber public :: gridInqNumber public :: gridDefPosition public :: gridInqPosition public :: gridDefReference public :: gridInqReference public :: gridDefUUID public :: gridInqUUID public :: gridDefParamRLL public :: gridInqParamRLL public :: gridDefParamGME public :: gridInqParamGME public :: gridDefParamLCC public :: gridInqParamLCC public :: gridDefParamSTERE public :: gridInqParamSTERE public :: gridDefArea public :: gridInqArea public :: gridHasArea public :: gridDefNvertex public :: gridInqNvertex public :: gridDefXbounds public :: gridInqXbounds public :: gridInqXboundsPart public :: gridDefYbounds public :: gridInqYbounds public :: gridInqYboundsPart public :: gridDefReducedPoints public :: gridInqReducedPoints public :: gridChangeType public :: gridDefComplexPacking public :: gridInqComplexPacking public :: gridDefScanningMode public :: gridInqScanningMode public :: zaxisName public :: zaxisNamePtr public :: zaxisCreate public :: zaxisDestroy public :: zaxisInqType public :: zaxisInqSize public :: zaxisDuplicate public :: zaxisDefLevels public :: zaxisInqLevels public :: zaxisInqCLen public :: zaxisDefLevel public :: zaxisInqLevel public :: zaxisDefNlevRef public :: zaxisInqNlevRef public :: zaxisDefNumber public :: zaxisInqNumber public :: zaxisDefUUID public :: zaxisInqUUID public :: zaxisDefName public :: zaxisInqName public :: zaxisDefLongname public :: zaxisInqLongname public :: zaxisDefUnits public :: zaxisInqUnits public :: zaxisInqStdname public :: zaxisDefDatatype public :: zaxisInqDatatype public :: zaxisDefPositive public :: zaxisInqPositive public :: zaxisDefScalar public :: zaxisInqScalar public :: zaxisDefLtype public :: zaxisInqLtype public :: zaxisDefLtype2 public :: zaxisInqLtype2 public :: zaxisDefVct public :: zaxisInqVct public :: zaxisInqVctSize public :: zaxisInqVctPtr public :: zaxisDefLbounds public :: zaxisInqLbounds public :: zaxisInqLbound public :: zaxisDefUbounds public :: zaxisInqUbounds public :: zaxisInqUbound public :: zaxisDefWeights public :: zaxisInqWeights public :: zaxisChangeType public :: taxisCreate public :: taxisDestroy public :: taxisDuplicate public :: taxisCopyTimestep public :: taxisDefType public :: taxisInqType public :: taxisDefVdate public :: taxisDefVtime public :: taxisInqVdate public :: taxisInqVtime public :: taxisDefRdate public :: taxisDefRtime public :: taxisInqRdate public :: taxisInqRtime public :: taxisDefFdate public :: taxisDefFtime public :: taxisInqFdate public :: taxisInqFtime public :: taxisHasBounds public :: taxisWithBounds public :: taxisDeleteBounds public :: taxisDefVdateBounds public :: taxisDefVtimeBounds public :: taxisInqVdateBounds public :: taxisInqVtimeBounds public :: taxisDefCalendar public :: taxisInqCalendar public :: taxisDefTunit public :: taxisInqTunit public :: taxisDefForecastTunit public :: taxisInqForecastTunit public :: taxisDefForecastPeriod public :: taxisInqForecastPeriod public :: taxisDefNumavg public :: taxisInqNumavg public :: tunitNamePtr public :: institutDef public :: institutInq public :: institutInqNumber public :: institutInqCenter public :: institutInqSubcenter public :: institutInqNamePtr public :: institutInqLongnamePtr public :: modelDef public :: modelInq public :: modelInqInstitut public :: modelInqGribID public :: modelInqNamePtr public :: tableWrite public :: tableRead public :: tableDef public :: tableInqNamePtr public :: tableInq public :: tableInqNumber public :: tableInqNum public :: tableInqModel public :: tableInqEntry public :: streamDefHistory public :: streamInqHistorySize public :: streamInqHistoryString public :: subtypeCreate public :: subtypePrint public :: subtypeCompare public :: subtypeInqSize public :: subtypeInqActiveIndex public :: subtypeDefActiveIndex public :: subtypeInqTile public :: subtypeInqAttribute public :: vlistInqVarSubtype public :: gribapiLibraryVersion public :: gaussianLatitudes interface subroutine cdiReset() bind(c, name = 'cdiReset') end subroutine cdiReset subroutine cdiDebug(debug_dummy) bind(c, name = 'cdiDebug') import c_int integer(c_int), value :: debug_dummy end subroutine cdiDebug subroutine cdiPrintVersion() bind(c, name = 'cdiPrintVersion') end subroutine cdiPrintVersion function cdiHaveFiletype(filetype_dummy) bind(c, name = 'cdiHaveFiletype')& & result(f_result) import c_int integer(c_int), value :: filetype_dummy integer(c_int) :: f_result end function cdiHaveFiletype subroutine cdiDefMissval(missval_dummy) bind(c, name = 'cdiDefMissval') import c_double real(c_double), value :: missval_dummy end subroutine cdiDefMissval function cdiInqMissval() bind(c, name = 'cdiInqMissval') result(f_result) import c_double real(c_double) :: f_result end function cdiInqMissval function cdiInqGridMissval() bind(c, name = 'cdiInqGridMissval')& & result(f_result) import c_double real(c_double) :: f_result end function cdiInqGridMissval function namespaceNew() bind(c, name = 'namespaceNew') result(f_result) import c_int integer(c_int) :: f_result end function namespaceNew subroutine namespaceSetActive(namespaceID_dummy) bind(c, name =& & 'namespaceSetActive') import c_int integer(c_int), value :: namespaceID_dummy end subroutine namespaceSetActive function namespaceGetActive() bind(c, name = 'namespaceGetActive')& & result(f_result) import c_int integer(c_int) :: f_result end function namespaceGetActive subroutine namespaceDelete(namespaceID_dummy) bind(c, name =& & 'namespaceDelete') import c_int integer(c_int), value :: namespaceID_dummy end subroutine namespaceDelete subroutine cdiDecodeParam(param_dummy, pnum_dummy, pcat_dummy, pdis_dummy)& & bind(c, name = 'cdiDecodeParam') import c_int integer(c_int), value :: param_dummy integer(c_int), intent(inout) :: pnum_dummy integer(c_int), intent(inout) :: pcat_dummy integer(c_int), intent(inout) :: pdis_dummy end subroutine cdiDecodeParam function cdiEncodeParam(pnum_dummy, pcat_dummy, pdis_dummy) bind(c, name =& & 'cdiEncodeParam') result(f_result) import c_int integer(c_int), value :: pnum_dummy integer(c_int), value :: pcat_dummy integer(c_int), value :: pdis_dummy integer(c_int) :: f_result end function cdiEncodeParam subroutine cdiDecodeDate(date_dummy, year_dummy, month_dummy, day_dummy)& & bind(c, name = 'cdiDecodeDate') import c_int, c_int64_t integer(c_int64_t), value :: date_dummy integer(c_int), intent(inout) :: year_dummy integer(c_int), intent(inout) :: month_dummy integer(c_int), intent(inout) :: day_dummy end subroutine cdiDecodeDate function cdiEncodeDate(year_dummy, month_dummy, day_dummy) bind(c, name =& & 'cdiEncodeDate') result(f_result) import c_int, c_int64_t integer(c_int), value :: year_dummy integer(c_int), value :: month_dummy integer(c_int), value :: day_dummy integer(c_int64_t) :: f_result end function cdiEncodeDate subroutine cdiDecodeTime(time_dummy, hour_dummy, minute_dummy,& & second_dummy) bind(c, name = 'cdiDecodeTime') import c_int integer(c_int), value :: time_dummy integer(c_int), intent(inout) :: hour_dummy integer(c_int), intent(inout) :: minute_dummy integer(c_int), intent(inout) :: second_dummy end subroutine cdiDecodeTime function cdiEncodeTime(hour_dummy, minute_dummy, second_dummy) bind(c, name& & = 'cdiEncodeTime') result(f_result) import c_int integer(c_int), value :: hour_dummy integer(c_int), value :: minute_dummy integer(c_int), value :: second_dummy integer(c_int) :: f_result end function cdiEncodeTime subroutine streamClose(streamID_dummy) bind(c, name = 'streamClose') import c_int integer(c_int), value :: streamID_dummy end subroutine streamClose subroutine streamSync(streamID_dummy) bind(c, name = 'streamSync') import c_int integer(c_int), value :: streamID_dummy end subroutine streamSync subroutine streamDefNumWorker(streamID_dummy, numWorker_dummy) bind(c, name& & = 'streamDefNumWorker') import c_int integer(c_int), value :: streamID_dummy integer(c_int), value :: numWorker_dummy end subroutine streamDefNumWorker subroutine streamDefVlist(streamID_dummy, vlistID_dummy) bind(c, name =& & 'streamDefVlist') import c_int integer(c_int), value :: streamID_dummy integer(c_int), value :: vlistID_dummy end subroutine streamDefVlist function streamInqVlist(streamID_dummy) bind(c, name = 'streamInqVlist')& & result(f_result) import c_int integer(c_int), value :: streamID_dummy integer(c_int) :: f_result end function streamInqVlist function streamInqFiletype(streamID_dummy) bind(c, name =& & 'streamInqFiletype') result(f_result) import c_int integer(c_int), value :: streamID_dummy integer(c_int) :: f_result end function streamInqFiletype subroutine streamDefByteorder(streamID_dummy, byteorder_dummy) bind(c, name& & = 'streamDefByteorder') import c_int integer(c_int), value :: streamID_dummy integer(c_int), value :: byteorder_dummy end subroutine streamDefByteorder function streamInqByteorder(streamID_dummy) bind(c, name =& & 'streamInqByteorder') result(f_result) import c_int integer(c_int), value :: streamID_dummy integer(c_int) :: f_result end function streamInqByteorder subroutine streamDefCompType(streamID_dummy, comptype_dummy) bind(c, name =& & 'streamDefCompType') import c_int integer(c_int), value :: streamID_dummy integer(c_int), value :: comptype_dummy end subroutine streamDefCompType function streamInqCompType(streamID_dummy) bind(c, name =& & 'streamInqCompType') result(f_result) import c_int integer(c_int), value :: streamID_dummy integer(c_int) :: f_result end function streamInqCompType subroutine streamDefCompLevel(streamID_dummy, complevel_dummy) bind(c, name& & = 'streamDefCompLevel') import c_int integer(c_int), value :: streamID_dummy integer(c_int), value :: complevel_dummy end subroutine streamDefCompLevel function streamInqCompLevel(streamID_dummy) bind(c, name =& & 'streamInqCompLevel') result(f_result) import c_int integer(c_int), value :: streamID_dummy integer(c_int) :: f_result end function streamInqCompLevel function streamDefTimestep(streamID_dummy, tsID_dummy) bind(c, name =& & 'streamDefTimestep') result(f_result) import c_int integer(c_int), value :: streamID_dummy integer(c_int), value :: tsID_dummy integer(c_int) :: f_result end function streamDefTimestep function streamInqTimestep(streamID_dummy, tsID_dummy) bind(c, name =& & 'streamInqTimestep') result(f_result) import c_int integer(c_int), value :: streamID_dummy integer(c_int), value :: tsID_dummy integer(c_int) :: f_result end function streamInqTimestep function streamInqCurTimestepID(streamID_dummy) bind(c, name =& & 'streamInqCurTimestepID') result(f_result) import c_int integer(c_int), value :: streamID_dummy integer(c_int) :: f_result end function streamInqCurTimestepID function streamNvals(streamID_dummy) bind(c, name = 'streamNvals')& & result(f_result) import c_int, c_size_t integer(c_int), value :: streamID_dummy integer(c_size_t) :: f_result end function streamNvals function streamInqNvars(streamID_dummy) bind(c, name = 'streamInqNvars')& & result(f_result) import c_int integer(c_int), value :: streamID_dummy integer(c_int) :: f_result end function streamInqNvars subroutine streamWriteVar(streamID_dummy, varID_dummy, data_dummy,& & nmiss_dummy) bind(c, name = 'streamWriteVar') import c_double, c_int, c_size_t integer(c_int), value :: streamID_dummy integer(c_int), value :: varID_dummy real(c_double), intent(in) :: data_dummy(*) integer(c_size_t), value :: nmiss_dummy end subroutine streamWriteVar subroutine streamWriteVarF(streamID_dummy, varID_dummy, data_dummy,& & nmiss_dummy) bind(c, name = 'streamWriteVarF') import c_float, c_int, c_size_t integer(c_int), value :: streamID_dummy integer(c_int), value :: varID_dummy real(c_float), intent(in) :: data_dummy(*) integer(c_size_t), value :: nmiss_dummy end subroutine streamWriteVarF subroutine streamReadVar(streamID_dummy, varID_dummy, data_dummy,& & nmiss_dummy) bind(c, name = 'streamReadVar') import c_double, c_int, c_size_t integer(c_int), value :: streamID_dummy integer(c_int), value :: varID_dummy real(c_double), intent(inout) :: data_dummy(*) integer(c_size_t), intent(inout) :: nmiss_dummy end subroutine streamReadVar subroutine streamReadVarF(streamID_dummy, varID_dummy, data_dummy,& & nmiss_dummy) bind(c, name = 'streamReadVarF') import c_float, c_int, c_size_t integer(c_int), value :: streamID_dummy integer(c_int), value :: varID_dummy real(c_float), intent(inout) :: data_dummy(*) integer(c_size_t), intent(inout) :: nmiss_dummy end subroutine streamReadVarF subroutine streamWriteVarSlice(streamID_dummy, varID_dummy, levelID_dummy,& & data_dummy, nmiss_dummy) bind(c, name = 'streamWriteVarSlice') import c_double, c_int, c_size_t integer(c_int), value :: streamID_dummy integer(c_int), value :: varID_dummy integer(c_int), value :: levelID_dummy real(c_double), intent(in) :: data_dummy(*) integer(c_size_t), value :: nmiss_dummy end subroutine streamWriteVarSlice subroutine streamWriteVarSliceF(streamID_dummy, varID_dummy, levelID_dummy,& & data_dummy, nmiss_dummy) bind(c, name = 'streamWriteVarSliceF') import c_float, c_int, c_size_t integer(c_int), value :: streamID_dummy integer(c_int), value :: varID_dummy integer(c_int), value :: levelID_dummy real(c_float), intent(in) :: data_dummy(*) integer(c_size_t), value :: nmiss_dummy end subroutine streamWriteVarSliceF subroutine streamReadVarSlice(streamID_dummy, varID_dummy, levelID_dummy,& & data_dummy, nmiss_dummy) bind(c, name = 'streamReadVarSlice') import c_double, c_int, c_size_t integer(c_int), value :: streamID_dummy integer(c_int), value :: varID_dummy integer(c_int), value :: levelID_dummy real(c_double), intent(inout) :: data_dummy(*) integer(c_size_t), intent(inout) :: nmiss_dummy end subroutine streamReadVarSlice subroutine streamReadVarSliceF(streamID_dummy, varID_dummy, levelID_dummy,& & data_dummy, nmiss_dummy) bind(c, name = 'streamReadVarSliceF') import c_float, c_int, c_size_t integer(c_int), value :: streamID_dummy integer(c_int), value :: varID_dummy integer(c_int), value :: levelID_dummy real(c_float), intent(inout) :: data_dummy(*) integer(c_size_t), intent(inout) :: nmiss_dummy end subroutine streamReadVarSliceF subroutine streamWriteVarChunk(streamID_dummy, varID_dummy, rect_dummy,& & data_dummy, nmiss_dummy) bind(c, name = 'streamWriteVarChunk') import c_double, c_int, c_size_t integer(c_int), value :: streamID_dummy integer(c_int), value :: varID_dummy integer(c_int), intent(in) :: rect_dummy(2, 3) real(c_double), intent(in) :: data_dummy(*) integer(c_size_t), value :: nmiss_dummy end subroutine streamWriteVarChunk subroutine streamDefRecord(streamID_dummy, varID_dummy, levelID_dummy)& & bind(c, name = 'streamDefRecord') import c_int integer(c_int), value :: streamID_dummy integer(c_int), value :: varID_dummy integer(c_int), value :: levelID_dummy end subroutine streamDefRecord subroutine streamInqRecord(streamID_dummy, varID_dummy, levelID_dummy)& & bind(c, name = 'streamInqRecord') import c_int integer(c_int), value :: streamID_dummy integer(c_int), intent(inout) :: varID_dummy integer(c_int), intent(inout) :: levelID_dummy end subroutine streamInqRecord subroutine streamWriteRecord(streamID_dummy, data_dummy, nmiss_dummy)& & bind(c, name = 'streamWriteRecord') import c_double, c_int, c_size_t integer(c_int), value :: streamID_dummy real(c_double), intent(in) :: data_dummy(*) integer(c_size_t), value :: nmiss_dummy end subroutine streamWriteRecord subroutine streamWriteRecordF(streamID_dummy, data_dummy, nmiss_dummy)& & bind(c, name = 'streamWriteRecordF') import c_float, c_int, c_size_t integer(c_int), value :: streamID_dummy real(c_float), intent(in) :: data_dummy(*) integer(c_size_t), value :: nmiss_dummy end subroutine streamWriteRecordF subroutine streamReadRecord(streamID_dummy, data_dummy, nmiss_dummy)& & bind(c, name = 'streamReadRecord') import c_double, c_int, c_size_t integer(c_int), value :: streamID_dummy real(c_double), intent(inout) :: data_dummy(*) integer(c_size_t), intent(inout) :: nmiss_dummy end subroutine streamReadRecord subroutine streamReadRecordF(streamID_dummy, data_dummy, nmiss_dummy)& & bind(c, name = 'streamReadRecordF') import c_float, c_int, c_size_t integer(c_int), value :: streamID_dummy real(c_float), intent(inout) :: data_dummy(*) integer(c_size_t), intent(inout) :: nmiss_dummy end subroutine streamReadRecordF subroutine streamCopyRecord(streamIDdest_dummy, streamIDsrc_dummy) bind(c,& & name = 'streamCopyRecord') import c_int integer(c_int), value :: streamIDdest_dummy integer(c_int), value :: streamIDsrc_dummy end subroutine streamCopyRecord function vlistCreate() bind(c, name = 'vlistCreate') result(f_result) import c_int integer(c_int) :: f_result end function vlistCreate subroutine vlistDestroy(vlistID_dummy) bind(c, name = 'vlistDestroy') import c_int integer(c_int), value :: vlistID_dummy end subroutine vlistDestroy function vlistDuplicate(vlistID_dummy) bind(c, name = 'vlistDuplicate')& & result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int) :: f_result end function vlistDuplicate subroutine vlistCopy(vlistID2_dummy, vlistID1_dummy) bind(c, name =& & 'vlistCopy') import c_int integer(c_int), value :: vlistID2_dummy integer(c_int), value :: vlistID1_dummy end subroutine vlistCopy subroutine vlistCopyFlag(vlistID2_dummy, vlistID1_dummy) bind(c, name =& & 'vlistCopyFlag') import c_int integer(c_int), value :: vlistID2_dummy integer(c_int), value :: vlistID1_dummy end subroutine vlistCopyFlag subroutine vlistClearFlag(vlistID_dummy) bind(c, name = 'vlistClearFlag') import c_int integer(c_int), value :: vlistID_dummy end subroutine vlistClearFlag subroutine vlistCat(vlistID2_dummy, vlistID1_dummy) bind(c, name =& & 'vlistCat') import c_int integer(c_int), value :: vlistID2_dummy integer(c_int), value :: vlistID1_dummy end subroutine vlistCat subroutine vlistMerge(vlistID2_dummy, vlistID1_dummy) bind(c, name =& & 'vlistMerge') import c_int integer(c_int), value :: vlistID2_dummy integer(c_int), value :: vlistID1_dummy end subroutine vlistMerge subroutine vlistPrint(vlistID_dummy) bind(c, name = 'vlistPrint') import c_int integer(c_int), value :: vlistID_dummy end subroutine vlistPrint function vlistNumber(vlistID_dummy) bind(c, name = 'vlistNumber')& & result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int) :: f_result end function vlistNumber function vlistNvars(vlistID_dummy) bind(c, name = 'vlistNvars')& & result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int) :: f_result end function vlistNvars function vlistNgrids(vlistID_dummy) bind(c, name = 'vlistNgrids')& & result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int) :: f_result end function vlistNgrids function vlistNzaxis(vlistID_dummy) bind(c, name = 'vlistNzaxis')& & result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int) :: f_result end function vlistNzaxis function vlistNsubtypes(vlistID_dummy) bind(c, name = 'vlistNsubtypes')& & result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int) :: f_result end function vlistNsubtypes subroutine vlistDefNtsteps(vlistID_dummy, nts_dummy) bind(c, name =& & 'vlistDefNtsteps') import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: nts_dummy end subroutine vlistDefNtsteps function vlistNtsteps(vlistID_dummy) bind(c, name = 'vlistNtsteps')& & result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int) :: f_result end function vlistNtsteps function vlistGridsizeMax(vlistID_dummy) bind(c, name = 'vlistGridsizeMax')& & result(f_result) import c_int, c_size_t integer(c_int), value :: vlistID_dummy integer(c_size_t) :: f_result end function vlistGridsizeMax function vlistGrid(vlistID_dummy, index_dummy) bind(c, name = 'vlistGrid')& & result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: index_dummy integer(c_int) :: f_result end function vlistGrid function vlistGridIndex(vlistID_dummy, gridID_dummy) bind(c, name =& & 'vlistGridIndex') result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: gridID_dummy integer(c_int) :: f_result end function vlistGridIndex subroutine vlistChangeGridIndex(vlistID_dummy, index_dummy, gridID_dummy)& & bind(c, name = 'vlistChangeGridIndex') import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: index_dummy integer(c_int), value :: gridID_dummy end subroutine vlistChangeGridIndex subroutine vlistChangeGrid(vlistID_dummy, gridID1_dummy, gridID2_dummy)& & bind(c, name = 'vlistChangeGrid') import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: gridID1_dummy integer(c_int), value :: gridID2_dummy end subroutine vlistChangeGrid function vlistZaxis(vlistID_dummy, index_dummy) bind(c, name =& & 'vlistZaxis') result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: index_dummy integer(c_int) :: f_result end function vlistZaxis function vlistZaxisIndex(vlistID_dummy, zaxisID_dummy) bind(c, name =& & 'vlistZaxisIndex') result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: zaxisID_dummy integer(c_int) :: f_result end function vlistZaxisIndex subroutine vlistChangeZaxisIndex(vlistID_dummy, index_dummy, zaxisID_dummy)& & bind(c, name = 'vlistChangeZaxisIndex') import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: index_dummy integer(c_int), value :: zaxisID_dummy end subroutine vlistChangeZaxisIndex subroutine vlistChangeZaxis(vlistID_dummy, zaxisID1_dummy, zaxisID2_dummy)& & bind(c, name = 'vlistChangeZaxis') import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: zaxisID1_dummy integer(c_int), value :: zaxisID2_dummy end subroutine vlistChangeZaxis function vlistNrecs(vlistID_dummy) bind(c, name = 'vlistNrecs')& & result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int) :: f_result end function vlistNrecs function vlistSubtype(vlistID_dummy, index_dummy) bind(c, name =& & 'vlistSubtype') result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: index_dummy integer(c_int) :: f_result end function vlistSubtype function vlistSubtypeIndex(vlistID_dummy, subtypeID_dummy) bind(c, name =& & 'vlistSubtypeIndex') result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: subtypeID_dummy integer(c_int) :: f_result end function vlistSubtypeIndex subroutine vlistDefTaxis(vlistID_dummy, taxisID_dummy) bind(c, name =& & 'vlistDefTaxis') import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: taxisID_dummy end subroutine vlistDefTaxis function vlistInqTaxis(vlistID_dummy) bind(c, name = 'vlistInqTaxis')& & result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int) :: f_result end function vlistInqTaxis subroutine vlistDefTable(vlistID_dummy, tableID_dummy) bind(c, name =& & 'vlistDefTable') import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: tableID_dummy end subroutine vlistDefTable function vlistInqTable(vlistID_dummy) bind(c, name = 'vlistInqTable')& & result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int) :: f_result end function vlistInqTable subroutine vlistDefInstitut(vlistID_dummy, instID_dummy) bind(c, name =& & 'vlistDefInstitut') import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: instID_dummy end subroutine vlistDefInstitut function vlistInqInstitut(vlistID_dummy) bind(c, name = 'vlistInqInstitut')& & result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int) :: f_result end function vlistInqInstitut subroutine vlistDefModel(vlistID_dummy, modelID_dummy) bind(c, name =& & 'vlistDefModel') import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: modelID_dummy end subroutine vlistDefModel function vlistInqModel(vlistID_dummy) bind(c, name = 'vlistInqModel')& & result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int) :: f_result end function vlistInqModel function vlistDefVarTiles(vlistID_dummy, gridID_dummy, zaxisID_dummy,& & timetype_dummy, tilesetID_dummy) bind(c, name = 'vlistDefVarTiles')& & result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: gridID_dummy integer(c_int), value :: zaxisID_dummy integer(c_int), value :: timetype_dummy integer(c_int), value :: tilesetID_dummy integer(c_int) :: f_result end function vlistDefVarTiles function vlistDefVar(vlistID_dummy, gridID_dummy, zaxisID_dummy,& & timetype_dummy) bind(c, name = 'vlistDefVar') result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: gridID_dummy integer(c_int), value :: zaxisID_dummy integer(c_int), value :: timetype_dummy integer(c_int) :: f_result end function vlistDefVar subroutine vlistChangeVarGrid(vlistID_dummy, varID_dummy, gridID_dummy)& & bind(c, name = 'vlistChangeVarGrid') import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int), value :: gridID_dummy end subroutine vlistChangeVarGrid subroutine vlistChangeVarZaxis(vlistID_dummy, varID_dummy, zaxisID_dummy)& & bind(c, name = 'vlistChangeVarZaxis') import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int), value :: zaxisID_dummy end subroutine vlistChangeVarZaxis subroutine vlistInqVar(vlistID_dummy, varID_dummy, gridID_dummy,& & zaxisID_dummy, timetype_dummy) bind(c, name = 'vlistInqVar') import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int), intent(inout) :: gridID_dummy integer(c_int), intent(inout) :: zaxisID_dummy integer(c_int), intent(inout) :: timetype_dummy end subroutine vlistInqVar function vlistInqVarGrid(vlistID_dummy, varID_dummy) bind(c, name =& & 'vlistInqVarGrid') result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int) :: f_result end function vlistInqVarGrid function vlistInqVarZaxis(vlistID_dummy, varID_dummy) bind(c, name =& & 'vlistInqVarZaxis') result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int) :: f_result end function vlistInqVarZaxis function vlistInqVarID(vlistID_dummy, code_dummy) bind(c, name =& & 'vlistInqVarID') result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: code_dummy integer(c_int) :: f_result end function vlistInqVarID subroutine vlistDefVarTimetype(vlistID_dummy, varID_dummy, timetype_dummy)& & bind(c, name = 'vlistDefVarTimetype') import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int), value :: timetype_dummy end subroutine vlistDefVarTimetype function vlistInqVarTimetype(vlistID_dummy, varID_dummy) bind(c, name =& & 'vlistInqVarTimetype') result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int) :: f_result end function vlistInqVarTimetype subroutine vlistDefVarTsteptype(vlistID_dummy, varID_dummy,& & tsteptype_dummy) bind(c, name = 'vlistDefVarTsteptype') import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int), value :: tsteptype_dummy end subroutine vlistDefVarTsteptype function vlistInqVarTsteptype(vlistID_dummy, varID_dummy) bind(c, name =& & 'vlistInqVarTsteptype') result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int) :: f_result end function vlistInqVarTsteptype subroutine vlistDefVarCompType(vlistID_dummy, varID_dummy, comptype_dummy)& & bind(c, name = 'vlistDefVarCompType') import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int), value :: comptype_dummy end subroutine vlistDefVarCompType function vlistInqVarCompType(vlistID_dummy, varID_dummy) bind(c, name =& & 'vlistInqVarCompType') result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int) :: f_result end function vlistInqVarCompType subroutine vlistDefVarCompLevel(vlistID_dummy, varID_dummy,& & complevel_dummy) bind(c, name = 'vlistDefVarCompLevel') import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int), value :: complevel_dummy end subroutine vlistDefVarCompLevel function vlistInqVarCompLevel(vlistID_dummy, varID_dummy) bind(c, name =& & 'vlistInqVarCompLevel') result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int) :: f_result end function vlistInqVarCompLevel subroutine vlistDefVarParam(vlistID_dummy, varID_dummy, param_dummy)& & bind(c, name = 'vlistDefVarParam') import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int), value :: param_dummy end subroutine vlistDefVarParam function vlistInqVarParam(vlistID_dummy, varID_dummy) bind(c, name =& & 'vlistInqVarParam') result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int) :: f_result end function vlistInqVarParam subroutine vlistDefVarCode(vlistID_dummy, varID_dummy, code_dummy) bind(c,& & name = 'vlistDefVarCode') import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int), value :: code_dummy end subroutine vlistDefVarCode function vlistInqVarCode(vlistID_dummy, varID_dummy) bind(c, name =& & 'vlistInqVarCode') result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int) :: f_result end function vlistInqVarCode subroutine vlistDefVarDatatype(vlistID_dummy, varID_dummy, datatype_dummy)& & bind(c, name = 'vlistDefVarDatatype') import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int), value :: datatype_dummy end subroutine vlistDefVarDatatype function vlistInqVarDatatype(vlistID_dummy, varID_dummy) bind(c, name =& & 'vlistInqVarDatatype') result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int) :: f_result end function vlistInqVarDatatype subroutine vlistDefVarChunkType(vlistID_dummy, varID_dummy,& & chunktype_dummy) bind(c, name = 'vlistDefVarChunkType') import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int), value :: chunktype_dummy end subroutine vlistDefVarChunkType function vlistInqVarChunkType(vlistID_dummy, varID_dummy) bind(c, name =& & 'vlistInqVarChunkType') result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int) :: f_result end function vlistInqVarChunkType subroutine vlistDefVarXYZ(vlistID_dummy, varID_dummy, xyz_dummy) bind(c,& & name = 'vlistDefVarXYZ') import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int), value :: xyz_dummy end subroutine vlistDefVarXYZ function vlistInqVarXYZ(vlistID_dummy, varID_dummy) bind(c, name =& & 'vlistInqVarXYZ') result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int) :: f_result end function vlistInqVarXYZ function vlistInqVarNumber(vlistID_dummy, varID_dummy) bind(c, name =& & 'vlistInqVarNumber') result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int) :: f_result end function vlistInqVarNumber subroutine vlistDefVarInstitut(vlistID_dummy, varID_dummy, instID_dummy)& & bind(c, name = 'vlistDefVarInstitut') import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int), value :: instID_dummy end subroutine vlistDefVarInstitut function vlistInqVarInstitut(vlistID_dummy, varID_dummy) bind(c, name =& & 'vlistInqVarInstitut') result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int) :: f_result end function vlistInqVarInstitut subroutine vlistDefVarModel(vlistID_dummy, varID_dummy, modelID_dummy)& & bind(c, name = 'vlistDefVarModel') import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int), value :: modelID_dummy end subroutine vlistDefVarModel function vlistInqVarModel(vlistID_dummy, varID_dummy) bind(c, name =& & 'vlistInqVarModel') result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int) :: f_result end function vlistInqVarModel subroutine vlistDefVarTable(vlistID_dummy, varID_dummy, tableID_dummy)& & bind(c, name = 'vlistDefVarTable') import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int), value :: tableID_dummy end subroutine vlistDefVarTable function vlistInqVarTable(vlistID_dummy, varID_dummy) bind(c, name =& & 'vlistInqVarTable') result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int) :: f_result end function vlistInqVarTable subroutine vlistDefVarMissval(vlistID_dummy, varID_dummy, missval_dummy)& & bind(c, name = 'vlistDefVarMissval') import c_double, c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy real(c_double), value :: missval_dummy end subroutine vlistDefVarMissval function vlistInqVarMissval(vlistID_dummy, varID_dummy) bind(c, name =& & 'vlistInqVarMissval') result(f_result) import c_double, c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy real(c_double) :: f_result end function vlistInqVarMissval subroutine vlistDefVarScalefactor(vlistID_dummy, varID_dummy,& & scalefactor_dummy) bind(c, name = 'vlistDefVarScalefactor') import c_double, c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy real(c_double), value :: scalefactor_dummy end subroutine vlistDefVarScalefactor function vlistInqVarScalefactor(vlistID_dummy, varID_dummy) bind(c, name =& & 'vlistInqVarScalefactor') result(f_result) import c_double, c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy real(c_double) :: f_result end function vlistInqVarScalefactor subroutine vlistDefVarAddoffset(vlistID_dummy, varID_dummy,& & addoffset_dummy) bind(c, name = 'vlistDefVarAddoffset') import c_double, c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy real(c_double), value :: addoffset_dummy end subroutine vlistDefVarAddoffset function vlistInqVarAddoffset(vlistID_dummy, varID_dummy) bind(c, name =& & 'vlistInqVarAddoffset') result(f_result) import c_double, c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy real(c_double) :: f_result end function vlistInqVarAddoffset subroutine vlistDefVarTimave(vlistID_dummy, varID_dummy, timave_dummy)& & bind(c, name = 'vlistDefVarTimave') import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int), value :: timave_dummy end subroutine vlistDefVarTimave function vlistInqVarTimave(vlistID_dummy, varID_dummy) bind(c, name =& & 'vlistInqVarTimave') result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int) :: f_result end function vlistInqVarTimave function vlistInqVarSize(vlistID_dummy, varID_dummy) bind(c, name =& & 'vlistInqVarSize') result(f_result) import c_int, c_size_t integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_size_t) :: f_result end function vlistInqVarSize subroutine vlistDefIndex(vlistID_dummy, varID_dummy, levID_dummy,& & index_dummy) bind(c, name = 'vlistDefIndex') import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int), value :: levID_dummy integer(c_int), value :: index_dummy end subroutine vlistDefIndex function vlistInqIndex(vlistID_dummy, varID_dummy, levID_dummy) bind(c,& & name = 'vlistInqIndex') result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int), value :: levID_dummy integer(c_int) :: f_result end function vlistInqIndex subroutine vlistDefFlag(vlistID_dummy, varID_dummy, levID_dummy,& & flag_dummy) bind(c, name = 'vlistDefFlag') import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int), value :: levID_dummy integer(c_int), value :: flag_dummy end subroutine vlistDefFlag function vlistInqFlag(vlistID_dummy, varID_dummy, levID_dummy) bind(c, name& & = 'vlistInqFlag') result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int), value :: levID_dummy integer(c_int) :: f_result end function vlistInqFlag function vlistFindVar(vlistID_dummy, fvarID_dummy) bind(c, name =& & 'vlistFindVar') result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: fvarID_dummy integer(c_int) :: f_result end function vlistFindVar function vlistFindLevel(vlistID_dummy, fvarID_dummy, flevelID_dummy)& & bind(c, name = 'vlistFindLevel') result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: fvarID_dummy integer(c_int), value :: flevelID_dummy integer(c_int) :: f_result end function vlistFindLevel function vlistMergedVar(vlistID_dummy, varID_dummy) bind(c, name =& & 'vlistMergedVar') result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int) :: f_result end function vlistMergedVar function vlistMergedLevel(vlistID_dummy, varID_dummy, levelID_dummy)& & bind(c, name = 'vlistMergedLevel') result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int), value :: levelID_dummy integer(c_int) :: f_result end function vlistMergedLevel subroutine cdiClearAdditionalKeys() bind(c, name =& & 'cdiClearAdditionalKeys') end subroutine cdiClearAdditionalKeys function cdiInqNatts(cdiID_dummy, varID_dummy, nattsp_dummy) bind(c, name =& & 'cdiInqNatts') result(f_result) import c_int integer(c_int), value :: cdiID_dummy integer(c_int), value :: varID_dummy integer(c_int), intent(inout) :: nattsp_dummy integer(c_int) :: f_result end function cdiInqNatts function cdiCopyAtts(cdiID1_dummy, varID1_dummy, cdiID2_dummy,& & varID2_dummy) bind(c, name = 'cdiCopyAtts') result(f_result) import c_int integer(c_int), value :: cdiID1_dummy integer(c_int), value :: varID1_dummy integer(c_int), value :: cdiID2_dummy integer(c_int), value :: varID2_dummy integer(c_int) :: f_result end function cdiCopyAtts subroutine gridCompress(gridID_dummy) bind(c, name = 'gridCompress') import c_int integer(c_int), value :: gridID_dummy end subroutine gridCompress subroutine gridDefMaskGME(gridID_dummy, mask_dummy) bind(c, name =& & 'gridDefMaskGME') import c_int integer(c_int), value :: gridID_dummy integer(c_int), intent(in) :: mask_dummy(*) end subroutine gridDefMaskGME function gridInqMaskGME(gridID_dummy, mask_dummy) bind(c, name =& & 'gridInqMaskGME') result(f_result) import c_int integer(c_int), value :: gridID_dummy integer(c_int), intent(inout) :: mask_dummy(*) integer(c_int) :: f_result end function gridInqMaskGME subroutine gridDefMask(gridID_dummy, mask_dummy) bind(c, name =& & 'gridDefMask') import c_int integer(c_int), value :: gridID_dummy integer(c_int), intent(in) :: mask_dummy(*) end subroutine gridDefMask function gridInqMask(gridID_dummy, mask_dummy) bind(c, name =& & 'gridInqMask') result(f_result) import c_int integer(c_int), value :: gridID_dummy integer(c_int), intent(inout) :: mask_dummy(*) integer(c_int) :: f_result end function gridInqMask function gridCreate(gridtype_dummy, size_dummy) bind(c, name =& & 'gridCreate') result(f_result) import c_int, c_size_t integer(c_int), value :: gridtype_dummy integer(c_size_t), value :: size_dummy integer(c_int) :: f_result end function gridCreate subroutine gridDestroy(gridID_dummy) bind(c, name = 'gridDestroy') import c_int integer(c_int), value :: gridID_dummy end subroutine gridDestroy function gridDuplicate(gridID_dummy) bind(c, name = 'gridDuplicate')& & result(f_result) import c_int integer(c_int), value :: gridID_dummy integer(c_int) :: f_result end function gridDuplicate subroutine gridDefProj(gridID_dummy, projID_dummy) bind(c, name =& & 'gridDefProj') import c_int integer(c_int), value :: gridID_dummy integer(c_int), value :: projID_dummy end subroutine gridDefProj function gridInqProj(gridID_dummy) bind(c, name = 'gridInqProj')& & result(f_result) import c_int integer(c_int), value :: gridID_dummy integer(c_int) :: f_result end function gridInqProj function gridInqProjType(gridID_dummy) bind(c, name = 'gridInqProjType')& & result(f_result) import c_int integer(c_int), value :: gridID_dummy integer(c_int) :: f_result end function gridInqProjType function gridInqType(gridID_dummy) bind(c, name = 'gridInqType')& & result(f_result) import c_int integer(c_int), value :: gridID_dummy integer(c_int) :: f_result end function gridInqType function gridInqSize(gridID_dummy) bind(c, name = 'gridInqSize')& & result(f_result) import c_int, c_size_t integer(c_int), value :: gridID_dummy integer(c_size_t) :: f_result end function gridInqSize subroutine gridDefXsize(gridID_dummy, xsize_dummy) bind(c, name =& & 'gridDefXsize') import c_int, c_size_t integer(c_int), value :: gridID_dummy integer(c_size_t), value :: xsize_dummy end subroutine gridDefXsize function gridInqXsize(gridID_dummy) bind(c, name = 'gridInqXsize')& & result(f_result) import c_int, c_size_t integer(c_int), value :: gridID_dummy integer(c_size_t) :: f_result end function gridInqXsize subroutine gridDefYsize(gridID_dummy, ysize_dummy) bind(c, name =& & 'gridDefYsize') import c_int, c_size_t integer(c_int), value :: gridID_dummy integer(c_size_t), value :: ysize_dummy end subroutine gridDefYsize function gridInqYsize(gridID_dummy) bind(c, name = 'gridInqYsize')& & result(f_result) import c_int, c_size_t integer(c_int), value :: gridID_dummy integer(c_size_t) :: f_result end function gridInqYsize subroutine gridDefNP(gridID_dummy, np_dummy) bind(c, name = 'gridDefNP') import c_int integer(c_int), value :: gridID_dummy integer(c_int), value :: np_dummy end subroutine gridDefNP function gridInqNP(gridID_dummy) bind(c, name = 'gridInqNP')& & result(f_result) import c_int integer(c_int), value :: gridID_dummy integer(c_int) :: f_result end function gridInqNP subroutine gridDefXvals(gridID_dummy, xvals_dummy) bind(c, name =& & 'gridDefXvals') import c_double, c_int integer(c_int), value :: gridID_dummy real(c_double), intent(in) :: xvals_dummy(*) end subroutine gridDefXvals function gridInqXvals(gridID_dummy, xvals_dummy) bind(c, name =& & 'gridInqXvals') result(f_result) import c_double, c_int, c_size_t integer(c_int), value :: gridID_dummy real(c_double), intent(inout) :: xvals_dummy(*) integer(c_size_t) :: f_result end function gridInqXvals function gridInqXvalsPart(gridID_dummy, start_dummy, size_dummy,& & xvals_dummy) bind(c, name = 'gridInqXvalsPart') result(f_result) import c_double, c_int, c_size_t integer(c_int), value :: gridID_dummy integer(c_int), value :: start_dummy integer(c_size_t), value :: size_dummy real(c_double), intent(inout) :: xvals_dummy(*) integer(c_size_t) :: f_result end function gridInqXvalsPart function gridInqXIsc(gridID_dummy) bind(c, name = 'gridInqXIsc')& & result(f_result) import c_int integer(c_int), value :: gridID_dummy integer(c_int) :: f_result end function gridInqXIsc subroutine gridDefYvals(gridID_dummy, yvals_dummy) bind(c, name =& & 'gridDefYvals') import c_double, c_int integer(c_int), value :: gridID_dummy real(c_double), intent(in) :: yvals_dummy(*) end subroutine gridDefYvals function gridInqYvals(gridID_dummy, yvals_dummy) bind(c, name =& & 'gridInqYvals') result(f_result) import c_double, c_int, c_size_t integer(c_int), value :: gridID_dummy real(c_double), intent(inout) :: yvals_dummy(*) integer(c_size_t) :: f_result end function gridInqYvals function gridInqYvalsPart(gridID_dummy, start_dummy, size_dummy,& & yvals_dummy) bind(c, name = 'gridInqYvalsPart') result(f_result) import c_double, c_int, c_size_t integer(c_int), value :: gridID_dummy integer(c_int), value :: start_dummy integer(c_size_t), value :: size_dummy real(c_double), intent(inout) :: yvals_dummy(*) integer(c_size_t) :: f_result end function gridInqYvalsPart function gridInqYIsc(gridID_dummy) bind(c, name = 'gridInqYIsc')& & result(f_result) import c_int integer(c_int), value :: gridID_dummy integer(c_int) :: f_result end function gridInqYIsc function cdiDefKeyInt(cdiID_dummy, varID_dummy, key_dummy, value_dummy)& & bind(c, name = 'cdiDefKeyInt') result(f_result) import c_int integer(c_int), value :: cdiID_dummy integer(c_int), value :: varID_dummy integer(c_int), value :: key_dummy integer(c_int), value :: value_dummy integer(c_int) :: f_result end function cdiDefKeyInt function cdiInqKeyInt(cdiID_dummy, varID_dummy, key_dummy, value_dummy)& & bind(c, name = 'cdiInqKeyInt') result(f_result) import c_int integer(c_int), value :: cdiID_dummy integer(c_int), value :: varID_dummy integer(c_int), value :: key_dummy integer(c_int), intent(inout) :: value_dummy integer(c_int) :: f_result end function cdiInqKeyInt function cdiDefKeyBytes(cdiID_dummy, varID_dummy, key_dummy, bytes_dummy,& & length_dummy) bind(c, name = 'cdiDefKeyBytes') result(f_result) import c_int, c_signed_char integer(c_int), value :: cdiID_dummy integer(c_int), value :: varID_dummy integer(c_int), value :: key_dummy integer(kind = c_signed_char), intent(in) :: bytes_dummy(*) integer(c_int), value :: length_dummy integer(c_int) :: f_result end function cdiDefKeyBytes function cdiInqKeyBytes(cdiID_dummy, varID_dummy, key_dummy, bytes_dummy,& & length_dummy) bind(c, name = 'cdiInqKeyBytes') result(f_result) import c_int, c_signed_char integer(c_int), value :: cdiID_dummy integer(c_int), value :: varID_dummy integer(c_int), value :: key_dummy integer(kind = c_signed_char), intent(inout) :: bytes_dummy(*) integer(c_int), intent(inout) :: length_dummy integer(c_int) :: f_result end function cdiInqKeyBytes function cdiInqKeyLen(cdiID_dummy, varID_dummy, key_dummy, length_dummy)& & bind(c, name = 'cdiInqKeyLen') result(f_result) import c_int integer(c_int), value :: cdiID_dummy integer(c_int), value :: varID_dummy integer(c_int), value :: key_dummy integer(c_int), intent(inout) :: length_dummy integer(c_int) :: f_result end function cdiInqKeyLen function cdiCopyKeys(cdiID1_dummy, varID1_dummy, cdiID2_dummy,& & varID2_dummy) bind(c, name = 'cdiCopyKeys') result(f_result) import c_int integer(c_int), value :: cdiID1_dummy integer(c_int), value :: varID1_dummy integer(c_int), value :: cdiID2_dummy integer(c_int), value :: varID2_dummy integer(c_int) :: f_result end function cdiCopyKeys function cdiZaxisDefKeyFlt(zaxisID_dummy, key_dummy, value_dummy) bind(c,& & name = 'cdiZaxisDefKeyFlt') result(f_result) import c_double, c_int integer(c_int), value :: zaxisID_dummy integer(c_int), value :: key_dummy real(c_double), value :: value_dummy integer(c_int) :: f_result end function cdiZaxisDefKeyFlt function cdiZaxisInqKeyFlt(zaxisID_dummy, key_dummy, value_dummy) bind(c,& & name = 'cdiZaxisInqKeyFlt') result(f_result) import c_double, c_int integer(c_int), value :: zaxisID_dummy integer(c_int), value :: key_dummy real(c_double), intent(inout) :: value_dummy integer(c_int) :: f_result end function cdiZaxisInqKeyFlt subroutine gridDefDatatype(gridID_dummy, prec_dummy) bind(c, name =& & 'gridDefDatatype') import c_int integer(c_int), value :: gridID_dummy integer(c_int), value :: prec_dummy end subroutine gridDefDatatype function gridInqDatatype(gridID_dummy) bind(c, name = 'gridInqDatatype')& & result(f_result) import c_int integer(c_int), value :: gridID_dummy integer(c_int) :: f_result end function gridInqDatatype function gridInqXval(gridID_dummy, index_dummy) bind(c, name =& & 'gridInqXval') result(f_result) import c_double, c_int, c_size_t integer(c_int), value :: gridID_dummy integer(c_size_t), value :: index_dummy real(c_double) :: f_result end function gridInqXval function gridInqYval(gridID_dummy, index_dummy) bind(c, name =& & 'gridInqYval') result(f_result) import c_double, c_int, c_size_t integer(c_int), value :: gridID_dummy integer(c_size_t), value :: index_dummy real(c_double) :: f_result end function gridInqYval function gridInqXinc(gridID_dummy) bind(c, name = 'gridInqXinc')& & result(f_result) import c_double, c_int integer(c_int), value :: gridID_dummy real(c_double) :: f_result end function gridInqXinc function gridInqYinc(gridID_dummy) bind(c, name = 'gridInqYinc')& & result(f_result) import c_double, c_int integer(c_int), value :: gridID_dummy real(c_double) :: f_result end function gridInqYinc function gridIsCircular(gridID_dummy) bind(c, name = 'gridIsCircular')& & result(f_result) import c_int integer(c_int), value :: gridID_dummy integer(c_int) :: f_result end function gridIsCircular function gridInqTrunc(gridID_dummy) bind(c, name = 'gridInqTrunc')& & result(f_result) import c_int integer(c_int), value :: gridID_dummy integer(c_int) :: f_result end function gridInqTrunc subroutine gridDefTrunc(gridID_dummy, trunc_dummy) bind(c, name =& & 'gridDefTrunc') import c_int integer(c_int), value :: gridID_dummy integer(c_int), value :: trunc_dummy end subroutine gridDefTrunc subroutine gridDefNumber(gridID_dummy, number_dummy) bind(c, name =& & 'gridDefNumber') import c_int integer(c_int), value :: gridID_dummy integer(c_int), value :: number_dummy end subroutine gridDefNumber function gridInqNumber(gridID_dummy) bind(c, name = 'gridInqNumber')& & result(f_result) import c_int integer(c_int), value :: gridID_dummy integer(c_int) :: f_result end function gridInqNumber subroutine gridDefPosition(gridID_dummy, position_dummy) bind(c, name =& & 'gridDefPosition') import c_int integer(c_int), value :: gridID_dummy integer(c_int), value :: position_dummy end subroutine gridDefPosition function gridInqPosition(gridID_dummy) bind(c, name = 'gridInqPosition')& & result(f_result) import c_int integer(c_int), value :: gridID_dummy integer(c_int) :: f_result end function gridInqPosition subroutine gridDefUUID(gridID_dummy, uuid_dummy) bind(c, name =& & 'gridDefUUID') import CDI_UUID_SIZE, c_int, c_signed_char integer(c_int), value :: gridID_dummy integer(kind = c_signed_char), intent(in) :: uuid_dummy(CDI_UUID_SIZE) end subroutine gridDefUUID subroutine gridInqUUID(gridID_dummy, uuid_dummy) bind(c, name =& & 'gridInqUUID') import CDI_UUID_SIZE, c_int, c_signed_char integer(c_int), value :: gridID_dummy integer(kind = c_signed_char), intent(inout) :: uuid_dummy(CDI_UUID_SIZE) end subroutine gridInqUUID subroutine gridDefParamRLL(gridID_dummy, xpole_dummy, ypole_dummy,& & angle_dummy) bind(c, name = 'gridDefParamRLL') import c_double, c_int integer(c_int), value :: gridID_dummy real(c_double), value :: xpole_dummy real(c_double), value :: ypole_dummy real(c_double), value :: angle_dummy end subroutine gridDefParamRLL subroutine gridInqParamRLL(gridID_dummy, xpole_dummy, ypole_dummy,& & angle_dummy) bind(c, name = 'gridInqParamRLL') import c_double, c_int integer(c_int), value :: gridID_dummy real(c_double), intent(inout) :: xpole_dummy real(c_double), intent(inout) :: ypole_dummy real(c_double), intent(inout) :: angle_dummy end subroutine gridInqParamRLL subroutine gridDefParamGME(gridID_dummy, nd_dummy, ni_dummy, ni2_dummy,& & ni3_dummy) bind(c, name = 'gridDefParamGME') import c_int integer(c_int), value :: gridID_dummy integer(c_int), value :: nd_dummy integer(c_int), value :: ni_dummy integer(c_int), value :: ni2_dummy integer(c_int), value :: ni3_dummy end subroutine gridDefParamGME subroutine gridInqParamGME(gridID_dummy, nd_dummy, ni_dummy, ni2_dummy,& & ni3_dummy) bind(c, name = 'gridInqParamGME') import c_int integer(c_int), value :: gridID_dummy integer(c_int), intent(inout) :: nd_dummy integer(c_int), intent(inout) :: ni_dummy integer(c_int), intent(inout) :: ni2_dummy integer(c_int), intent(inout) :: ni3_dummy end subroutine gridInqParamGME subroutine gridDefParamLCC(gridID_dummy, missval_dummy, lon_0_dummy,& & lat_0_dummy, lat_1_dummy, lat_2_dummy, a_dummy, rf_dummy, xval_0_dummy,& & yval_0_dummy, x_0_dummy, y_0_dummy) bind(c, name = 'gridDefParamLCC') import c_double, c_int integer(c_int), value :: gridID_dummy real(c_double), value :: missval_dummy real(c_double), value :: lon_0_dummy real(c_double), value :: lat_0_dummy real(c_double), value :: lat_1_dummy real(c_double), value :: lat_2_dummy real(c_double), value :: a_dummy real(c_double), value :: rf_dummy real(c_double), value :: xval_0_dummy real(c_double), value :: yval_0_dummy real(c_double), value :: x_0_dummy real(c_double), value :: y_0_dummy end subroutine gridDefParamLCC function gridInqParamLCC(gridID_dummy, missval_dummy, lon_0_dummy,& & lat_0_dummy, lat_1_dummy, lat_2_dummy, a_dummy, rf_dummy, xval_0_dummy,& & yval_0_dummy, x_0_dummy, y_0_dummy) bind(c, name = 'gridInqParamLCC')& & result(f_result) import c_double, c_int integer(c_int), value :: gridID_dummy real(c_double), value :: missval_dummy real(c_double), intent(inout) :: lon_0_dummy real(c_double), intent(inout) :: lat_0_dummy real(c_double), intent(inout) :: lat_1_dummy real(c_double), intent(inout) :: lat_2_dummy real(c_double), intent(inout) :: a_dummy real(c_double), intent(inout) :: rf_dummy real(c_double), intent(inout) :: xval_0_dummy real(c_double), intent(inout) :: yval_0_dummy real(c_double), intent(inout) :: x_0_dummy real(c_double), intent(inout) :: y_0_dummy integer(c_int) :: f_result end function gridInqParamLCC subroutine gridDefParamSTERE(gridID_dummy, missval_dummy, lon_0_dummy,& & lat_ts_dummy, lat_0_dummy, a_dummy, xval_0_dummy, yval_0_dummy,& & x_0_dummy, y_0_dummy) bind(c, name = 'gridDefParamSTERE') import c_double, c_int integer(c_int), value :: gridID_dummy real(c_double), value :: missval_dummy real(c_double), value :: lon_0_dummy real(c_double), value :: lat_ts_dummy real(c_double), value :: lat_0_dummy real(c_double), value :: a_dummy real(c_double), value :: xval_0_dummy real(c_double), value :: yval_0_dummy real(c_double), value :: x_0_dummy real(c_double), value :: y_0_dummy end subroutine gridDefParamSTERE function gridInqParamSTERE(gridID_dummy, missval_dummy, lon_0_dummy,& & lat_ts_dummy, lat_0_dummy, a_dummy, xval_0_dummy, yval_0_dummy,& & x_0_dummy, y_0_dummy) bind(c, name = 'gridInqParamSTERE')& & result(f_result) import c_double, c_int integer(c_int), value :: gridID_dummy real(c_double), value :: missval_dummy real(c_double), intent(inout) :: lon_0_dummy real(c_double), intent(inout) :: lat_ts_dummy real(c_double), intent(inout) :: lat_0_dummy real(c_double), intent(inout) :: a_dummy real(c_double), intent(inout) :: xval_0_dummy real(c_double), intent(inout) :: yval_0_dummy real(c_double), intent(inout) :: x_0_dummy real(c_double), intent(inout) :: y_0_dummy integer(c_int) :: f_result end function gridInqParamSTERE subroutine gridDefArea(gridID_dummy, area_dummy) bind(c, name =& & 'gridDefArea') import c_double, c_int integer(c_int), value :: gridID_dummy real(c_double), intent(in) :: area_dummy(*) end subroutine gridDefArea subroutine gridInqArea(gridID_dummy, area_dummy) bind(c, name =& & 'gridInqArea') import c_double, c_int integer(c_int), value :: gridID_dummy real(c_double), intent(inout) :: area_dummy(*) end subroutine gridInqArea function gridHasArea(gridID_dummy) bind(c, name = 'gridHasArea')& & result(f_result) import c_int integer(c_int), value :: gridID_dummy integer(c_int) :: f_result end function gridHasArea subroutine gridDefNvertex(gridID_dummy, nvertex_dummy) bind(c, name =& & 'gridDefNvertex') import c_int integer(c_int), value :: gridID_dummy integer(c_int), value :: nvertex_dummy end subroutine gridDefNvertex function gridInqNvertex(gridID_dummy) bind(c, name = 'gridInqNvertex')& & result(f_result) import c_int integer(c_int), value :: gridID_dummy integer(c_int) :: f_result end function gridInqNvertex subroutine gridDefXbounds(gridID_dummy, xbounds_dummy) bind(c, name =& & 'gridDefXbounds') import c_double, c_int integer(c_int), value :: gridID_dummy real(c_double), intent(in) :: xbounds_dummy(*) end subroutine gridDefXbounds function gridInqXbounds(gridID_dummy, xbounds_dummy) bind(c, name =& & 'gridInqXbounds') result(f_result) import c_double, c_int, c_size_t integer(c_int), value :: gridID_dummy real(c_double), intent(inout) :: xbounds_dummy(*) integer(c_size_t) :: f_result end function gridInqXbounds function gridInqXboundsPart(gridID_dummy, start_dummy, size_dummy,& & xbounds_dummy) bind(c, name = 'gridInqXboundsPart') result(f_result) import c_double, c_int, c_size_t integer(c_int), value :: gridID_dummy integer(c_int), value :: start_dummy integer(c_size_t), value :: size_dummy real(c_double), intent(inout) :: xbounds_dummy(*) integer(c_size_t) :: f_result end function gridInqXboundsPart subroutine gridDefYbounds(gridID_dummy, ybounds_dummy) bind(c, name =& & 'gridDefYbounds') import c_double, c_int integer(c_int), value :: gridID_dummy real(c_double), intent(in) :: ybounds_dummy(*) end subroutine gridDefYbounds function gridInqYbounds(gridID_dummy, ybounds_dummy) bind(c, name =& & 'gridInqYbounds') result(f_result) import c_double, c_int, c_size_t integer(c_int), value :: gridID_dummy real(c_double), intent(inout) :: ybounds_dummy(*) integer(c_size_t) :: f_result end function gridInqYbounds function gridInqYboundsPart(gridID_dummy, start_dummy, size_dummy,& & ybounds_dummy) bind(c, name = 'gridInqYboundsPart') result(f_result) import c_double, c_int, c_size_t integer(c_int), value :: gridID_dummy integer(c_int), value :: start_dummy integer(c_size_t), value :: size_dummy real(c_double), intent(inout) :: ybounds_dummy(*) integer(c_size_t) :: f_result end function gridInqYboundsPart subroutine gridDefReducedPoints(gridID_dummy, reducedPointsSize_dummy, rowlon_dummy) bind(c,& & name = 'gridDefReducedPoints') import c_int integer(c_int), value :: gridID_dummy integer(c_int), value :: reducedPointsSize_dummy integer(c_int), intent(in) :: rowlon_dummy(*) end subroutine gridDefReducedPoints subroutine gridInqReducedPoints(gridID_dummy, rowlon_dummy) bind(c, name =& & 'gridInqReducedPoints') import c_int integer(c_int), value :: gridID_dummy integer(c_int), intent(inout) :: rowlon_dummy(*) end subroutine gridInqReducedPoints subroutine gridChangeType(gridID_dummy, gridtype_dummy) bind(c, name =& & 'gridChangeType') import c_int integer(c_int), value :: gridID_dummy integer(c_int), value :: gridtype_dummy end subroutine gridChangeType subroutine gridDefComplexPacking(gridID_dummy, lpack_dummy) bind(c, name =& & 'gridDefComplexPacking') import c_int integer(c_int), value :: gridID_dummy integer(c_int), value :: lpack_dummy end subroutine gridDefComplexPacking function gridInqComplexPacking(gridID_dummy) bind(c, name =& & 'gridInqComplexPacking') result(f_result) import c_int integer(c_int), value :: gridID_dummy integer(c_int) :: f_result end function gridInqComplexPacking subroutine gridDefScanningMode(gridID_dummy, mode_dummy) bind(c, name =& & 'gridDefScanningMode') import c_int integer(c_int), value :: gridID_dummy integer(c_int), value :: mode_dummy end subroutine gridDefScanningMode function gridInqScanningMode(gridID_dummy) bind(c, name =& & 'gridInqScanningMode') result(f_result) import c_int integer(c_int), value :: gridID_dummy integer(c_int) :: f_result end function gridInqScanningMode function zaxisCreate(zaxistype_dummy, size_dummy) bind(c, name =& & 'zaxisCreate') result(f_result) import c_int integer(c_int), value :: zaxistype_dummy integer(c_int), value :: size_dummy integer(c_int) :: f_result end function zaxisCreate subroutine zaxisDestroy(zaxisID_dummy) bind(c, name = 'zaxisDestroy') import c_int integer(c_int), value :: zaxisID_dummy end subroutine zaxisDestroy function zaxisInqType(zaxisID_dummy) bind(c, name = 'zaxisInqType')& & result(f_result) import c_int integer(c_int), value :: zaxisID_dummy integer(c_int) :: f_result end function zaxisInqType function zaxisInqSize(zaxisID_dummy) bind(c, name = 'zaxisInqSize')& & result(f_result) import c_int integer(c_int), value :: zaxisID_dummy integer(c_int) :: f_result end function zaxisInqSize function zaxisDuplicate(zaxisID_dummy) bind(c, name = 'zaxisDuplicate')& & result(f_result) import c_int integer(c_int), value :: zaxisID_dummy integer(c_int) :: f_result end function zaxisDuplicate subroutine zaxisDefLevels(zaxisID_dummy, levels_dummy) bind(c, name =& & 'zaxisDefLevels') import c_double, c_int integer(c_int), value :: zaxisID_dummy real(c_double), intent(in) :: levels_dummy(*) end subroutine zaxisDefLevels function zaxisInqLevels(zaxisID_dummy, levels_dummy) bind(c, name =& & 'zaxisInqLevels') result(f_result) import c_double, c_int integer(c_int), value :: zaxisID_dummy real(c_double), intent(inout) :: levels_dummy(*) integer(c_int) :: f_result end function zaxisInqLevels function zaxisInqCLen(zaxisID_dummy) bind(c, name = 'zaxisInqCLen')& & result(f_result) import c_int integer(c_int), value :: zaxisID_dummy integer(c_int) :: f_result end function zaxisInqCLen subroutine zaxisDefLevel(zaxisID_dummy, levelID_dummy, levels_dummy)& & bind(c, name = 'zaxisDefLevel') import c_double, c_int integer(c_int), value :: zaxisID_dummy integer(c_int), value :: levelID_dummy real(c_double), value :: levels_dummy end subroutine zaxisDefLevel function zaxisInqLevel(zaxisID_dummy, levelID_dummy) bind(c, name =& & 'zaxisInqLevel') result(f_result) import c_double, c_int integer(c_int), value :: zaxisID_dummy integer(c_int), value :: levelID_dummy real(c_double) :: f_result end function zaxisInqLevel subroutine zaxisDefNlevRef(gridID_dummy, nhlev_dummy) bind(c, name =& & 'zaxisDefNlevRef') import c_int integer(c_int), value :: gridID_dummy integer(c_int), value :: nhlev_dummy end subroutine zaxisDefNlevRef function zaxisInqNlevRef(gridID_dummy) bind(c, name = 'zaxisInqNlevRef')& & result(f_result) import c_int integer(c_int), value :: gridID_dummy integer(c_int) :: f_result end function zaxisInqNlevRef subroutine zaxisDefNumber(gridID_dummy, number_dummy) bind(c, name =& & 'zaxisDefNumber') import c_int integer(c_int), value :: gridID_dummy integer(c_int), value :: number_dummy end subroutine zaxisDefNumber function zaxisInqNumber(gridID_dummy) bind(c, name = 'zaxisInqNumber')& & result(f_result) import c_int integer(c_int), value :: gridID_dummy integer(c_int) :: f_result end function zaxisInqNumber subroutine zaxisDefUUID(zaxisID_dummy, uuid_dummy) bind(c, name =& & 'zaxisDefUUID') import CDI_UUID_SIZE, c_int, c_signed_char integer(c_int), value :: zaxisID_dummy integer(kind = c_signed_char), intent(in) :: uuid_dummy(CDI_UUID_SIZE) end subroutine zaxisDefUUID subroutine zaxisInqUUID(zaxisID_dummy, uuid_dummy) bind(c, name =& & 'zaxisInqUUID') import CDI_UUID_SIZE, c_int, c_signed_char integer(c_int), value :: zaxisID_dummy integer(kind = c_signed_char), intent(inout) :: uuid_dummy(CDI_UUID_SIZE) end subroutine zaxisInqUUID subroutine zaxisDefDatatype(zaxisID_dummy, prec_dummy) bind(c, name =& & 'zaxisDefDatatype') import c_int integer(c_int), value :: zaxisID_dummy integer(c_int), value :: prec_dummy end subroutine zaxisDefDatatype function zaxisInqDatatype(zaxisID_dummy) bind(c, name = 'zaxisInqDatatype')& & result(f_result) import c_int integer(c_int), value :: zaxisID_dummy integer(c_int) :: f_result end function zaxisInqDatatype subroutine zaxisDefPositive(zaxisID_dummy, positive_dummy) bind(c, name =& & 'zaxisDefPositive') import c_int integer(c_int), value :: zaxisID_dummy integer(c_int), value :: positive_dummy end subroutine zaxisDefPositive function zaxisInqPositive(zaxisID_dummy) bind(c, name = 'zaxisInqPositive')& & result(f_result) import c_int integer(c_int), value :: zaxisID_dummy integer(c_int) :: f_result end function zaxisInqPositive subroutine zaxisDefScalar(zaxisID_dummy) bind(c, name = 'zaxisDefScalar') import c_int integer(c_int), value :: zaxisID_dummy end subroutine zaxisDefScalar function zaxisInqScalar(zaxisID_dummy) bind(c, name = 'zaxisInqScalar')& & result(f_result) import c_int integer(c_int), value :: zaxisID_dummy integer(c_int) :: f_result end function zaxisInqScalar subroutine zaxisDefLtype(zaxisID_dummy, ltype_dummy) bind(c, name =& & 'zaxisDefLtype') import c_int integer(c_int), value :: zaxisID_dummy integer(c_int), value :: ltype_dummy end subroutine zaxisDefLtype function zaxisInqLtype(zaxisID_dummy) bind(c, name = 'zaxisInqLtype')& & result(f_result) import c_int integer(c_int), value :: zaxisID_dummy integer(c_int) :: f_result end function zaxisInqLtype subroutine zaxisDefLtype2(zaxisID_dummy, ltype2_dummy) bind(c, name =& & 'zaxisDefLtype2') import c_int integer(c_int), value :: zaxisID_dummy integer(c_int), value :: ltype2_dummy end subroutine zaxisDefLtype2 function zaxisInqLtype2(zaxisID_dummy) bind(c, name = 'zaxisInqLtype2')& & result(f_result) import c_int integer(c_int), value :: zaxisID_dummy integer(c_int) :: f_result end function zaxisInqLtype2 subroutine zaxisDefVct(zaxisID_dummy, size_dummy, vct_dummy) bind(c, name =& & 'zaxisDefVct') import c_double, c_int integer(c_int), value :: zaxisID_dummy integer(c_int), value :: size_dummy real(c_double), intent(in) :: vct_dummy(*) end subroutine zaxisDefVct subroutine zaxisInqVct(zaxisID_dummy, vct_dummy) bind(c, name =& & 'zaxisInqVct') import c_double, c_int integer(c_int), value :: zaxisID_dummy real(c_double), intent(inout) :: vct_dummy(*) end subroutine zaxisInqVct function zaxisInqVctSize(zaxisID_dummy) bind(c, name = 'zaxisInqVctSize')& & result(f_result) import c_int integer(c_int), value :: zaxisID_dummy integer(c_int) :: f_result end function zaxisInqVctSize function zaxisInqVctPtr(zaxisID_dummy) bind(c, name = 'zaxisInqVctPtr')& & result(f_result) import c_int, c_ptr integer(c_int), value :: zaxisID_dummy type(c_ptr) :: f_result end function zaxisInqVctPtr subroutine zaxisDefLbounds(zaxisID_dummy, lbounds_dummy) bind(c, name =& & 'zaxisDefLbounds') import c_double, c_int integer(c_int), value :: zaxisID_dummy real(c_double), intent(in) :: lbounds_dummy(*) end subroutine zaxisDefLbounds function zaxisInqLbound(zaxisID_dummy, index_dummy) bind(c, name =& & 'zaxisInqLbound') result(f_result) import c_double, c_int integer(c_int), value :: zaxisID_dummy integer(c_int), value :: index_dummy real(c_double) :: f_result end function zaxisInqLbound subroutine zaxisDefUbounds(zaxisID_dummy, ubounds_dummy) bind(c, name =& & 'zaxisDefUbounds') import c_double, c_int integer(c_int), value :: zaxisID_dummy real(c_double), intent(in) :: ubounds_dummy(*) end subroutine zaxisDefUbounds function zaxisInqUbound(zaxisID_dummy, index_dummy) bind(c, name =& & 'zaxisInqUbound') result(f_result) import c_double, c_int integer(c_int), value :: zaxisID_dummy integer(c_int), value :: index_dummy real(c_double) :: f_result end function zaxisInqUbound subroutine zaxisDefWeights(zaxisID_dummy, weights_dummy) bind(c, name =& & 'zaxisDefWeights') import c_double, c_int integer(c_int), value :: zaxisID_dummy real(c_double), intent(in) :: weights_dummy(*) end subroutine zaxisDefWeights subroutine zaxisChangeType(zaxisID_dummy, zaxistype_dummy) bind(c, name =& & 'zaxisChangeType') import c_int integer(c_int), value :: zaxisID_dummy integer(c_int), value :: zaxistype_dummy end subroutine zaxisChangeType function taxisCreate(taxistype_dummy) bind(c, name = 'taxisCreate')& & result(f_result) import c_int integer(c_int), value :: taxistype_dummy integer(c_int) :: f_result end function taxisCreate subroutine taxisDestroy(taxisID_dummy) bind(c, name = 'taxisDestroy') import c_int integer(c_int), value :: taxisID_dummy end subroutine taxisDestroy function taxisDuplicate(taxisID_dummy) bind(c, name = 'taxisDuplicate')& & result(f_result) import c_int integer(c_int), value :: taxisID_dummy integer(c_int) :: f_result end function taxisDuplicate subroutine taxisCopyTimestep(taxisIDdes_dummy, taxisIDsrc_dummy) bind(c,& & name = 'taxisCopyTimestep') import c_int integer(c_int), value :: taxisIDdes_dummy integer(c_int), value :: taxisIDsrc_dummy end subroutine taxisCopyTimestep subroutine taxisDefType(taxisID_dummy, taxistype_dummy) bind(c, name =& & 'taxisDefType') import c_int integer(c_int), value :: taxisID_dummy integer(c_int), value :: taxistype_dummy end subroutine taxisDefType function taxisInqType(taxisID_dummy) bind(c, name = 'taxisInqType')& & result(f_result) import c_int integer(c_int), value :: taxisID_dummy integer(c_int) :: f_result end function taxisInqType subroutine taxisDefVdate(taxisID_dummy, date_dummy) bind(c, name =& & 'taxisDefVdate') import c_int, c_int64_t integer(c_int), value :: taxisID_dummy integer(c_int64_t), value :: date_dummy end subroutine taxisDefVdate subroutine taxisDefVtime(taxisID_dummy, time_dummy) bind(c, name =& & 'taxisDefVtime') import c_int integer(c_int), value :: taxisID_dummy integer(c_int), value :: time_dummy end subroutine taxisDefVtime function taxisInqVdate(taxisID_dummy) bind(c, name = 'taxisInqVdate')& & result(f_result) import c_int, c_int64_t integer(c_int), value :: taxisID_dummy integer(c_int64_t) :: f_result end function taxisInqVdate function taxisInqVtime(taxisID_dummy) bind(c, name = 'taxisInqVtime')& & result(f_result) import c_int integer(c_int), value :: taxisID_dummy integer(c_int) :: f_result end function taxisInqVtime subroutine taxisDefRdate(taxisID_dummy, date_dummy) bind(c, name =& & 'taxisDefRdate') import c_int, c_int64_t integer(c_int), value :: taxisID_dummy integer(c_int64_t), value :: date_dummy end subroutine taxisDefRdate subroutine taxisDefRtime(taxisID_dummy, time_dummy) bind(c, name =& & 'taxisDefRtime') import c_int integer(c_int), value :: taxisID_dummy integer(c_int), value :: time_dummy end subroutine taxisDefRtime function taxisInqRdate(taxisID_dummy) bind(c, name = 'taxisInqRdate')& & result(f_result) import c_int, c_int64_t integer(c_int), value :: taxisID_dummy integer(c_int64_t) :: f_result end function taxisInqRdate function taxisInqRtime(taxisID_dummy) bind(c, name = 'taxisInqRtime')& & result(f_result) import c_int integer(c_int), value :: taxisID_dummy integer(c_int) :: f_result end function taxisInqRtime subroutine taxisDefFdate(taxisID_dummy, date_dummy) bind(c, name =& & 'taxisDefFdate') import c_int, c_int64_t integer(c_int), value :: taxisID_dummy integer(c_int64_t), value :: date_dummy end subroutine taxisDefFdate subroutine taxisDefFtime(taxisID_dummy, time_dummy) bind(c, name =& & 'taxisDefFtime') import c_int integer(c_int), value :: taxisID_dummy integer(c_int), value :: time_dummy end subroutine taxisDefFtime function taxisInqFdate(taxisID_dummy) bind(c, name = 'taxisInqFdate')& & result(f_result) import c_int, c_int64_t integer(c_int), value :: taxisID_dummy integer(c_int64_t) :: f_result end function taxisInqFdate function taxisInqFtime(taxisID_dummy) bind(c, name = 'taxisInqFtime')& & result(f_result) import c_int integer(c_int), value :: taxisID_dummy integer(c_int) :: f_result end function taxisInqFtime function taxisHasBounds(taxisID_dummy) bind(c, name = 'taxisHasBounds')& & result(f_result) import c_int integer(c_int), value :: taxisID_dummy integer(c_int) :: f_result end function taxisHasBounds subroutine taxisWithBounds(taxisID_dummy) bind(c, name = 'taxisWithBounds') import c_int integer(c_int), value :: taxisID_dummy end subroutine taxisWithBounds subroutine taxisDeleteBounds(taxisID_dummy) bind(c, name =& & 'taxisDeleteBounds') import c_int integer(c_int), value :: taxisID_dummy end subroutine taxisDeleteBounds subroutine taxisDefVdateBounds(taxisID_dummy, vdate_lb_dummy,& & vdate_ub_dummy) bind(c, name = 'taxisDefVdateBounds') import c_int, c_int64_t integer(c_int), value :: taxisID_dummy integer(c_int64_t), value :: vdate_lb_dummy integer(c_int64_t), value :: vdate_ub_dummy end subroutine taxisDefVdateBounds subroutine taxisDefVtimeBounds(taxisID_dummy, vtime_lb_dummy,& & vtime_ub_dummy) bind(c, name = 'taxisDefVtimeBounds') import c_int integer(c_int), value :: taxisID_dummy integer(c_int), value :: vtime_lb_dummy integer(c_int), value :: vtime_ub_dummy end subroutine taxisDefVtimeBounds subroutine taxisInqVdateBounds(taxisID_dummy, vdate_lb_dummy,& & vdate_ub_dummy) bind(c, name = 'taxisInqVdateBounds') import c_int, c_int64_t integer(c_int), value :: taxisID_dummy integer(c_int64_t), intent(inout) :: vdate_lb_dummy integer(c_int64_t), intent(inout) :: vdate_ub_dummy end subroutine taxisInqVdateBounds subroutine taxisInqVtimeBounds(taxisID_dummy, vtime_lb_dummy,& & vtime_ub_dummy) bind(c, name = 'taxisInqVtimeBounds') import c_int integer(c_int), value :: taxisID_dummy integer(c_int), intent(inout) :: vtime_lb_dummy integer(c_int), intent(inout) :: vtime_ub_dummy end subroutine taxisInqVtimeBounds subroutine taxisDefCalendar(taxisID_dummy, calendar_dummy) bind(c, name =& & 'taxisDefCalendar') import c_int integer(c_int), value :: taxisID_dummy integer(c_int), value :: calendar_dummy end subroutine taxisDefCalendar function taxisInqCalendar(taxisID_dummy) bind(c, name = 'taxisInqCalendar')& & result(f_result) import c_int integer(c_int), value :: taxisID_dummy integer(c_int) :: f_result end function taxisInqCalendar subroutine taxisDefTunit(taxisID_dummy, tunit_dummy) bind(c, name =& & 'taxisDefTunit') import c_int integer(c_int), value :: taxisID_dummy integer(c_int), value :: tunit_dummy end subroutine taxisDefTunit function taxisInqTunit(taxisID_dummy) bind(c, name = 'taxisInqTunit')& & result(f_result) import c_int integer(c_int), value :: taxisID_dummy integer(c_int) :: f_result end function taxisInqTunit subroutine taxisDefForecastTunit(taxisID_dummy, tunit_dummy) bind(c, name =& & 'taxisDefForecastTunit') import c_int integer(c_int), value :: taxisID_dummy integer(c_int), value :: tunit_dummy end subroutine taxisDefForecastTunit function taxisInqForecastTunit(taxisID_dummy) bind(c, name =& & 'taxisInqForecastTunit') result(f_result) import c_int integer(c_int), value :: taxisID_dummy integer(c_int) :: f_result end function taxisInqForecastTunit subroutine taxisDefForecastPeriod(taxisID_dummy, fc_period_dummy) bind(c,& & name = 'taxisDefForecastPeriod') import c_double, c_int integer(c_int), value :: taxisID_dummy real(c_double), value :: fc_period_dummy end subroutine taxisDefForecastPeriod function taxisInqForecastPeriod(taxisID_dummy) bind(c, name =& & 'taxisInqForecastPeriod') result(f_result) import c_double, c_int integer(c_int), value :: taxisID_dummy real(c_double) :: f_result end function taxisInqForecastPeriod subroutine taxisDefNumavg(taxisID_dummy, numavg_dummy) bind(c, name =& & 'taxisDefNumavg') import c_int integer(c_int), value :: taxisID_dummy integer(c_int), value :: numavg_dummy end subroutine taxisDefNumavg function taxisInqNumavg(taxisID_dummy) bind(c, name = 'taxisInqNumavg')& & result(f_result) import c_int integer(c_int), value :: taxisID_dummy integer(c_int) :: f_result end function taxisInqNumavg function institutInqNumber() bind(c, name = 'institutInqNumber')& & result(f_result) import c_int integer(c_int) :: f_result end function institutInqNumber function institutInqCenter(instID_dummy) bind(c, name =& & 'institutInqCenter') result(f_result) import c_int integer(c_int), value :: instID_dummy integer(c_int) :: f_result end function institutInqCenter function institutInqSubcenter(instID_dummy) bind(c, name =& & 'institutInqSubcenter') result(f_result) import c_int integer(c_int), value :: instID_dummy integer(c_int) :: f_result end function institutInqSubcenter function modelInqInstitut(modelID_dummy) bind(c, name = 'modelInqInstitut')& & result(f_result) import c_int integer(c_int), value :: modelID_dummy integer(c_int) :: f_result end function modelInqInstitut function modelInqGribID(modelID_dummy) bind(c, name = 'modelInqGribID')& & result(f_result) import c_int integer(c_int), value :: modelID_dummy integer(c_int) :: f_result end function modelInqGribID function tableInqNumber() bind(c, name = 'tableInqNumber') result(f_result) import c_int integer(c_int) :: f_result end function tableInqNumber function tableInqNum(tableID_dummy) bind(c, name = 'tableInqNum')& & result(f_result) import c_int integer(c_int), value :: tableID_dummy integer(c_int) :: f_result end function tableInqNum function tableInqModel(tableID_dummy) bind(c, name = 'tableInqModel')& & result(f_result) import c_int integer(c_int), value :: tableID_dummy integer(c_int) :: f_result end function tableInqModel function streamInqHistorySize(streamID_dummy) bind(c, name =& & 'streamInqHistorySize') result(f_result) import c_int integer(c_int), value :: streamID_dummy integer(c_int) :: f_result end function streamInqHistorySize function subtypeCreate(subtype_dummy) bind(c, name = 'subtypeCreate')& & result(f_result) import c_int integer(c_int), value :: subtype_dummy integer(c_int) :: f_result end function subtypeCreate subroutine subtypePrint(subtypeID_dummy) bind(c, name = 'subtypePrint') import c_int integer(c_int), value :: subtypeID_dummy end subroutine subtypePrint function subtypeCompare(subtypeID1_dummy, subtypeID2_dummy) bind(c, name =& & 'subtypeCompare') result(f_result) import c_int integer(c_int), value :: subtypeID1_dummy integer(c_int), value :: subtypeID2_dummy integer(c_int) :: f_result end function subtypeCompare function subtypeInqSize(subtypeID_dummy) bind(c, name = 'subtypeInqSize')& & result(f_result) import c_int integer(c_int), value :: subtypeID_dummy integer(c_int) :: f_result end function subtypeInqSize function subtypeInqActiveIndex(subtypeID_dummy) bind(c, name =& & 'subtypeInqActiveIndex') result(f_result) import c_int integer(c_int), value :: subtypeID_dummy integer(c_int) :: f_result end function subtypeInqActiveIndex subroutine subtypeDefActiveIndex(subtypeID_dummy, index_dummy) bind(c, name& & = 'subtypeDefActiveIndex') import c_int integer(c_int), value :: subtypeID_dummy integer(c_int), value :: index_dummy end subroutine subtypeDefActiveIndex function subtypeInqTile(subtypeID_dummy, tileindex_dummy, attribute_dummy)& & bind(c, name = 'subtypeInqTile') result(f_result) import c_int integer(c_int), value :: subtypeID_dummy integer(c_int), value :: tileindex_dummy integer(c_int), value :: attribute_dummy integer(c_int) :: f_result end function subtypeInqTile function vlistInqVarSubtype(vlistID_dummy, varID_dummy) bind(c, name =& & 'vlistInqVarSubtype') result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int) :: f_result end function vlistInqVarSubtype subroutine gribapiLibraryVersion(major_version_dummy, minor_version_dummy,& & revision_version_dummy) bind(c, name = 'gribapiLibraryVersion') import c_int integer(c_int), intent(inout) :: major_version_dummy integer(c_int), intent(inout) :: minor_version_dummy integer(c_int), intent(inout) :: revision_version_dummy end subroutine gribapiLibraryVersion subroutine gaussianLatitudes(latitudes_dummy, weights_dummy, nlat_dummy)& & bind(c, name = 'gaussianLatitudes') import c_double, c_size_t real(c_double), intent(inout) :: latitudes_dummy real(c_double), intent(inout) :: weights_dummy integer(c_size_t), value :: nlat_dummy end subroutine gaussianLatitudes end interface contains subroutine ctrim(str) character(kind = c_char, len = *), intent(inout) :: str integer :: i do i=1,len(str) if (str(i:i) == c_null_char) then str(i:len(str)) = ' ' exit end if end do end subroutine ctrim function c_len(s) result(i) character(kind = c_char, len = *), intent(in) :: s integer :: i do i = 1, len(s) if (s(i:i) == c_null_char) exit end do i = i - 1 end function function cdiStringError(cdiErrno_dummy) result(f_result) character(kind = c_char), dimension(:), pointer :: f_result integer(c_int), value :: cdiErrno_dummy type(c_ptr) :: ptr integer :: rv_shape(1) interface function lib_cdiStringError(cdiErrno_dummy) bind(c, name =& & 'cdiStringError') result(c_result) import c_int, c_ptr type(c_ptr) :: c_result integer(c_int), value :: cdiErrno_dummy end function lib_cdiStringError end interface f_result => null() ptr = lib_cdiStringError(cdiErrno_dummy) if(c_associated(ptr)) then rv_shape(1) = int(lib_strlen(ptr)) call c_f_pointer(ptr, f_result, rv_shape) end if end function cdiStringError function cdiLibraryVersion() result(f_result) character(kind = c_char), dimension(:), pointer :: f_result type(c_ptr) :: ptr integer :: rv_shape(1) interface function lib_cdiLibraryVersion() bind(c, name = 'cdiLibraryVersion')& & result(c_result) import c_ptr type(c_ptr) :: c_result end function lib_cdiLibraryVersion end interface f_result => null() ptr = lib_cdiLibraryVersion() if(c_associated(ptr)) then rv_shape(1) = int(lib_strlen(ptr)) call c_f_pointer(ptr, f_result, rv_shape) end if end function cdiLibraryVersion subroutine cdiDefGlobal(string_dummy, val_dummy) character(kind = c_char, len = *), intent(in) :: string_dummy integer(c_int), value :: val_dummy character(kind = c_char) :: string_temp(len(string_dummy) + 1) integer :: string_i interface subroutine lib_cdiDefGlobal(string_dummy, val_dummy) bind(c, name =& & 'cdiDefGlobal') import c_char, c_int character(kind = c_char) :: string_dummy(*) integer(c_int), value :: val_dummy end subroutine lib_cdiDefGlobal end interface do string_i = 1, len(string_dummy) string_temp(string_i) = string_dummy(string_i:string_i) end do string_temp(len(string_dummy) + 1) = c_null_char call lib_cdiDefGlobal(string_temp, val_dummy) end subroutine cdiDefGlobal subroutine cdiParamToString(param_dummy, paramstr_dummy, maxlen_dummy) integer(c_int), value :: param_dummy character(kind = c_char, len = *), intent(inout) :: paramstr_dummy integer(c_int), value :: maxlen_dummy character(kind = c_char) :: paramstr_temp(len(paramstr_dummy) + 1) integer :: paramstr_i interface subroutine lib_cdiParamToString(param_dummy, paramstr_dummy,& & maxlen_dummy) bind(c, name = 'cdiParamToString') import c_char, c_int integer(c_int), value :: param_dummy character(kind = c_char) :: paramstr_dummy(*) integer(c_int), value :: maxlen_dummy end subroutine lib_cdiParamToString end interface paramstr_temp(len(paramstr_dummy) + 1) = c_null_char do paramstr_i = len(paramstr_dummy), 1, -1 if(paramstr_dummy(paramstr_i:paramstr_i) /= ' ') exit paramstr_temp(paramstr_i) = c_null_char end do do paramstr_i = paramstr_i, 1, -1 paramstr_temp(paramstr_i) = paramstr_dummy(paramstr_i:paramstr_i) end do call lib_cdiParamToString(param_dummy, paramstr_temp, maxlen_dummy) do paramstr_i = 1, len(paramstr_dummy) if(paramstr_temp(paramstr_i) == c_null_char) exit paramstr_dummy(paramstr_i:paramstr_i) = paramstr_temp(paramstr_i) end do do paramstr_i = paramstr_i, len(paramstr_dummy) paramstr_dummy(paramstr_i:paramstr_i) = ' ' end do end subroutine cdiParamToString function cdiGetFiletype(path_dummy, byteorder_dummy) result(f_result) integer(c_int) :: f_result character(kind = c_char, len = *), intent(in) :: path_dummy integer(c_int), intent(inout) :: byteorder_dummy character(kind = c_char) :: path_temp(len(path_dummy) + 1) integer :: path_i interface function lib_cdiGetFiletype(path_dummy, byteorder_dummy) bind(c, name =& & 'cdiGetFiletype') result(c_result) import c_char, c_int integer(c_int) :: c_result character(kind = c_char) :: path_dummy(*) integer(c_int), intent(inout) :: byteorder_dummy end function lib_cdiGetFiletype end interface do path_i = 1, len(path_dummy) path_temp(path_i) = path_dummy(path_i:path_i) end do path_temp(len(path_dummy) + 1) = c_null_char f_result = lib_cdiGetFiletype(path_temp, byteorder_dummy) end function cdiGetFiletype function streamOpenRead(path_dummy) result(f_result) integer(c_int) :: f_result character(kind = c_char, len = *), intent(in) :: path_dummy character(kind = c_char) :: path_temp(len(path_dummy) + 1) integer :: path_i interface function lib_streamOpenRead(path_dummy) bind(c, name = 'streamOpenRead')& & result(c_result) import c_char, c_int integer(c_int) :: c_result character(kind = c_char) :: path_dummy(*) end function lib_streamOpenRead end interface do path_i = 1, len(path_dummy) path_temp(path_i) = path_dummy(path_i:path_i) end do path_temp(len(path_dummy) + 1) = c_null_char f_result = lib_streamOpenRead(path_temp) end function streamOpenRead function streamOpenWrite(path_dummy, filetype_dummy) result(f_result) integer(c_int) :: f_result character(kind = c_char, len = *), intent(in) :: path_dummy integer(c_int), value :: filetype_dummy character(kind = c_char) :: path_temp(len(path_dummy) + 1) integer :: path_i interface function lib_streamOpenWrite(path_dummy, filetype_dummy) bind(c, name =& & 'streamOpenWrite') result(c_result) import c_char, c_int integer(c_int) :: c_result character(kind = c_char) :: path_dummy(*) integer(c_int), value :: filetype_dummy end function lib_streamOpenWrite end interface do path_i = 1, len(path_dummy) path_temp(path_i) = path_dummy(path_i:path_i) end do path_temp(len(path_dummy) + 1) = c_null_char f_result = lib_streamOpenWrite(path_temp, filetype_dummy) end function streamOpenWrite function streamOpenAppend(path_dummy) result(f_result) integer(c_int) :: f_result character(kind = c_char, len = *), intent(in) :: path_dummy character(kind = c_char) :: path_temp(len(path_dummy) + 1) integer :: path_i interface function lib_streamOpenAppend(path_dummy) bind(c, name =& & 'streamOpenAppend') result(c_result) import c_char, c_int integer(c_int) :: c_result character(kind = c_char) :: path_dummy(*) end function lib_streamOpenAppend end interface do path_i = 1, len(path_dummy) path_temp(path_i) = path_dummy(path_i:path_i) end do path_temp(len(path_dummy) + 1) = c_null_char f_result = lib_streamOpenAppend(path_temp) end function streamOpenAppend function streamFilename(streamID_dummy) result(f_result) character(kind = c_char), dimension(:), pointer :: f_result integer(c_int), value :: streamID_dummy type(c_ptr) :: ptr integer :: rv_shape(1) interface function lib_streamFilename(streamID_dummy) bind(c, name =& & 'streamFilename') result(c_result) import c_int, c_ptr type(c_ptr) :: c_result integer(c_int), value :: streamID_dummy end function lib_streamFilename end interface f_result => null() ptr = lib_streamFilename(streamID_dummy) if(c_associated(ptr)) then rv_shape(1) = int(lib_strlen(ptr)) call c_f_pointer(ptr, f_result, rv_shape) end if end function streamFilename function streamFilesuffix(filetype_dummy) result(f_result) character(kind = c_char), dimension(:), pointer :: f_result integer(c_int), value :: filetype_dummy type(c_ptr) :: ptr integer :: rv_shape(1) interface function lib_streamFilesuffix(filetype_dummy) bind(c, name =& & 'streamFilesuffix') result(c_result) import c_int, c_ptr type(c_ptr) :: c_result integer(c_int), value :: filetype_dummy end function lib_streamFilesuffix end interface f_result => null() ptr = lib_streamFilesuffix(filetype_dummy) if(c_associated(ptr)) then rv_shape(1) = int(lib_strlen(ptr)) call c_f_pointer(ptr, f_result, rv_shape) end if end function streamFilesuffix function cdiIterator_new(path_dummy) result(f_result) type(t_CdiIterator) :: f_result character(kind = c_char, len = *), intent(in) :: path_dummy character(kind = c_char) :: path_temp(len(path_dummy) + 1) integer :: path_i interface function lib_cdiIterator_new(path_dummy) bind(c, name =& & 'cdiIterator_new') result(c_result) import c_char, c_ptr type(c_ptr) :: c_result character(kind = c_char) :: path_dummy(*) end function lib_cdiIterator_new end interface do path_i = 1, len(path_dummy) path_temp(path_i) = path_dummy(path_i:path_i) end do path_temp(len(path_dummy) + 1) = c_null_char f_result%ptr = lib_cdiIterator_new(path_temp) end function cdiIterator_new function cdiIterator_clone(me_dummy) result(f_result) type(t_CdiIterator) :: f_result type(t_CdiIterator), intent(in) :: me_dummy interface function lib_cdiIterator_clone(me_dummy) bind(c, name =& & 'cdiIterator_clone') result(c_result) import c_ptr type(c_ptr) :: c_result type(c_ptr), value :: me_dummy end function lib_cdiIterator_clone end interface f_result%ptr = lib_cdiIterator_clone(me_dummy%ptr) end function cdiIterator_clone function cdiIterator_serialize(me_dummy) result(f_result) character(kind = c_char), dimension(:), pointer :: f_result type(t_CdiIterator), intent(in) :: me_dummy type(c_ptr) :: cString integer :: rv_shape(1) character(kind = c_char), dimension(:), pointer :: temp interface function lib_cdiIterator_serialize(me_dummy) bind(c, name =& & 'cdiIterator_serialize') result(c_result) import c_ptr type(c_ptr) :: c_result type(c_ptr), value :: me_dummy end function lib_cdiIterator_serialize end interface cString = lib_cdiIterator_serialize(me_dummy%ptr) if(c_associated(cString)) then rv_shape(1) = int(lib_strlen(cString)) call c_f_pointer(cString, temp, rv_shape) allocate(f_result(rv_shape(1))) f_result = temp call lib_free(cString) else f_result => null() end if end function cdiIterator_serialize function cdiIterator_deserialize(description_dummy) result(f_result) type(t_CdiIterator) :: f_result character(kind = c_char, len = *), intent(in) :: description_dummy character(kind = c_char) :: description_temp(len(description_dummy) + 1) integer :: description_i interface function lib_cdiIterator_deserialize(description_dummy) bind(c, name =& & 'cdiIterator_deserialize') result(c_result) import c_char, c_ptr type(c_ptr) :: c_result character(kind = c_char) :: description_dummy(*) end function lib_cdiIterator_deserialize end interface do description_i = 1, len(description_dummy) description_temp(description_i) =& & description_dummy(description_i:description_i) end do description_temp(len(description_dummy) + 1) = c_null_char f_result%ptr = lib_cdiIterator_deserialize(description_temp) end function cdiIterator_deserialize subroutine cdiIterator_delete(me_dummy) type(t_CdiIterator), intent(in) :: me_dummy interface subroutine lib_cdiIterator_delete(me_dummy) bind(c, name =& & 'cdiIterator_delete') import c_ptr type(c_ptr), value :: me_dummy end subroutine lib_cdiIterator_delete end interface call lib_cdiIterator_delete(me_dummy%ptr) end subroutine cdiIterator_delete function cdiIterator_nextField(me_dummy) result(f_result) integer(c_int) :: f_result type(t_CdiIterator), intent(in) :: me_dummy interface function lib_cdiIterator_nextField(me_dummy) bind(c, name =& & 'cdiIterator_nextField') result(c_result) import c_int, c_ptr integer(c_int) :: c_result type(c_ptr), value :: me_dummy end function lib_cdiIterator_nextField end interface f_result = lib_cdiIterator_nextField(me_dummy%ptr) end function cdiIterator_nextField function cdiIterator_inqStartTime(me_dummy) result(f_result) character(kind = c_char), dimension(:), pointer :: f_result type(t_CdiIterator), intent(in) :: me_dummy type(c_ptr) :: cString integer :: rv_shape(1) character(kind = c_char), dimension(:), pointer :: temp interface function lib_cdiIterator_inqStartTime(me_dummy) bind(c, name =& & 'cdiIterator_inqStartTime') result(c_result) import c_ptr type(c_ptr) :: c_result type(c_ptr), value :: me_dummy end function lib_cdiIterator_inqStartTime end interface cString = lib_cdiIterator_inqStartTime(me_dummy%ptr) if(c_associated(cString)) then rv_shape(1) = int(lib_strlen(cString)) call c_f_pointer(cString, temp, rv_shape) allocate(f_result(rv_shape(1))) f_result = temp call lib_free(cString) else f_result => null() end if end function cdiIterator_inqStartTime function cdiIterator_inqEndTime(me_dummy) result(f_result) character(kind = c_char), dimension(:), pointer :: f_result type(t_CdiIterator), intent(in) :: me_dummy type(c_ptr) :: cString integer :: rv_shape(1) character(kind = c_char), dimension(:), pointer :: temp interface function lib_cdiIterator_inqEndTime(me_dummy) bind(c, name =& & 'cdiIterator_inqEndTime') result(c_result) import c_ptr type(c_ptr) :: c_result type(c_ptr), value :: me_dummy end function lib_cdiIterator_inqEndTime end interface cString = lib_cdiIterator_inqEndTime(me_dummy%ptr) if(c_associated(cString)) then rv_shape(1) = int(lib_strlen(cString)) call c_f_pointer(cString, temp, rv_shape) allocate(f_result(rv_shape(1))) f_result = temp call lib_free(cString) else f_result => null() end if end function cdiIterator_inqEndTime function cdiIterator_inqRTime(me_dummy) result(f_result) character(kind = c_char), dimension(:), pointer :: f_result type(t_CdiIterator), intent(in) :: me_dummy type(c_ptr) :: cString integer :: rv_shape(1) character(kind = c_char), dimension(:), pointer :: temp interface function lib_cdiIterator_inqRTime(me_dummy) bind(c, name =& & 'cdiIterator_inqRTime') result(c_result) import c_ptr type(c_ptr) :: c_result type(c_ptr), value :: me_dummy end function lib_cdiIterator_inqRTime end interface cString = lib_cdiIterator_inqRTime(me_dummy%ptr) if(c_associated(cString)) then rv_shape(1) = int(lib_strlen(cString)) call c_f_pointer(cString, temp, rv_shape) allocate(f_result(rv_shape(1))) f_result = temp call lib_free(cString) else f_result => null() end if end function cdiIterator_inqRTime function cdiIterator_inqVTime(me_dummy) result(f_result) character(kind = c_char), dimension(:), pointer :: f_result type(t_CdiIterator), intent(in) :: me_dummy type(c_ptr) :: cString integer :: rv_shape(1) character(kind = c_char), dimension(:), pointer :: temp interface function lib_cdiIterator_inqVTime(me_dummy) bind(c, name =& & 'cdiIterator_inqVTime') result(c_result) import c_ptr type(c_ptr) :: c_result type(c_ptr), value :: me_dummy end function lib_cdiIterator_inqVTime end interface cString = lib_cdiIterator_inqVTime(me_dummy%ptr) if(c_associated(cString)) then rv_shape(1) = int(lib_strlen(cString)) call c_f_pointer(cString, temp, rv_shape) allocate(f_result(rv_shape(1))) f_result = temp call lib_free(cString) else f_result => null() end if end function cdiIterator_inqVTime function cdiIterator_inqLevelType(me_dummy, levelSelector_dummy, outName,& & outLongName, outStdName, outUnit) result(f_result) integer(c_int) :: f_result type(t_CdiIterator), intent(in) :: me_dummy integer(c_int), value :: levelSelector_dummy character(kind = c_char), pointer, optional, intent(inout) :: outName(:) character(kind = c_char), pointer, optional, intent(inout) ::& & outLongName(:) character(kind = c_char), pointer, optional, intent(inout) :: outStdName(:) character(kind = c_char), pointer, optional, intent(inout) :: outUnit(:) type(c_ptr), target :: outName_cptr type(c_ptr) :: outName_handle integer :: outName_shape(1) character(kind = c_char), pointer :: outName_fptr(:) type(c_ptr), target :: outLongName_cptr type(c_ptr) :: outLongName_handle integer :: outLongName_shape(1) character(kind = c_char), pointer :: outLongName_fptr(:) type(c_ptr), target :: outStdName_cptr type(c_ptr) :: outStdName_handle integer :: outStdName_shape(1) character(kind = c_char), pointer :: outStdName_fptr(:) type(c_ptr), target :: outUnit_cptr type(c_ptr) :: outUnit_handle integer :: outUnit_shape(1) character(kind = c_char), pointer :: outUnit_fptr(:) interface function lib_cdiIterator_inqLevelType(me_dummy, levelSelector_dummy,& & outName, outLongName, outStdName, outUnit) bind(c, name =& & 'cdiIterator_inqLevelType') result(c_result) import c_int, c_ptr integer(c_int) :: c_result type(c_ptr), value :: me_dummy integer(c_int), value :: levelSelector_dummy type(c_ptr), value :: outName type(c_ptr), value :: outLongName type(c_ptr), value :: outStdName type(c_ptr), value :: outUnit end function lib_cdiIterator_inqLevelType end interface outName_handle = c_null_ptr if(present(outName)) outName_handle = c_loc(outName_cptr) outLongName_handle = c_null_ptr if(present(outLongName)) outLongName_handle = c_loc(outLongName_cptr) outStdName_handle = c_null_ptr if(present(outStdName)) outStdName_handle = c_loc(outStdName_cptr) outUnit_handle = c_null_ptr if(present(outUnit)) outUnit_handle = c_loc(outUnit_cptr) f_result = lib_cdiIterator_inqLevelType(me_dummy%ptr, levelSelector_dummy,& & outName_handle, outLongName_handle, outStdName_handle, outUnit_handle) if(present(outName)) then if(c_associated(outName_cptr)) then outName_shape(1) = int(lib_strlen(outName_cptr)) call c_f_pointer(outName_cptr, outName_fptr, outName_shape) allocate(outName(outName_shape(1))) outName = outName_fptr call lib_free(outName_cptr) else outName => null() end if end if if(present(outLongName)) then if(c_associated(outLongName_cptr)) then outLongName_shape(1) = int(lib_strlen(outLongName_cptr)) call c_f_pointer(outLongName_cptr, outLongName_fptr, outLongName_shape) allocate(outLongName(outLongName_shape(1))) outLongName = outLongName_fptr call lib_free(outLongName_cptr) else outLongName => null() end if end if if(present(outStdName)) then if(c_associated(outStdName_cptr)) then outStdName_shape(1) = int(lib_strlen(outStdName_cptr)) call c_f_pointer(outStdName_cptr, outStdName_fptr, outStdName_shape) allocate(outStdName(outStdName_shape(1))) outStdName = outStdName_fptr call lib_free(outStdName_cptr) else outStdName => null() end if end if if(present(outUnit)) then if(c_associated(outUnit_cptr)) then outUnit_shape(1) = int(lib_strlen(outUnit_cptr)) call c_f_pointer(outUnit_cptr, outUnit_fptr, outUnit_shape) allocate(outUnit(outUnit_shape(1))) outUnit = outUnit_fptr call lib_free(outUnit_cptr) else outUnit => null() end if end if end function cdiIterator_inqLevelType function cdiIterator_inqLevel(me_dummy, levelSelector_dummy, outValue1,& & outValue2) result(f_result) integer(c_int) :: f_result type(t_CdiIterator), intent(in) :: me_dummy integer(c_int), value :: levelSelector_dummy real(c_double), target, optional, intent(inout) :: outValue1 real(c_double), target, optional, intent(inout) :: outValue2 type(c_ptr) :: outValue1_cptr type(c_ptr) :: outValue2_cptr interface function lib_cdiIterator_inqLevel(me_dummy, levelSelector_dummy,& & outValue1, outValue2) bind(c, name = 'cdiIterator_inqLevel')& & result(c_result) import c_int, c_ptr integer(c_int) :: c_result type(c_ptr), value :: me_dummy integer(c_int), value :: levelSelector_dummy type(c_ptr), value :: outValue1 type(c_ptr), value :: outValue2 end function lib_cdiIterator_inqLevel end interface outValue1_cptr = c_null_ptr if(present(outValue1)) outValue1_cptr = c_loc(outValue1) outValue2_cptr = c_null_ptr if(present(outValue2)) outValue2_cptr = c_loc(outValue2) f_result = lib_cdiIterator_inqLevel(me_dummy%ptr, levelSelector_dummy,& & outValue1_cptr, outValue2_cptr) end function cdiIterator_inqLevel function cdiIterator_inqLevelUuid(me_dummy, outVgridNumber, outLevelCount,& & outUuid) result(f_result) integer(c_int) :: f_result type(t_CdiIterator), intent(in) :: me_dummy integer(c_int), optional, target, intent(inout) :: outVgridNumber integer(c_int), optional, target, intent(inout) :: outLevelCount integer(kind = c_signed_char), target, optional, intent(inout) ::& & outUuid(CDI_UUID_SIZE) type(c_ptr) :: outVgridNumber_cptr type(c_ptr) :: outLevelCount_cptr type(c_ptr) :: outUuid_cptr interface function lib_cdiIterator_inqLevelUuid(me_dummy, outVgridNumber,& & outLevelCount, outUuid) bind(c, name = 'cdiIterator_inqLevelUuid')& & result(c_result) import c_int, c_ptr integer(c_int) :: c_result type(c_ptr), value :: me_dummy type(c_ptr), value :: outVgridNumber type(c_ptr), value :: outLevelCount type(c_ptr), value :: outUuid end function lib_cdiIterator_inqLevelUuid end interface outVgridNumber_cptr = c_null_ptr if(present(outVgridNumber)) outVgridNumber_cptr = c_loc(outVgridNumber) outLevelCount_cptr = c_null_ptr if(present(outLevelCount)) outLevelCount_cptr = c_loc(outLevelCount) outUuid_cptr = c_null_ptr if(present(outUuid)) outUuid_cptr = c_loc(outUuid) f_result = lib_cdiIterator_inqLevelUuid(me_dummy%ptr, outVgridNumber_cptr,& & outLevelCount_cptr, outUuid_cptr) end function cdiIterator_inqLevelUuid function cdiIterator_inqTile(me_dummy, outTileIndex_dummy,& & outTileAttribute_dummy) result(f_result) integer(c_int) :: f_result type(t_CdiIterator), intent(in) :: me_dummy integer(c_int), intent(inout) :: outTileIndex_dummy integer(c_int), intent(inout) :: outTileAttribute_dummy interface function lib_cdiIterator_inqTile(me_dummy, outTileIndex_dummy,& & outTileAttribute_dummy) bind(c, name = 'cdiIterator_inqTile')& & result(c_result) import c_int, c_ptr integer(c_int) :: c_result type(c_ptr), value :: me_dummy integer(c_int), intent(inout) :: outTileIndex_dummy integer(c_int), intent(inout) :: outTileAttribute_dummy end function lib_cdiIterator_inqTile end interface f_result = lib_cdiIterator_inqTile(me_dummy%ptr, outTileIndex_dummy,& & outTileAttribute_dummy) end function cdiIterator_inqTile function cdiIterator_inqTileCount(me_dummy, outTileCount_dummy,& & outTileAttributeCount_dummy) result(f_result) integer(c_int) :: f_result type(t_CdiIterator), intent(in) :: me_dummy integer(c_int), intent(inout) :: outTileCount_dummy integer(c_int), intent(inout) :: outTileAttributeCount_dummy interface function lib_cdiIterator_inqTileCount(me_dummy, outTileCount_dummy,& & outTileAttributeCount_dummy) bind(c, name = 'cdiIterator_inqTileCount')& & result(c_result) import c_int, c_ptr integer(c_int) :: c_result type(c_ptr), value :: me_dummy integer(c_int), intent(inout) :: outTileCount_dummy integer(c_int), intent(inout) :: outTileAttributeCount_dummy end function lib_cdiIterator_inqTileCount end interface f_result = lib_cdiIterator_inqTileCount(me_dummy%ptr, outTileCount_dummy,& & outTileAttributeCount_dummy) end function cdiIterator_inqTileCount function cdiIterator_inqParam(me_dummy) result(f_result) type(t_CdiParam) :: f_result type(t_CdiIterator), intent(in) :: me_dummy interface function lib_cdiIterator_inqParam(me_dummy) bind(c, name =& & 'cdiIterator_inqParam') result(c_result) import c_ptr, t_CdiParam type(t_CdiParam) :: c_result type(c_ptr), value :: me_dummy end function lib_cdiIterator_inqParam end interface f_result = lib_cdiIterator_inqParam(me_dummy%ptr) end function cdiIterator_inqParam subroutine cdiIterator_inqParamParts(me_dummy, outDiscipline_dummy,& & outCategory_dummy, outNumber_dummy) type(t_CdiIterator), intent(in) :: me_dummy integer(c_int), intent(inout) :: outDiscipline_dummy integer(c_int), intent(inout) :: outCategory_dummy integer(c_int), intent(inout) :: outNumber_dummy interface subroutine lib_cdiIterator_inqParamParts(me_dummy, outDiscipline_dummy,& & outCategory_dummy, outNumber_dummy) bind(c, name =& & 'cdiIterator_inqParamParts') import c_int, c_ptr type(c_ptr), value :: me_dummy integer(c_int), intent(inout) :: outDiscipline_dummy integer(c_int), intent(inout) :: outCategory_dummy integer(c_int), intent(inout) :: outNumber_dummy end subroutine lib_cdiIterator_inqParamParts end interface call lib_cdiIterator_inqParamParts(me_dummy%ptr, outDiscipline_dummy,& & outCategory_dummy, outNumber_dummy) end subroutine cdiIterator_inqParamParts function cdiIterator_inqDatatype(me_dummy) result(f_result) integer(c_int) :: f_result type(t_CdiIterator), intent(in) :: me_dummy interface function lib_cdiIterator_inqDatatype(me_dummy) bind(c, name =& & 'cdiIterator_inqDatatype') result(c_result) import c_int, c_ptr integer(c_int) :: c_result type(c_ptr), value :: me_dummy end function lib_cdiIterator_inqDatatype end interface f_result = lib_cdiIterator_inqDatatype(me_dummy%ptr) end function cdiIterator_inqDatatype function cdiIterator_inqFiletype(me_dummy) result(f_result) integer(c_int) :: f_result type(t_CdiIterator), intent(in) :: me_dummy interface function lib_cdiIterator_inqFiletype(me_dummy) bind(c, name =& & 'cdiIterator_inqFiletype') result(c_result) import c_int, c_ptr integer(c_int) :: c_result type(c_ptr), value :: me_dummy end function lib_cdiIterator_inqFiletype end interface f_result = lib_cdiIterator_inqFiletype(me_dummy%ptr) end function cdiIterator_inqFiletype function cdiIterator_inqTsteptype(me_dummy) result(f_result) integer(c_int) :: f_result type(t_CdiIterator), intent(in) :: me_dummy interface function lib_cdiIterator_inqTsteptype(me_dummy) bind(c, name =& & 'cdiIterator_inqTsteptype') result(c_result) import c_int, c_ptr integer(c_int) :: c_result type(c_ptr), value :: me_dummy end function lib_cdiIterator_inqTsteptype end interface f_result = lib_cdiIterator_inqTsteptype(me_dummy%ptr) end function cdiIterator_inqTsteptype function cdiIterator_inqVariableName(me_dummy) result(f_result) character(kind = c_char), dimension(:), pointer :: f_result type(t_CdiIterator), intent(in) :: me_dummy type(c_ptr) :: cString integer :: rv_shape(1) character(kind = c_char), dimension(:), pointer :: temp interface function lib_cdiIterator_inqVariableName(me_dummy) bind(c, name =& & 'cdiIterator_inqVariableName') result(c_result) import c_ptr type(c_ptr) :: c_result type(c_ptr), value :: me_dummy end function lib_cdiIterator_inqVariableName end interface cString = lib_cdiIterator_inqVariableName(me_dummy%ptr) if(c_associated(cString)) then rv_shape(1) = int(lib_strlen(cString)) call c_f_pointer(cString, temp, rv_shape) allocate(f_result(rv_shape(1))) f_result = temp call lib_free(cString) else f_result => null() end if end function cdiIterator_inqVariableName function cdiIterator_inqGridId(me_dummy) result(f_result) integer(c_int) :: f_result type(t_CdiIterator), intent(in) :: me_dummy interface function lib_cdiIterator_inqGridId(me_dummy) bind(c, name =& & 'cdiIterator_inqGridId') result(c_result) import c_int, c_ptr integer(c_int) :: c_result type(c_ptr), value :: me_dummy end function lib_cdiIterator_inqGridId end interface f_result = lib_cdiIterator_inqGridId(me_dummy%ptr) end function cdiIterator_inqGridId subroutine cdiIterator_readField(me_dummy, data_dummy, nmiss) type(t_CdiIterator), intent(in) :: me_dummy real(c_double), intent(inout) :: data_dummy(*) integer(c_size_t), optional, target, intent(inout) :: nmiss type(c_ptr) :: nmiss_cptr interface subroutine lib_cdiIterator_readField(me_dummy, data_dummy, nmiss) bind(c,& & name = 'cdiIterator_readField') import c_double, c_ptr type(c_ptr), value :: me_dummy real(c_double), intent(inout) :: data_dummy(*) type(c_ptr), value :: nmiss end subroutine lib_cdiIterator_readField end interface nmiss_cptr = c_null_ptr if(present(nmiss)) nmiss_cptr = c_loc(nmiss) call lib_cdiIterator_readField(me_dummy%ptr, data_dummy, nmiss_cptr) end subroutine cdiIterator_readField subroutine cdiIterator_readFieldF(me_dummy, data_dummy, nmiss) type(t_CdiIterator), intent(in) :: me_dummy real(c_float), intent(inout) :: data_dummy(*) integer(c_size_t), optional, target, intent(inout) :: nmiss type(c_ptr) :: nmiss_cptr interface subroutine lib_cdiIterator_readFieldF(me_dummy, data_dummy, nmiss)& & bind(c, name = 'cdiIterator_readFieldF') import c_float, c_ptr type(c_ptr), value :: me_dummy real(c_float), intent(inout) :: data_dummy(*) type(c_ptr), value :: nmiss end subroutine lib_cdiIterator_readFieldF end interface nmiss_cptr = c_null_ptr if(present(nmiss)) nmiss_cptr = c_loc(nmiss) call lib_cdiIterator_readFieldF(me_dummy%ptr, data_dummy, nmiss_cptr) end subroutine cdiIterator_readFieldF function cdiGribIterator_clone(me_dummy) result(f_result) type(t_CdiGribIterator) :: f_result type(t_CdiIterator), intent(in) :: me_dummy interface function lib_cdiGribIterator_clone(me_dummy) bind(c, name =& & 'cdiGribIterator_clone') result(c_result) import c_ptr type(c_ptr) :: c_result type(c_ptr), value :: me_dummy end function lib_cdiGribIterator_clone end interface f_result%ptr = lib_cdiGribIterator_clone(me_dummy%ptr) end function cdiGribIterator_clone subroutine cdiGribIterator_delete(me_dummy) type(t_CdiGribIterator), intent(in) :: me_dummy interface subroutine lib_cdiGribIterator_delete(me_dummy) bind(c, name =& & 'cdiGribIterator_delete') import c_ptr type(c_ptr), value :: me_dummy end subroutine lib_cdiGribIterator_delete end interface call lib_cdiGribIterator_delete(me_dummy%ptr) end subroutine cdiGribIterator_delete function cdiGribIterator_getLong(me_dummy, key_dummy, value_dummy)& & result(f_result) integer(c_int) :: f_result type(t_CdiGribIterator), intent(in) :: me_dummy character(kind = c_char, len = *), intent(in) :: key_dummy integer(c_long), intent(inout) :: value_dummy character(kind = c_char) :: key_temp(len(key_dummy) + 1) integer :: key_i interface function lib_cdiGribIterator_getLong(me_dummy, key_dummy, value_dummy)& & bind(c, name = 'cdiGribIterator_getLong') result(c_result) import c_char, c_int, c_long, c_ptr integer(c_int) :: c_result type(c_ptr), value :: me_dummy character(kind = c_char) :: key_dummy(*) integer(c_long), intent(inout) :: value_dummy end function lib_cdiGribIterator_getLong end interface do key_i = 1, len(key_dummy) key_temp(key_i) = key_dummy(key_i:key_i) end do key_temp(len(key_dummy) + 1) = c_null_char f_result = lib_cdiGribIterator_getLong(me_dummy%ptr, key_temp, value_dummy) end function cdiGribIterator_getLong function cdiGribIterator_getDouble(me_dummy, key_dummy, value_dummy)& & result(f_result) integer(c_int) :: f_result type(t_CdiGribIterator), intent(in) :: me_dummy character(kind = c_char, len = *), intent(in) :: key_dummy real(c_double), intent(inout) :: value_dummy character(kind = c_char) :: key_temp(len(key_dummy) + 1) integer :: key_i interface function lib_cdiGribIterator_getDouble(me_dummy, key_dummy, value_dummy)& & bind(c, name = 'cdiGribIterator_getDouble') result(c_result) import c_char, c_double, c_int, c_ptr integer(c_int) :: c_result type(c_ptr), value :: me_dummy character(kind = c_char) :: key_dummy(*) real(c_double), intent(inout) :: value_dummy end function lib_cdiGribIterator_getDouble end interface do key_i = 1, len(key_dummy) key_temp(key_i) = key_dummy(key_i:key_i) end do key_temp(len(key_dummy) + 1) = c_null_char f_result = lib_cdiGribIterator_getDouble(me_dummy%ptr, key_temp,& & value_dummy) end function cdiGribIterator_getDouble function cdiGribIterator_getLength(me_dummy, key_dummy, value_dummy)& & result(f_result) integer(c_int) :: f_result type(t_CdiGribIterator), intent(in) :: me_dummy character(kind = c_char, len = *), intent(in) :: key_dummy integer(c_size_t), intent(inout) :: value_dummy character(kind = c_char) :: key_temp(len(key_dummy) + 1) integer :: key_i interface function lib_cdiGribIterator_getLength(me_dummy, key_dummy, value_dummy)& & bind(c, name = 'cdiGribIterator_getLength') result(c_result) import c_char, c_int, c_ptr, c_size_t integer(c_int) :: c_result type(c_ptr), value :: me_dummy character(kind = c_char) :: key_dummy(*) integer(c_size_t), intent(inout) :: value_dummy end function lib_cdiGribIterator_getLength end interface do key_i = 1, len(key_dummy) key_temp(key_i) = key_dummy(key_i:key_i) end do key_temp(len(key_dummy) + 1) = c_null_char f_result = lib_cdiGribIterator_getLength(me_dummy%ptr, key_temp,& & value_dummy) end function cdiGribIterator_getLength function cdiGribIterator_getString(me_dummy, key_dummy, value_dummy,& & length_dummy) result(f_result) integer(c_int) :: f_result type(t_CdiGribIterator), intent(in) :: me_dummy character(kind = c_char, len = *), intent(in) :: key_dummy character(kind = c_char, len = *), intent(inout) :: value_dummy integer(c_size_t), intent(inout) :: length_dummy character(kind = c_char) :: key_temp(len(key_dummy) + 1) integer :: key_i character(kind = c_char) :: value_temp(len(value_dummy) + 1) integer :: value_i interface function lib_cdiGribIterator_getString(me_dummy, key_dummy, value_dummy,& & length_dummy) bind(c, name = 'cdiGribIterator_getString')& & result(c_result) import c_char, c_int, c_ptr, c_size_t integer(c_int) :: c_result type(c_ptr), value :: me_dummy character(kind = c_char) :: key_dummy(*) character(kind = c_char) :: value_dummy(*) integer(c_size_t), intent(inout) :: length_dummy end function lib_cdiGribIterator_getString end interface do key_i = 1, len(key_dummy) key_temp(key_i) = key_dummy(key_i:key_i) end do key_temp(len(key_dummy) + 1) = c_null_char value_temp(len(value_dummy) + 1) = c_null_char do value_i = len(value_dummy), 1, -1 if(value_dummy(value_i:value_i) /= ' ') exit value_temp(value_i) = c_null_char end do do value_i = value_i, 1, -1 value_temp(value_i) = value_dummy(value_i:value_i) end do f_result = lib_cdiGribIterator_getString(me_dummy%ptr, key_temp,& & value_temp, length_dummy) do value_i = 1, len(value_dummy) if(value_temp(value_i) == c_null_char) exit value_dummy(value_i:value_i) = value_temp(value_i) end do do value_i = value_i, len(value_dummy) value_dummy(value_i:value_i) = ' ' end do end function cdiGribIterator_getString function cdiGribIterator_getSize(me_dummy, key_dummy, value_dummy)& & result(f_result) integer(c_int) :: f_result type(t_CdiGribIterator), intent(in) :: me_dummy character(kind = c_char, len = *), intent(in) :: key_dummy integer(c_size_t), intent(inout) :: value_dummy character(kind = c_char) :: key_temp(len(key_dummy) + 1) integer :: key_i interface function lib_cdiGribIterator_getSize(me_dummy, key_dummy, value_dummy)& & bind(c, name = 'cdiGribIterator_getSize') result(c_result) import c_char, c_int, c_ptr, c_size_t integer(c_int) :: c_result type(c_ptr), value :: me_dummy character(kind = c_char) :: key_dummy(*) integer(c_size_t), intent(inout) :: value_dummy end function lib_cdiGribIterator_getSize end interface do key_i = 1, len(key_dummy) key_temp(key_i) = key_dummy(key_i:key_i) end do key_temp(len(key_dummy) + 1) = c_null_char f_result = lib_cdiGribIterator_getSize(me_dummy%ptr, key_temp, value_dummy) end function cdiGribIterator_getSize function cdiGribIterator_getLongArray(me_dummy, key_dummy, value_dummy,& & array_size_dummy) result(f_result) integer(c_int) :: f_result type(t_CdiGribIterator), intent(in) :: me_dummy character(kind = c_char, len = *), intent(in) :: key_dummy integer(c_long), intent(inout) :: value_dummy integer(c_size_t), intent(inout) :: array_size_dummy character(kind = c_char) :: key_temp(len(key_dummy) + 1) integer :: key_i interface function lib_cdiGribIterator_getLongArray(me_dummy, key_dummy,& & value_dummy, array_size_dummy) bind(c, name =& & 'cdiGribIterator_getLongArray') result(c_result) import c_char, c_int, c_long, c_ptr, c_size_t integer(c_int) :: c_result type(c_ptr), value :: me_dummy character(kind = c_char) :: key_dummy(*) integer(c_long), intent(inout) :: value_dummy integer(c_size_t), intent(inout) :: array_size_dummy end function lib_cdiGribIterator_getLongArray end interface do key_i = 1, len(key_dummy) key_temp(key_i) = key_dummy(key_i:key_i) end do key_temp(len(key_dummy) + 1) = c_null_char f_result = lib_cdiGribIterator_getLongArray(me_dummy%ptr, key_temp,& & value_dummy, array_size_dummy) end function cdiGribIterator_getLongArray function cdiGribIterator_getDoubleArray(me_dummy, key_dummy, value_dummy,& & array_size_dummy) result(f_result) integer(c_int) :: f_result type(t_CdiGribIterator), intent(in) :: me_dummy character(kind = c_char, len = *), intent(in) :: key_dummy real(c_double), intent(inout) :: value_dummy integer(c_size_t), intent(inout) :: array_size_dummy character(kind = c_char) :: key_temp(len(key_dummy) + 1) integer :: key_i interface function lib_cdiGribIterator_getDoubleArray(me_dummy, key_dummy,& & value_dummy, array_size_dummy) bind(c, name =& & 'cdiGribIterator_getDoubleArray') result(c_result) import c_char, c_double, c_int, c_ptr, c_size_t integer(c_int) :: c_result type(c_ptr), value :: me_dummy character(kind = c_char) :: key_dummy(*) real(c_double), intent(inout) :: value_dummy integer(c_size_t), intent(inout) :: array_size_dummy end function lib_cdiGribIterator_getDoubleArray end interface do key_i = 1, len(key_dummy) key_temp(key_i) = key_dummy(key_i:key_i) end do key_temp(len(key_dummy) + 1) = c_null_char f_result = lib_cdiGribIterator_getDoubleArray(me_dummy%ptr, key_temp,& & value_dummy, array_size_dummy) end function cdiGribIterator_getDoubleArray function cdiGribIterator_inqEdition(me_dummy) result(f_result) integer(c_int) :: f_result type(t_CdiGribIterator), intent(in) :: me_dummy interface function lib_cdiGribIterator_inqEdition(me_dummy) bind(c, name =& & 'cdiGribIterator_inqEdition') result(c_result) import c_int, c_ptr integer(c_int) :: c_result type(c_ptr), value :: me_dummy end function lib_cdiGribIterator_inqEdition end interface f_result = lib_cdiGribIterator_inqEdition(me_dummy%ptr) end function cdiGribIterator_inqEdition function cdiGribIterator_inqLongValue(me_dummy, key_dummy) result(f_result) integer(c_long) :: f_result type(t_CdiGribIterator), intent(in) :: me_dummy character(kind = c_char, len = *), intent(in) :: key_dummy character(kind = c_char) :: key_temp(len(key_dummy) + 1) integer :: key_i interface function lib_cdiGribIterator_inqLongValue(me_dummy, key_dummy) bind(c,& & name = 'cdiGribIterator_inqLongValue') result(c_result) import c_char, c_long, c_ptr integer(c_long) :: c_result type(c_ptr), value :: me_dummy character(kind = c_char) :: key_dummy(*) end function lib_cdiGribIterator_inqLongValue end interface do key_i = 1, len(key_dummy) key_temp(key_i) = key_dummy(key_i:key_i) end do key_temp(len(key_dummy) + 1) = c_null_char f_result = lib_cdiGribIterator_inqLongValue(me_dummy%ptr, key_temp) end function cdiGribIterator_inqLongValue function cdiGribIterator_inqLongDefaultValue(me_dummy, key_dummy,& & defaultValue_dummy) result(f_result) integer(c_long) :: f_result type(t_CdiGribIterator), intent(in) :: me_dummy character(kind = c_char, len = *), intent(in) :: key_dummy integer(c_long), value :: defaultValue_dummy character(kind = c_char) :: key_temp(len(key_dummy) + 1) integer :: key_i interface function lib_cdiGribIterator_inqLongDefaultValue(me_dummy, key_dummy,& & defaultValue_dummy) bind(c, name =& & 'cdiGribIterator_inqLongDefaultValue') result(c_result) import c_char, c_long, c_ptr integer(c_long) :: c_result type(c_ptr), value :: me_dummy character(kind = c_char) :: key_dummy(*) integer(c_long), value :: defaultValue_dummy end function lib_cdiGribIterator_inqLongDefaultValue end interface do key_i = 1, len(key_dummy) key_temp(key_i) = key_dummy(key_i:key_i) end do key_temp(len(key_dummy) + 1) = c_null_char f_result = lib_cdiGribIterator_inqLongDefaultValue(me_dummy%ptr, key_temp,& & defaultValue_dummy) end function cdiGribIterator_inqLongDefaultValue function cdiGribIterator_inqDoubleValue(me_dummy, key_dummy) result(f_result) real(c_double) :: f_result type(t_CdiGribIterator), intent(in) :: me_dummy character(kind = c_char, len = *), intent(in) :: key_dummy character(kind = c_char) :: key_temp(len(key_dummy) + 1) integer :: key_i interface function lib_cdiGribIterator_inqDoubleValue(me_dummy, key_dummy) bind(c,& & name = 'cdiGribIterator_inqDoubleValue') result(c_result) import c_char, c_double, c_ptr real(c_double) :: c_result type(c_ptr), value :: me_dummy character(kind = c_char) :: key_dummy(*) end function lib_cdiGribIterator_inqDoubleValue end interface do key_i = 1, len(key_dummy) key_temp(key_i) = key_dummy(key_i:key_i) end do key_temp(len(key_dummy) + 1) = c_null_char f_result = lib_cdiGribIterator_inqDoubleValue(me_dummy%ptr, key_temp) end function cdiGribIterator_inqDoubleValue function cdiGribIterator_inqDoubleDefaultValue(me_dummy, key_dummy,& & defaultValue_dummy) result(f_result) real(c_double) :: f_result type(t_CdiGribIterator), intent(in) :: me_dummy character(kind = c_char, len = *), intent(in) :: key_dummy real(c_double), value :: defaultValue_dummy character(kind = c_char) :: key_temp(len(key_dummy) + 1) integer :: key_i interface function lib_cdiGribIterator_inqDoubleDefaultValue(me_dummy, key_dummy,& & defaultValue_dummy) bind(c, name =& & 'cdiGribIterator_inqDoubleDefaultValue') result(c_result) import c_char, c_double, c_ptr real(c_double) :: c_result type(c_ptr), value :: me_dummy character(kind = c_char) :: key_dummy(*) real(c_double), value :: defaultValue_dummy end function lib_cdiGribIterator_inqDoubleDefaultValue end interface do key_i = 1, len(key_dummy) key_temp(key_i) = key_dummy(key_i:key_i) end do key_temp(len(key_dummy) + 1) = c_null_char f_result = lib_cdiGribIterator_inqDoubleDefaultValue(me_dummy%ptr,& & key_temp, defaultValue_dummy) end function cdiGribIterator_inqDoubleDefaultValue function cdiGribIterator_inqStringValue(me_dummy, key_dummy) result(f_result) character(kind = c_char), dimension(:), pointer :: f_result type(t_CdiGribIterator), intent(in) :: me_dummy character(kind = c_char, len = *), intent(in) :: key_dummy character(kind = c_char) :: key_temp(len(key_dummy) + 1) integer :: key_i type(c_ptr) :: cString integer :: rv_shape(1) character(kind = c_char), dimension(:), pointer :: temp interface function lib_cdiGribIterator_inqStringValue(me_dummy, key_dummy) bind(c,& & name = 'cdiGribIterator_inqStringValue') result(c_result) import c_char, c_ptr type(c_ptr) :: c_result type(c_ptr), value :: me_dummy character(kind = c_char) :: key_dummy(*) end function lib_cdiGribIterator_inqStringValue end interface do key_i = 1, len(key_dummy) key_temp(key_i) = key_dummy(key_i:key_i) end do key_temp(len(key_dummy) + 1) = c_null_char cString = lib_cdiGribIterator_inqStringValue(me_dummy%ptr, key_temp) if(c_associated(cString)) then rv_shape(1) = int(lib_strlen(cString)) call c_f_pointer(cString, temp, rv_shape) allocate(f_result(rv_shape(1))) f_result = temp call lib_free(cString) else f_result => null() end if end function cdiGribIterator_inqStringValue subroutine vlistDefVarName(vlistID_dummy, varID_dummy, name_dummy) integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy character(kind = c_char, len = *), intent(in) :: name_dummy character(kind = c_char) :: name_temp(len(name_dummy) + 1) integer :: name_i interface subroutine lib_vlistDefVarName(vlistID_dummy, varID_dummy, name_dummy)& & bind(c, name = 'vlistDefVarName') import c_char, c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy character(kind = c_char) :: name_dummy(*) end subroutine lib_vlistDefVarName end interface do name_i = 1, len(name_dummy) name_temp(name_i) = name_dummy(name_i:name_i) end do name_temp(len(name_dummy) + 1) = c_null_char call lib_vlistDefVarName(vlistID_dummy, varID_dummy, name_temp) end subroutine vlistDefVarName subroutine vlistInqVarName(vlistID_dummy, varID_dummy, name_dummy) integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy character(kind = c_char, len = *), intent(inout) :: name_dummy character(kind = c_char) :: name_temp(len(name_dummy) + 1) integer :: name_i interface subroutine lib_vlistInqVarName(vlistID_dummy, varID_dummy, name_dummy)& & bind(c, name = 'vlistInqVarName') import c_char, c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy character(kind = c_char) :: name_dummy(*) end subroutine lib_vlistInqVarName end interface name_temp(len(name_dummy) + 1) = c_null_char do name_i = len(name_dummy), 1, -1 if(name_dummy(name_i:name_i) /= ' ') exit name_temp(name_i) = c_null_char end do do name_i = name_i, 1, -1 name_temp(name_i) = name_dummy(name_i:name_i) end do call lib_vlistInqVarName(vlistID_dummy, varID_dummy, name_temp) do name_i = 1, len(name_dummy) if(name_temp(name_i) == c_null_char) exit name_dummy(name_i:name_i) = name_temp(name_i) end do do name_i = name_i, len(name_dummy) name_dummy(name_i:name_i) = ' ' end do end subroutine vlistInqVarName function vlistCopyVarName(vlistId_dummy, varId_dummy) result(f_result) character(kind = c_char), dimension(:), pointer :: f_result integer(c_int), value :: vlistId_dummy integer(c_int), value :: varId_dummy type(c_ptr) :: cString integer :: rv_shape(1) character(kind = c_char), dimension(:), pointer :: temp interface function lib_vlistCopyVarName(vlistId_dummy, varId_dummy) bind(c, name =& & 'vlistCopyVarName') result(c_result) import c_int, c_ptr type(c_ptr) :: c_result integer(c_int), value :: vlistId_dummy integer(c_int), value :: varId_dummy end function lib_vlistCopyVarName end interface cString = lib_vlistCopyVarName(vlistId_dummy, varId_dummy) if(c_associated(cString)) then rv_shape(1) = int(lib_strlen(cString)) call c_f_pointer(cString, temp, rv_shape) allocate(f_result(rv_shape(1))) f_result = temp call lib_free(cString) else f_result => null() end if end function vlistCopyVarName subroutine vlistDefVarStdname(vlistID_dummy, varID_dummy, stdname_dummy) integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy character(kind = c_char, len = *), intent(in) :: stdname_dummy character(kind = c_char) :: stdname_temp(len(stdname_dummy) + 1) integer :: stdname_i interface subroutine lib_vlistDefVarStdname(vlistID_dummy, varID_dummy,& & stdname_dummy) bind(c, name = 'vlistDefVarStdname') import c_char, c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy character(kind = c_char) :: stdname_dummy(*) end subroutine lib_vlistDefVarStdname end interface do stdname_i = 1, len(stdname_dummy) stdname_temp(stdname_i) = stdname_dummy(stdname_i:stdname_i) end do stdname_temp(len(stdname_dummy) + 1) = c_null_char call lib_vlistDefVarStdname(vlistID_dummy, varID_dummy, stdname_temp) end subroutine vlistDefVarStdname subroutine vlistInqVarStdname(vlistID_dummy, varID_dummy, stdname_dummy) integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy character(kind = c_char, len = *), intent(inout) :: stdname_dummy character(kind = c_char) :: stdname_temp(len(stdname_dummy) + 1) integer :: stdname_i interface subroutine lib_vlistInqVarStdname(vlistID_dummy, varID_dummy,& & stdname_dummy) bind(c, name = 'vlistInqVarStdname') import c_char, c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy character(kind = c_char) :: stdname_dummy(*) end subroutine lib_vlistInqVarStdname end interface stdname_temp(len(stdname_dummy) + 1) = c_null_char do stdname_i = len(stdname_dummy), 1, -1 if(stdname_dummy(stdname_i:stdname_i) /= ' ') exit stdname_temp(stdname_i) = c_null_char end do do stdname_i = stdname_i, 1, -1 stdname_temp(stdname_i) = stdname_dummy(stdname_i:stdname_i) end do call lib_vlistInqVarStdname(vlistID_dummy, varID_dummy, stdname_temp) do stdname_i = 1, len(stdname_dummy) if(stdname_temp(stdname_i) == c_null_char) exit stdname_dummy(stdname_i:stdname_i) = stdname_temp(stdname_i) end do do stdname_i = stdname_i, len(stdname_dummy) stdname_dummy(stdname_i:stdname_i) = ' ' end do end subroutine vlistInqVarStdname subroutine vlistDefVarLongname(vlistID_dummy, varID_dummy, longname_dummy) integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy character(kind = c_char, len = *), intent(in) :: longname_dummy character(kind = c_char) :: longname_temp(len(longname_dummy) + 1) integer :: longname_i interface subroutine lib_vlistDefVarLongname(vlistID_dummy, varID_dummy,& & longname_dummy) bind(c, name = 'vlistDefVarLongname') import c_char, c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy character(kind = c_char) :: longname_dummy(*) end subroutine lib_vlistDefVarLongname end interface do longname_i = 1, len(longname_dummy) longname_temp(longname_i) = longname_dummy(longname_i:longname_i) end do longname_temp(len(longname_dummy) + 1) = c_null_char call lib_vlistDefVarLongname(vlistID_dummy, varID_dummy, longname_temp) end subroutine vlistDefVarLongname subroutine vlistInqVarLongname(vlistID_dummy, varID_dummy, longname_dummy) integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy character(kind = c_char, len = *), intent(inout) :: longname_dummy character(kind = c_char) :: longname_temp(len(longname_dummy) + 1) integer :: longname_i interface subroutine lib_vlistInqVarLongname(vlistID_dummy, varID_dummy,& & longname_dummy) bind(c, name = 'vlistInqVarLongname') import c_char, c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy character(kind = c_char) :: longname_dummy(*) end subroutine lib_vlistInqVarLongname end interface longname_temp(len(longname_dummy) + 1) = c_null_char do longname_i = len(longname_dummy), 1, -1 if(longname_dummy(longname_i:longname_i) /= ' ') exit longname_temp(longname_i) = c_null_char end do do longname_i = longname_i, 1, -1 longname_temp(longname_i) = longname_dummy(longname_i:longname_i) end do call lib_vlistInqVarLongname(vlistID_dummy, varID_dummy, longname_temp) do longname_i = 1, len(longname_dummy) if(longname_temp(longname_i) == c_null_char) exit longname_dummy(longname_i:longname_i) = longname_temp(longname_i) end do do longname_i = longname_i, len(longname_dummy) longname_dummy(longname_i:longname_i) = ' ' end do end subroutine vlistInqVarLongname subroutine vlistDefVarUnits(vlistID_dummy, varID_dummy, units_dummy) integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy character(kind = c_char, len = *), intent(in) :: units_dummy character(kind = c_char) :: units_temp(len(units_dummy) + 1) integer :: units_i interface subroutine lib_vlistDefVarUnits(vlistID_dummy, varID_dummy, units_dummy)& & bind(c, name = 'vlistDefVarUnits') import c_char, c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy character(kind = c_char) :: units_dummy(*) end subroutine lib_vlistDefVarUnits end interface do units_i = 1, len(units_dummy) units_temp(units_i) = units_dummy(units_i:units_i) end do units_temp(len(units_dummy) + 1) = c_null_char call lib_vlistDefVarUnits(vlistID_dummy, varID_dummy, units_temp) end subroutine vlistDefVarUnits subroutine vlistInqVarUnits(vlistID_dummy, varID_dummy, units_dummy) integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy character(kind = c_char, len = *), intent(inout) :: units_dummy character(kind = c_char) :: units_temp(len(units_dummy) + 1) integer :: units_i interface subroutine lib_vlistInqVarUnits(vlistID_dummy, varID_dummy, units_dummy)& & bind(c, name = 'vlistInqVarUnits') import c_char, c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy character(kind = c_char) :: units_dummy(*) end subroutine lib_vlistInqVarUnits end interface units_temp(len(units_dummy) + 1) = c_null_char do units_i = len(units_dummy), 1, -1 if(units_dummy(units_i:units_i) /= ' ') exit units_temp(units_i) = c_null_char end do do units_i = units_i, 1, -1 units_temp(units_i) = units_dummy(units_i:units_i) end do call lib_vlistInqVarUnits(vlistID_dummy, varID_dummy, units_temp) do units_i = 1, len(units_dummy) if(units_temp(units_i) == c_null_char) exit units_dummy(units_i:units_i) = units_temp(units_i) end do do units_i = units_i, len(units_dummy) units_dummy(units_i:units_i) = ' ' end do end subroutine vlistInqVarUnits subroutine vlistDefVarExtra(vlistID_dummy, varID_dummy, extra_dummy) integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy character(kind = c_char, len = *), intent(in) :: extra_dummy character(kind = c_char) :: extra_temp(len(extra_dummy) + 1) integer :: extra_i interface subroutine lib_vlistDefVarExtra(vlistID_dummy, varID_dummy, extra_dummy)& & bind(c, name = 'vlistDefVarExtra') import c_char, c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy character(kind = c_char) :: extra_dummy(*) end subroutine lib_vlistDefVarExtra end interface do extra_i = 1, len(extra_dummy) extra_temp(extra_i) = extra_dummy(extra_i:extra_i) end do extra_temp(len(extra_dummy) + 1) = c_null_char call lib_vlistDefVarExtra(vlistID_dummy, varID_dummy, extra_temp) end subroutine vlistDefVarExtra subroutine vlistInqVarExtra(vlistID_dummy, varID_dummy, extra_dummy) integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy character(kind = c_char, len = *), intent(inout) :: extra_dummy character(kind = c_char) :: extra_temp(len(extra_dummy) + 1) integer :: extra_i interface subroutine lib_vlistInqVarExtra(vlistID_dummy, varID_dummy, extra_dummy)& & bind(c, name = 'vlistInqVarExtra') import c_char, c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy character(kind = c_char) :: extra_dummy(*) end subroutine lib_vlistInqVarExtra end interface extra_temp(len(extra_dummy) + 1) = c_null_char do extra_i = len(extra_dummy), 1, -1 if(extra_dummy(extra_i:extra_i) /= ' ') exit extra_temp(extra_i) = c_null_char end do do extra_i = extra_i, 1, -1 extra_temp(extra_i) = extra_dummy(extra_i:extra_i) end do call lib_vlistInqVarExtra(vlistID_dummy, varID_dummy, extra_temp) do extra_i = 1, len(extra_dummy) if(extra_temp(extra_i) == c_null_char) exit extra_dummy(extra_i:extra_i) = extra_temp(extra_i) end do do extra_i = extra_i, len(extra_dummy) extra_dummy(extra_i:extra_i) = ' ' end do end subroutine vlistInqVarExtra subroutine cdiDefAdditionalKey(string_dummy) character(kind = c_char, len = *), intent(in) :: string_dummy character(kind = c_char) :: string_temp(len(string_dummy) + 1) integer :: string_i interface subroutine lib_cdiDefAdditionalKey(string_dummy) bind(c, name =& & 'cdiDefAdditionalKey') import c_char character(kind = c_char) :: string_dummy(*) end subroutine lib_cdiDefAdditionalKey end interface do string_i = 1, len(string_dummy) string_temp(string_i) = string_dummy(string_i:string_i) end do string_temp(len(string_dummy) + 1) = c_null_char call lib_cdiDefAdditionalKey(string_temp) end subroutine cdiDefAdditionalKey subroutine vlistDefVarIntKey(vlistID_dummy, varID_dummy, name_dummy,& & value_dummy) integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy character(kind = c_char, len = *), intent(in) :: name_dummy integer(c_int), value :: value_dummy character(kind = c_char) :: name_temp(len(name_dummy) + 1) integer :: name_i interface subroutine lib_vlistDefVarIntKey(vlistID_dummy, varID_dummy, name_dummy,& & value_dummy) bind(c, name = 'vlistDefVarIntKey') import c_char, c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy character(kind = c_char) :: name_dummy(*) integer(c_int), value :: value_dummy end subroutine lib_vlistDefVarIntKey end interface do name_i = 1, len(name_dummy) name_temp(name_i) = name_dummy(name_i:name_i) end do name_temp(len(name_dummy) + 1) = c_null_char call lib_vlistDefVarIntKey(vlistID_dummy, varID_dummy, name_temp,& & value_dummy) end subroutine vlistDefVarIntKey subroutine vlistDefVarDblKey(vlistID_dummy, varID_dummy, name_dummy,& & value_dummy) integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy character(kind = c_char, len = *), intent(in) :: name_dummy real(c_double), value :: value_dummy character(kind = c_char) :: name_temp(len(name_dummy) + 1) integer :: name_i interface subroutine lib_vlistDefVarDblKey(vlistID_dummy, varID_dummy, name_dummy,& & value_dummy) bind(c, name = 'vlistDefVarDblKey') import c_char, c_double, c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy character(kind = c_char) :: name_dummy(*) real(c_double), value :: value_dummy end subroutine lib_vlistDefVarDblKey end interface do name_i = 1, len(name_dummy) name_temp(name_i) = name_dummy(name_i:name_i) end do name_temp(len(name_dummy) + 1) = c_null_char call lib_vlistDefVarDblKey(vlistID_dummy, varID_dummy, name_temp,& & value_dummy) end subroutine vlistDefVarDblKey function vlistHasVarKey(vlistID_dummy, varID_dummy, name_dummy)& & result(f_result) integer(c_int) :: f_result integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy character(kind = c_char, len = *), intent(in) :: name_dummy character(kind = c_char) :: name_temp(len(name_dummy) + 1) integer :: name_i interface function lib_vlistHasVarKey(vlistID_dummy, varID_dummy, name_dummy)& & bind(c, name = 'vlistHasVarKey') result(c_result) import c_char, c_int integer(c_int) :: c_result integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy character(kind = c_char) :: name_dummy(*) end function lib_vlistHasVarKey end interface do name_i = 1, len(name_dummy) name_temp(name_i) = name_dummy(name_i:name_i) end do name_temp(len(name_dummy) + 1) = c_null_char f_result = lib_vlistHasVarKey(vlistID_dummy, varID_dummy, name_temp) end function vlistHasVarKey function vlistInqVarDblKey(vlistID_dummy, varID_dummy, name_dummy)& & result(f_result) real(c_double) :: f_result integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy character(kind = c_char, len = *), intent(in) :: name_dummy character(kind = c_char) :: name_temp(len(name_dummy) + 1) integer :: name_i interface function lib_vlistInqVarDblKey(vlistID_dummy, varID_dummy, name_dummy)& & bind(c, name = 'vlistInqVarDblKey') result(c_result) import c_char, c_double, c_int real(c_double) :: c_result integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy character(kind = c_char) :: name_dummy(*) end function lib_vlistInqVarDblKey end interface do name_i = 1, len(name_dummy) name_temp(name_i) = name_dummy(name_i:name_i) end do name_temp(len(name_dummy) + 1) = c_null_char f_result = lib_vlistInqVarDblKey(vlistID_dummy, varID_dummy, name_temp) end function vlistInqVarDblKey function vlistInqVarIntKey(vlistID_dummy, varID_dummy, name_dummy)& & result(f_result) integer(c_int) :: f_result integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy character(kind = c_char, len = *), intent(in) :: name_dummy character(kind = c_char) :: name_temp(len(name_dummy) + 1) integer :: name_i interface function lib_vlistInqVarIntKey(vlistID_dummy, varID_dummy, name_dummy)& & bind(c, name = 'vlistInqVarIntKey') result(c_result) import c_char, c_int integer(c_int) :: c_result integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy character(kind = c_char) :: name_dummy(*) end function lib_vlistInqVarIntKey end interface do name_i = 1, len(name_dummy) name_temp(name_i) = name_dummy(name_i:name_i) end do name_temp(len(name_dummy) + 1) = c_null_char f_result = lib_vlistInqVarIntKey(vlistID_dummy, varID_dummy, name_temp) end function vlistInqVarIntKey function cdiInqAtt(cdiID_dummy, varID_dummy, attrnum_dummy, name_dummy,& & typep_dummy, lenp_dummy) result(f_result) integer(c_int) :: f_result integer(c_int), value :: cdiID_dummy integer(c_int), value :: varID_dummy integer(c_int), value :: attrnum_dummy character(kind = c_char, len = *), intent(inout) :: name_dummy integer(c_int), intent(inout) :: typep_dummy integer(c_int), intent(inout) :: lenp_dummy character(kind = c_char) :: name_temp(len(name_dummy) + 1) integer :: name_i interface function lib_cdiInqAtt(cdiID_dummy, varID_dummy, attrnum_dummy,& & name_dummy, typep_dummy, lenp_dummy) bind(c, name = 'cdiInqAtt')& & result(c_result) import c_char, c_int integer(c_int) :: c_result integer(c_int), value :: cdiID_dummy integer(c_int), value :: varID_dummy integer(c_int), value :: attrnum_dummy character(kind = c_char) :: name_dummy(*) integer(c_int), intent(inout) :: typep_dummy integer(c_int), intent(inout) :: lenp_dummy end function lib_cdiInqAtt end interface name_temp(len(name_dummy) + 1) = c_null_char do name_i = len(name_dummy), 1, -1 if(name_dummy(name_i:name_i) /= ' ') exit name_temp(name_i) = c_null_char end do do name_i = name_i, 1, -1 name_temp(name_i) = name_dummy(name_i:name_i) end do f_result = lib_cdiInqAtt(cdiID_dummy, varID_dummy, attrnum_dummy,& & name_temp, typep_dummy, lenp_dummy) do name_i = 1, len(name_dummy) if(name_temp(name_i) == c_null_char) exit name_dummy(name_i:name_i) = name_temp(name_i) end do do name_i = name_i, len(name_dummy) name_dummy(name_i:name_i) = ' ' end do end function cdiInqAtt function cdiDelAtt(cdiID_dummy, varID_dummy, name_dummy) result(f_result) integer(c_int) :: f_result integer(c_int), value :: cdiID_dummy integer(c_int), value :: varID_dummy character(kind = c_char, len = *), intent(in) :: name_dummy character(kind = c_char) :: name_temp(len(name_dummy) + 1) integer :: name_i interface function lib_cdiDelAtt(cdiID_dummy, varID_dummy, name_dummy) bind(c, name& & = 'cdiDelAtt') result(c_result) import c_char, c_int integer(c_int) :: c_result integer(c_int), value :: cdiID_dummy integer(c_int), value :: varID_dummy character(kind = c_char) :: name_dummy(*) end function lib_cdiDelAtt end interface do name_i = 1, len(name_dummy) name_temp(name_i) = name_dummy(name_i:name_i) end do name_temp(len(name_dummy) + 1) = c_null_char f_result = lib_cdiDelAtt(cdiID_dummy, varID_dummy, name_temp) end function cdiDelAtt function cdiDefAttInt(cdiID_dummy, varID_dummy, name_dummy, type_dummy,& & len_dummy, ip_dummy) result(f_result) integer(c_int) :: f_result integer(c_int), value :: cdiID_dummy integer(c_int), value :: varID_dummy character(kind = c_char, len = *), intent(in) :: name_dummy integer(c_int), value :: type_dummy integer(c_int), value :: len_dummy integer(c_int), intent(in) :: ip_dummy(*) character(kind = c_char) :: name_temp(len(name_dummy) + 1) integer :: name_i interface function lib_cdiDefAttInt(cdiID_dummy, varID_dummy, name_dummy,& & type_dummy, len_dummy, ip_dummy) bind(c, name = 'cdiDefAttInt')& & result(c_result) import c_char, c_int integer(c_int) :: c_result integer(c_int), value :: cdiID_dummy integer(c_int), value :: varID_dummy character(kind = c_char) :: name_dummy(*) integer(c_int), value :: type_dummy integer(c_int), value :: len_dummy integer(c_int), intent(in) :: ip_dummy(*) end function lib_cdiDefAttInt end interface do name_i = 1, len(name_dummy) name_temp(name_i) = name_dummy(name_i:name_i) end do name_temp(len(name_dummy) + 1) = c_null_char f_result = lib_cdiDefAttInt(cdiID_dummy, varID_dummy, name_temp,& & type_dummy, len_dummy, ip_dummy) end function cdiDefAttInt function cdiDefAttFlt(cdiID_dummy, varID_dummy, name_dummy, type_dummy,& & len_dummy, dp_dummy) result(f_result) integer(c_int) :: f_result integer(c_int), value :: cdiID_dummy integer(c_int), value :: varID_dummy character(kind = c_char, len = *), intent(in) :: name_dummy integer(c_int), value :: type_dummy integer(c_int), value :: len_dummy real(c_double), intent(in) :: dp_dummy(*) character(kind = c_char) :: name_temp(len(name_dummy) + 1) integer :: name_i interface function lib_cdiDefAttFlt(cdiID_dummy, varID_dummy, name_dummy,& & type_dummy, len_dummy, dp_dummy) bind(c, name = 'cdiDefAttFlt')& & result(c_result) import c_char, c_double, c_int integer(c_int) :: c_result integer(c_int), value :: cdiID_dummy integer(c_int), value :: varID_dummy character(kind = c_char) :: name_dummy(*) integer(c_int), value :: type_dummy integer(c_int), value :: len_dummy real(c_double), intent(in) :: dp_dummy(*) end function lib_cdiDefAttFlt end interface do name_i = 1, len(name_dummy) name_temp(name_i) = name_dummy(name_i:name_i) end do name_temp(len(name_dummy) + 1) = c_null_char f_result = lib_cdiDefAttFlt(cdiID_dummy, varID_dummy, name_temp,& & type_dummy, len_dummy, dp_dummy) end function cdiDefAttFlt function cdiDefAttTxt(cdiID_dummy, varID_dummy, name_dummy, len_dummy,& & tp_cbuf_dummy) result(f_result) integer(c_int) :: f_result integer(c_int), value :: cdiID_dummy integer(c_int), value :: varID_dummy character(kind = c_char, len = *), intent(in) :: name_dummy integer(c_int), value :: len_dummy character(kind = c_char, len = *), intent(in) :: tp_cbuf_dummy character(kind = c_char) :: name_temp(len(name_dummy) + 1) integer :: name_i character(kind = c_char) :: tp_cbuf_temp(len(tp_cbuf_dummy) + 1) integer :: tp_cbuf_i interface function lib_cdiDefAttTxt(cdiID_dummy, varID_dummy, name_dummy,& & len_dummy, tp_cbuf_dummy) bind(c, name = 'cdiDefAttTxt')& & result(c_result) import c_char, c_int integer(c_int) :: c_result integer(c_int), value :: cdiID_dummy integer(c_int), value :: varID_dummy character(kind = c_char) :: name_dummy(*) integer(c_int), value :: len_dummy character(kind = c_char) :: tp_cbuf_dummy(*) end function lib_cdiDefAttTxt end interface do name_i = 1, len(name_dummy) name_temp(name_i) = name_dummy(name_i:name_i) end do name_temp(len(name_dummy) + 1) = c_null_char do tp_cbuf_i = 1, len(tp_cbuf_dummy) tp_cbuf_temp(tp_cbuf_i) = tp_cbuf_dummy(tp_cbuf_i:tp_cbuf_i) end do tp_cbuf_temp(len(tp_cbuf_dummy) + 1) = c_null_char f_result = lib_cdiDefAttTxt(cdiID_dummy, varID_dummy, name_temp, len_dummy,& & tp_cbuf_temp) end function cdiDefAttTxt function cdiInqAttInt(cdiID_dummy, varID_dummy, name_dummy, mlen_dummy,& & ip_dummy) result(f_result) integer(c_int) :: f_result integer(c_int), value :: cdiID_dummy integer(c_int), value :: varID_dummy character(kind = c_char, len = *), intent(in) :: name_dummy integer(c_int), value :: mlen_dummy integer(c_int), intent(inout) :: ip_dummy(*) character(kind = c_char) :: name_temp(len(name_dummy) + 1) integer :: name_i interface function lib_cdiInqAttInt(cdiID_dummy, varID_dummy, name_dummy,& & mlen_dummy, ip_dummy) bind(c, name = 'cdiInqAttInt') result(c_result) import c_char, c_int integer(c_int) :: c_result integer(c_int), value :: cdiID_dummy integer(c_int), value :: varID_dummy character(kind = c_char) :: name_dummy(*) integer(c_int), value :: mlen_dummy integer(c_int), intent(inout) :: ip_dummy(*) end function lib_cdiInqAttInt end interface do name_i = 1, len(name_dummy) name_temp(name_i) = name_dummy(name_i:name_i) end do name_temp(len(name_dummy) + 1) = c_null_char f_result = lib_cdiInqAttInt(cdiID_dummy, varID_dummy, name_temp,& & mlen_dummy, ip_dummy) end function cdiInqAttInt function cdiInqAttFlt(cdiID_dummy, varID_dummy, name_dummy, mlen_dummy,& & dp_dummy) result(f_result) integer(c_int) :: f_result integer(c_int), value :: cdiID_dummy integer(c_int), value :: varID_dummy character(kind = c_char, len = *), intent(in) :: name_dummy integer(c_int), value :: mlen_dummy real(c_double), intent(inout) :: dp_dummy(*) character(kind = c_char) :: name_temp(len(name_dummy) + 1) integer :: name_i interface function lib_cdiInqAttFlt(cdiID_dummy, varID_dummy, name_dummy,& & mlen_dummy, dp_dummy) bind(c, name = 'cdiInqAttFlt') result(c_result) import c_char, c_double, c_int integer(c_int) :: c_result integer(c_int), value :: cdiID_dummy integer(c_int), value :: varID_dummy character(kind = c_char) :: name_dummy(*) integer(c_int), value :: mlen_dummy real(c_double), intent(inout) :: dp_dummy(*) end function lib_cdiInqAttFlt end interface do name_i = 1, len(name_dummy) name_temp(name_i) = name_dummy(name_i:name_i) end do name_temp(len(name_dummy) + 1) = c_null_char f_result = lib_cdiInqAttFlt(cdiID_dummy, varID_dummy, name_temp,& & mlen_dummy, dp_dummy) end function cdiInqAttFlt function cdiInqAttTxt(cdiID_dummy, varID_dummy, name_dummy, mlen_dummy,& & tp_cbuf_dummy) result(f_result) integer(c_int) :: f_result integer(c_int), value :: cdiID_dummy integer(c_int), value :: varID_dummy character(kind = c_char, len = *), intent(in) :: name_dummy integer(c_int), value :: mlen_dummy character(kind = c_char, len = *), intent(inout) :: tp_cbuf_dummy character(kind = c_char) :: name_temp(len(name_dummy) + 1) integer :: name_i character(kind = c_char) :: tp_cbuf_temp(len(tp_cbuf_dummy) + 1) integer :: tp_cbuf_i interface function lib_cdiInqAttTxt(cdiID_dummy, varID_dummy, name_dummy,& & mlen_dummy, tp_cbuf_dummy) bind(c, name = 'cdiInqAttTxt')& & result(c_result) import c_char, c_int integer(c_int) :: c_result integer(c_int), value :: cdiID_dummy integer(c_int), value :: varID_dummy character(kind = c_char) :: name_dummy(*) integer(c_int), value :: mlen_dummy character(kind = c_char) :: tp_cbuf_dummy(*) end function lib_cdiInqAttTxt end interface do name_i = 1, len(name_dummy) name_temp(name_i) = name_dummy(name_i:name_i) end do name_temp(len(name_dummy) + 1) = c_null_char tp_cbuf_temp(len(tp_cbuf_dummy) + 1) = c_null_char do tp_cbuf_i = len(tp_cbuf_dummy), 1, -1 if(tp_cbuf_dummy(tp_cbuf_i:tp_cbuf_i) /= ' ') exit tp_cbuf_temp(tp_cbuf_i) = c_null_char end do do tp_cbuf_i = tp_cbuf_i, 1, -1 tp_cbuf_temp(tp_cbuf_i) = tp_cbuf_dummy(tp_cbuf_i:tp_cbuf_i) end do f_result = lib_cdiInqAttTxt(cdiID_dummy, varID_dummy, name_temp,& & mlen_dummy, tp_cbuf_temp) do tp_cbuf_i = 1, len(tp_cbuf_dummy) if(tp_cbuf_temp(tp_cbuf_i) == c_null_char) exit tp_cbuf_dummy(tp_cbuf_i:tp_cbuf_i) = tp_cbuf_temp(tp_cbuf_i) end do do tp_cbuf_i = tp_cbuf_i, len(tp_cbuf_dummy) tp_cbuf_dummy(tp_cbuf_i:tp_cbuf_i) = ' ' end do end function cdiInqAttTxt subroutine gridName(gridtype_dummy, gridname_dummy) integer(c_int), value :: gridtype_dummy character(kind = c_char, len = *), intent(inout) :: gridname_dummy character(kind = c_char) :: gridname_temp(len(gridname_dummy) + 1) integer :: gridname_i interface subroutine lib_gridName(gridtype_dummy, gridname_dummy) bind(c, name =& & 'gridName') import c_char, c_int integer(c_int), value :: gridtype_dummy character(kind = c_char) :: gridname_dummy(*) end subroutine lib_gridName end interface gridname_temp(len(gridname_dummy) + 1) = c_null_char do gridname_i = len(gridname_dummy), 1, -1 if(gridname_dummy(gridname_i:gridname_i) /= ' ') exit gridname_temp(gridname_i) = c_null_char end do do gridname_i = gridname_i, 1, -1 gridname_temp(gridname_i) = gridname_dummy(gridname_i:gridname_i) end do call lib_gridName(gridtype_dummy, gridname_temp) do gridname_i = 1, len(gridname_dummy) if(gridname_temp(gridname_i) == c_null_char) exit gridname_dummy(gridname_i:gridname_i) = gridname_temp(gridname_i) end do do gridname_i = gridname_i, len(gridname_dummy) gridname_dummy(gridname_i:gridname_i) = ' ' end do end subroutine gridName function gridNamePtr(gridtype_dummy) result(f_result) character(kind = c_char), dimension(:), pointer :: f_result integer(c_int), value :: gridtype_dummy type(c_ptr) :: ptr integer :: rv_shape(1) interface function lib_gridNamePtr(gridtype_dummy) bind(c, name = 'gridNamePtr')& & result(c_result) import c_int, c_ptr type(c_ptr) :: c_result integer(c_int), value :: gridtype_dummy end function lib_gridNamePtr end interface f_result => null() ptr = lib_gridNamePtr(gridtype_dummy) if(c_associated(ptr)) then rv_shape(1) = int(lib_strlen(ptr)) call c_f_pointer(ptr, f_result, rv_shape) end if end function gridNamePtr function cdiDefKeyString(cdiID_dummy, varID_dummy, key_dummy, string_dummy)& & result(f_result) integer(c_int) :: f_result integer(c_int), value :: cdiID_dummy integer(c_int), value :: varID_dummy integer(c_int), value :: key_dummy character(kind = c_char, len = *), intent(in) :: string_dummy character(kind = c_char) :: string_temp(len(string_dummy) + 1) integer :: string_i interface function lib_cdiDefKeyString(cdiID_dummy, varID_dummy, key_dummy,& & string_dummy) bind(c, name = 'cdiDefKeyString') result(c_result) import c_char, c_int integer(c_int) :: c_result integer(c_int), value :: cdiID_dummy integer(c_int), value :: varID_dummy integer(c_int), value :: key_dummy character(kind = c_char) :: string_dummy(*) end function lib_cdiDefKeyString end interface do string_i = 1, len(string_dummy) string_temp(string_i) = string_dummy(string_i:string_i) end do string_temp(len(string_dummy) + 1) = c_null_char f_result = lib_cdiDefKeyString(cdiID_dummy, varID_dummy, key_dummy,& & string_temp) end function cdiDefKeyString function cdiInqKeyString(cdiID_dummy, varID_dummy, key_dummy, string_dummy,& & length_dummy) result(f_result) integer(c_int) :: f_result integer(c_int), value :: cdiID_dummy integer(c_int), value :: varID_dummy integer(c_int), value :: key_dummy character(kind = c_char, len = *), intent(inout) :: string_dummy integer(c_int), intent(inout) :: length_dummy character(kind = c_char) :: string_temp(len(string_dummy) + 1) integer :: string_i interface function lib_cdiInqKeyString(cdiID_dummy, varID_dummy, key_dummy,& & string_dummy, length_dummy) bind(c, name = 'cdiInqKeyString')& & result(c_result) import c_char, c_int integer(c_int) :: c_result integer(c_int), value :: cdiID_dummy integer(c_int), value :: varID_dummy integer(c_int), value :: key_dummy character(kind = c_char) :: string_dummy(*) integer(c_int), intent(inout) :: length_dummy end function lib_cdiInqKeyString end interface string_temp(len(string_dummy) + 1) = c_null_char do string_i = len(string_dummy), 1, -1 if(string_dummy(string_i:string_i) /= ' ') exit string_temp(string_i) = c_null_char end do do string_i = string_i, 1, -1 string_temp(string_i) = string_dummy(string_i:string_i) end do f_result = lib_cdiInqKeyString(cdiID_dummy, varID_dummy, key_dummy,& & string_temp, length_dummy) do string_i = 1, len(string_dummy) if(string_temp(string_i) == c_null_char) exit string_dummy(string_i:string_i) = string_temp(string_i) end do do string_i = string_i, len(string_dummy) string_dummy(string_i:string_i) = ' ' end do end function cdiInqKeyString function cdiGridDefKeyStr(gridID_dummy, key_dummy, size_dummy, mesg_dummy)& & result(f_result) integer(c_int) :: f_result integer(c_int), value :: gridID_dummy integer(c_int), value :: key_dummy integer(c_int), value :: size_dummy character(kind = c_char, len = *), intent(in) :: mesg_dummy character(kind = c_char) :: mesg_temp(len(mesg_dummy) + 1) integer :: mesg_i interface function lib_cdiGridDefKeyStr(gridID_dummy, key_dummy, size_dummy,& & mesg_dummy) bind(c, name = 'cdiGridDefKeyStr') result(c_result) import c_char, c_int integer(c_int) :: c_result integer(c_int), value :: gridID_dummy integer(c_int), value :: key_dummy integer(c_int), value :: size_dummy character(kind = c_char) :: mesg_dummy(*) end function lib_cdiGridDefKeyStr end interface do mesg_i = 1, len(mesg_dummy) mesg_temp(mesg_i) = mesg_dummy(mesg_i:mesg_i) end do mesg_temp(len(mesg_dummy) + 1) = c_null_char f_result = lib_cdiGridDefKeyStr(gridID_dummy, key_dummy, size_dummy,& & mesg_temp) end function cdiGridDefKeyStr function cdiGridInqKeyStr(gridID_dummy, key_dummy, size_dummy, mesg_dummy)& & result(f_result) integer(c_int) :: f_result integer(c_int), value :: gridID_dummy integer(c_int), value :: key_dummy integer(c_int), value :: size_dummy character(kind = c_char, len = *), intent(inout) :: mesg_dummy character(kind = c_char) :: mesg_temp(len(mesg_dummy) + 1) integer :: mesg_i interface function lib_cdiGridInqKeyStr(gridID_dummy, key_dummy, size_dummy,& & mesg_dummy) bind(c, name = 'cdiGridInqKeyStr') result(c_result) import c_char, c_int integer(c_int) :: c_result integer(c_int), value :: gridID_dummy integer(c_int), value :: key_dummy integer(c_int), value :: size_dummy character(kind = c_char) :: mesg_dummy(*) end function lib_cdiGridInqKeyStr end interface mesg_temp(len(mesg_dummy) + 1) = c_null_char do mesg_i = len(mesg_dummy), 1, -1 if(mesg_dummy(mesg_i:mesg_i) /= ' ') exit mesg_temp(mesg_i) = c_null_char end do do mesg_i = mesg_i, 1, -1 mesg_temp(mesg_i) = mesg_dummy(mesg_i:mesg_i) end do f_result = lib_cdiGridInqKeyStr(gridID_dummy, key_dummy, size_dummy,& & mesg_temp) do mesg_i = 1, len(mesg_dummy) if(mesg_temp(mesg_i) == c_null_char) exit mesg_dummy(mesg_i:mesg_i) = mesg_temp(mesg_i) end do do mesg_i = mesg_i, len(mesg_dummy) mesg_dummy(mesg_i:mesg_i) = ' ' end do end function cdiGridInqKeyStr function cdiZaxisDefKeyStr(zaxisID_dummy, key_dummy, size_dummy, mesg_dummy)& & result(f_result) integer(c_int) :: f_result integer(c_int), value :: zaxisID_dummy integer(c_int), value :: key_dummy integer(c_int), value :: size_dummy character(kind = c_char, len = *), intent(in) :: mesg_dummy character(kind = c_char) :: mesg_temp(len(mesg_dummy) + 1) integer :: mesg_i interface function lib_cdiZaxisDefKeyStr(zaxisID_dummy, key_dummy, size_dummy,& & mesg_dummy) bind(c, name = 'cdiZaxisDefKeyStr') result(c_result) import c_char, c_int integer(c_int) :: c_result integer(c_int), value :: zaxisID_dummy integer(c_int), value :: key_dummy integer(c_int), value :: size_dummy character(kind = c_char) :: mesg_dummy(*) end function lib_cdiZaxisDefKeyStr end interface do mesg_i = 1, len(mesg_dummy) mesg_temp(mesg_i) = mesg_dummy(mesg_i:mesg_i) end do mesg_temp(len(mesg_dummy) + 1) = c_null_char f_result = lib_cdiZaxisDefKeyStr(zaxisID_dummy, key_dummy, size_dummy,& & mesg_temp) end function cdiZaxisDefKeyStr function cdiZaxisInqKeyStr(zaxisID_dummy, key_dummy, size_dummy, mesg_dummy)& & result(f_result) integer(c_int) :: f_result integer(c_int), value :: zaxisID_dummy integer(c_int), value :: key_dummy integer(c_int), value :: size_dummy character(kind = c_char, len = *), intent(inout) :: mesg_dummy character(kind = c_char) :: mesg_temp(len(mesg_dummy) + 1) integer :: mesg_i interface function lib_cdiZaxisInqKeyStr(zaxisID_dummy, key_dummy, size_dummy,& & mesg_dummy) bind(c, name = 'cdiZaxisInqKeyStr') result(c_result) import c_char, c_int integer(c_int) :: c_result integer(c_int), value :: zaxisID_dummy integer(c_int), value :: key_dummy integer(c_int), value :: size_dummy character(kind = c_char) :: mesg_dummy(*) end function lib_cdiZaxisInqKeyStr end interface mesg_temp(len(mesg_dummy) + 1) = c_null_char do mesg_i = len(mesg_dummy), 1, -1 if(mesg_dummy(mesg_i:mesg_i) /= ' ') exit mesg_temp(mesg_i) = c_null_char end do do mesg_i = mesg_i, 1, -1 mesg_temp(mesg_i) = mesg_dummy(mesg_i:mesg_i) end do f_result = lib_cdiZaxisInqKeyStr(zaxisID_dummy, key_dummy, size_dummy,& & mesg_temp) do mesg_i = 1, len(mesg_dummy) if(mesg_temp(mesg_i) == c_null_char) exit mesg_dummy(mesg_i:mesg_i) = mesg_temp(mesg_i) end do do mesg_i = mesg_i, len(mesg_dummy) mesg_dummy(mesg_i:mesg_i) = ' ' end do end function cdiZaxisInqKeyStr subroutine gridDefXname(gridID_dummy, xname_dummy) integer(c_int), value :: gridID_dummy character(kind = c_char, len = *), intent(in) :: xname_dummy character(kind = c_char) :: xname_temp(len(xname_dummy) + 1) integer :: xname_i interface subroutine lib_gridDefXname(gridID_dummy, xname_dummy) bind(c, name =& & 'gridDefXname') import c_char, c_int integer(c_int), value :: gridID_dummy character(kind = c_char) :: xname_dummy(*) end subroutine lib_gridDefXname end interface do xname_i = 1, len(xname_dummy) xname_temp(xname_i) = xname_dummy(xname_i:xname_i) end do xname_temp(len(xname_dummy) + 1) = c_null_char call lib_gridDefXname(gridID_dummy, xname_temp) end subroutine gridDefXname subroutine gridInqXname(gridID_dummy, xname_dummy) integer(c_int), value :: gridID_dummy character(kind = c_char, len = *), intent(inout) :: xname_dummy character(kind = c_char) :: xname_temp(len(xname_dummy) + 1) integer :: xname_i interface subroutine lib_gridInqXname(gridID_dummy, xname_dummy) bind(c, name =& & 'gridInqXname') import c_char, c_int integer(c_int), value :: gridID_dummy character(kind = c_char) :: xname_dummy(*) end subroutine lib_gridInqXname end interface xname_temp(len(xname_dummy) + 1) = c_null_char do xname_i = len(xname_dummy), 1, -1 if(xname_dummy(xname_i:xname_i) /= ' ') exit xname_temp(xname_i) = c_null_char end do do xname_i = xname_i, 1, -1 xname_temp(xname_i) = xname_dummy(xname_i:xname_i) end do call lib_gridInqXname(gridID_dummy, xname_temp) do xname_i = 1, len(xname_dummy) if(xname_temp(xname_i) == c_null_char) exit xname_dummy(xname_i:xname_i) = xname_temp(xname_i) end do do xname_i = xname_i, len(xname_dummy) xname_dummy(xname_i:xname_i) = ' ' end do end subroutine gridInqXname subroutine gridDefXlongname(gridID_dummy, xlongname_dummy) integer(c_int), value :: gridID_dummy character(kind = c_char, len = *), intent(in) :: xlongname_dummy character(kind = c_char) :: xlongname_temp(len(xlongname_dummy) + 1) integer :: xlongname_i interface subroutine lib_gridDefXlongname(gridID_dummy, xlongname_dummy) bind(c,& & name = 'gridDefXlongname') import c_char, c_int integer(c_int), value :: gridID_dummy character(kind = c_char) :: xlongname_dummy(*) end subroutine lib_gridDefXlongname end interface do xlongname_i = 1, len(xlongname_dummy) xlongname_temp(xlongname_i) = xlongname_dummy(xlongname_i:xlongname_i) end do xlongname_temp(len(xlongname_dummy) + 1) = c_null_char call lib_gridDefXlongname(gridID_dummy, xlongname_temp) end subroutine gridDefXlongname subroutine gridInqXlongname(gridID_dummy, xlongname_dummy) integer(c_int), value :: gridID_dummy character(kind = c_char, len = *), intent(inout) :: xlongname_dummy character(kind = c_char) :: xlongname_temp(len(xlongname_dummy) + 1) integer :: xlongname_i interface subroutine lib_gridInqXlongname(gridID_dummy, xlongname_dummy) bind(c,& & name = 'gridInqXlongname') import c_char, c_int integer(c_int), value :: gridID_dummy character(kind = c_char) :: xlongname_dummy(*) end subroutine lib_gridInqXlongname end interface xlongname_temp(len(xlongname_dummy) + 1) = c_null_char do xlongname_i = len(xlongname_dummy), 1, -1 if(xlongname_dummy(xlongname_i:xlongname_i) /= ' ') exit xlongname_temp(xlongname_i) = c_null_char end do do xlongname_i = xlongname_i, 1, -1 xlongname_temp(xlongname_i) = xlongname_dummy(xlongname_i:xlongname_i) end do call lib_gridInqXlongname(gridID_dummy, xlongname_temp) do xlongname_i = 1, len(xlongname_dummy) if(xlongname_temp(xlongname_i) == c_null_char) exit xlongname_dummy(xlongname_i:xlongname_i) = xlongname_temp(xlongname_i) end do do xlongname_i = xlongname_i, len(xlongname_dummy) xlongname_dummy(xlongname_i:xlongname_i) = ' ' end do end subroutine gridInqXlongname subroutine gridDefXunits(gridID_dummy, xunits_dummy) integer(c_int), value :: gridID_dummy character(kind = c_char, len = *), intent(in) :: xunits_dummy character(kind = c_char) :: xunits_temp(len(xunits_dummy) + 1) integer :: xunits_i interface subroutine lib_gridDefXunits(gridID_dummy, xunits_dummy) bind(c, name =& & 'gridDefXunits') import c_char, c_int integer(c_int), value :: gridID_dummy character(kind = c_char) :: xunits_dummy(*) end subroutine lib_gridDefXunits end interface do xunits_i = 1, len(xunits_dummy) xunits_temp(xunits_i) = xunits_dummy(xunits_i:xunits_i) end do xunits_temp(len(xunits_dummy) + 1) = c_null_char call lib_gridDefXunits(gridID_dummy, xunits_temp) end subroutine gridDefXunits subroutine gridInqXunits(gridID_dummy, xunits_dummy) integer(c_int), value :: gridID_dummy character(kind = c_char, len = *), intent(inout) :: xunits_dummy character(kind = c_char) :: xunits_temp(len(xunits_dummy) + 1) integer :: xunits_i interface subroutine lib_gridInqXunits(gridID_dummy, xunits_dummy) bind(c, name =& & 'gridInqXunits') import c_char, c_int integer(c_int), value :: gridID_dummy character(kind = c_char) :: xunits_dummy(*) end subroutine lib_gridInqXunits end interface xunits_temp(len(xunits_dummy) + 1) = c_null_char do xunits_i = len(xunits_dummy), 1, -1 if(xunits_dummy(xunits_i:xunits_i) /= ' ') exit xunits_temp(xunits_i) = c_null_char end do do xunits_i = xunits_i, 1, -1 xunits_temp(xunits_i) = xunits_dummy(xunits_i:xunits_i) end do call lib_gridInqXunits(gridID_dummy, xunits_temp) do xunits_i = 1, len(xunits_dummy) if(xunits_temp(xunits_i) == c_null_char) exit xunits_dummy(xunits_i:xunits_i) = xunits_temp(xunits_i) end do do xunits_i = xunits_i, len(xunits_dummy) xunits_dummy(xunits_i:xunits_i) = ' ' end do end subroutine gridInqXunits subroutine gridDefYname(gridID_dummy, yname_dummy) integer(c_int), value :: gridID_dummy character(kind = c_char, len = *), intent(in) :: yname_dummy character(kind = c_char) :: yname_temp(len(yname_dummy) + 1) integer :: yname_i interface subroutine lib_gridDefYname(gridID_dummy, yname_dummy) bind(c, name =& & 'gridDefYname') import c_char, c_int integer(c_int), value :: gridID_dummy character(kind = c_char) :: yname_dummy(*) end subroutine lib_gridDefYname end interface do yname_i = 1, len(yname_dummy) yname_temp(yname_i) = yname_dummy(yname_i:yname_i) end do yname_temp(len(yname_dummy) + 1) = c_null_char call lib_gridDefYname(gridID_dummy, yname_temp) end subroutine gridDefYname subroutine gridInqYname(gridID_dummy, yname_dummy) integer(c_int), value :: gridID_dummy character(kind = c_char, len = *), intent(inout) :: yname_dummy character(kind = c_char) :: yname_temp(len(yname_dummy) + 1) integer :: yname_i interface subroutine lib_gridInqYname(gridID_dummy, yname_dummy) bind(c, name =& & 'gridInqYname') import c_char, c_int integer(c_int), value :: gridID_dummy character(kind = c_char) :: yname_dummy(*) end subroutine lib_gridInqYname end interface yname_temp(len(yname_dummy) + 1) = c_null_char do yname_i = len(yname_dummy), 1, -1 if(yname_dummy(yname_i:yname_i) /= ' ') exit yname_temp(yname_i) = c_null_char end do do yname_i = yname_i, 1, -1 yname_temp(yname_i) = yname_dummy(yname_i:yname_i) end do call lib_gridInqYname(gridID_dummy, yname_temp) do yname_i = 1, len(yname_dummy) if(yname_temp(yname_i) == c_null_char) exit yname_dummy(yname_i:yname_i) = yname_temp(yname_i) end do do yname_i = yname_i, len(yname_dummy) yname_dummy(yname_i:yname_i) = ' ' end do end subroutine gridInqYname subroutine gridDefYlongname(gridID_dummy, ylongname_dummy) integer(c_int), value :: gridID_dummy character(kind = c_char, len = *), intent(in) :: ylongname_dummy character(kind = c_char) :: ylongname_temp(len(ylongname_dummy) + 1) integer :: ylongname_i interface subroutine lib_gridDefYlongname(gridID_dummy, ylongname_dummy) bind(c,& & name = 'gridDefYlongname') import c_char, c_int integer(c_int), value :: gridID_dummy character(kind = c_char) :: ylongname_dummy(*) end subroutine lib_gridDefYlongname end interface do ylongname_i = 1, len(ylongname_dummy) ylongname_temp(ylongname_i) = ylongname_dummy(ylongname_i:ylongname_i) end do ylongname_temp(len(ylongname_dummy) + 1) = c_null_char call lib_gridDefYlongname(gridID_dummy, ylongname_temp) end subroutine gridDefYlongname subroutine gridInqYlongname(gridID_dummy, ylongname_dummy) integer(c_int), value :: gridID_dummy character(kind = c_char, len = *), intent(inout) :: ylongname_dummy character(kind = c_char) :: ylongname_temp(len(ylongname_dummy) + 1) integer :: ylongname_i interface subroutine lib_gridInqYlongname(gridID_dummy, ylongname_dummy) bind(c,& & name = 'gridInqYlongname') import c_char, c_int integer(c_int), value :: gridID_dummy character(kind = c_char) :: ylongname_dummy(*) end subroutine lib_gridInqYlongname end interface ylongname_temp(len(ylongname_dummy) + 1) = c_null_char do ylongname_i = len(ylongname_dummy), 1, -1 if(ylongname_dummy(ylongname_i:ylongname_i) /= ' ') exit ylongname_temp(ylongname_i) = c_null_char end do do ylongname_i = ylongname_i, 1, -1 ylongname_temp(ylongname_i) = ylongname_dummy(ylongname_i:ylongname_i) end do call lib_gridInqYlongname(gridID_dummy, ylongname_temp) do ylongname_i = 1, len(ylongname_dummy) if(ylongname_temp(ylongname_i) == c_null_char) exit ylongname_dummy(ylongname_i:ylongname_i) = ylongname_temp(ylongname_i) end do do ylongname_i = ylongname_i, len(ylongname_dummy) ylongname_dummy(ylongname_i:ylongname_i) = ' ' end do end subroutine gridInqYlongname subroutine gridDefYunits(gridID_dummy, yunits_dummy) integer(c_int), value :: gridID_dummy character(kind = c_char, len = *), intent(in) :: yunits_dummy character(kind = c_char) :: yunits_temp(len(yunits_dummy) + 1) integer :: yunits_i interface subroutine lib_gridDefYunits(gridID_dummy, yunits_dummy) bind(c, name =& & 'gridDefYunits') import c_char, c_int integer(c_int), value :: gridID_dummy character(kind = c_char) :: yunits_dummy(*) end subroutine lib_gridDefYunits end interface do yunits_i = 1, len(yunits_dummy) yunits_temp(yunits_i) = yunits_dummy(yunits_i:yunits_i) end do yunits_temp(len(yunits_dummy) + 1) = c_null_char call lib_gridDefYunits(gridID_dummy, yunits_temp) end subroutine gridDefYunits subroutine gridInqYunits(gridID_dummy, yunits_dummy) integer(c_int), value :: gridID_dummy character(kind = c_char, len = *), intent(inout) :: yunits_dummy character(kind = c_char) :: yunits_temp(len(yunits_dummy) + 1) integer :: yunits_i interface subroutine lib_gridInqYunits(gridID_dummy, yunits_dummy) bind(c, name =& & 'gridInqYunits') import c_char, c_int integer(c_int), value :: gridID_dummy character(kind = c_char) :: yunits_dummy(*) end subroutine lib_gridInqYunits end interface yunits_temp(len(yunits_dummy) + 1) = c_null_char do yunits_i = len(yunits_dummy), 1, -1 if(yunits_dummy(yunits_i:yunits_i) /= ' ') exit yunits_temp(yunits_i) = c_null_char end do do yunits_i = yunits_i, 1, -1 yunits_temp(yunits_i) = yunits_dummy(yunits_i:yunits_i) end do call lib_gridInqYunits(gridID_dummy, yunits_temp) do yunits_i = 1, len(yunits_dummy) if(yunits_temp(yunits_i) == c_null_char) exit yunits_dummy(yunits_i:yunits_i) = yunits_temp(yunits_i) end do do yunits_i = yunits_i, len(yunits_dummy) yunits_dummy(yunits_i:yunits_i) = ' ' end do end subroutine gridInqYunits subroutine gridInqXstdname(gridID_dummy, xstdname_dummy) integer(c_int), value :: gridID_dummy character(kind = c_char, len = *), intent(inout) :: xstdname_dummy character(kind = c_char) :: xstdname_temp(len(xstdname_dummy) + 1) integer :: xstdname_i interface subroutine lib_gridInqXstdname(gridID_dummy, xstdname_dummy) bind(c, name& & = 'gridInqXstdname') import c_char, c_int integer(c_int), value :: gridID_dummy character(kind = c_char) :: xstdname_dummy(*) end subroutine lib_gridInqXstdname end interface xstdname_temp(len(xstdname_dummy) + 1) = c_null_char do xstdname_i = len(xstdname_dummy), 1, -1 if(xstdname_dummy(xstdname_i:xstdname_i) /= ' ') exit xstdname_temp(xstdname_i) = c_null_char end do do xstdname_i = xstdname_i, 1, -1 xstdname_temp(xstdname_i) = xstdname_dummy(xstdname_i:xstdname_i) end do call lib_gridInqXstdname(gridID_dummy, xstdname_temp) do xstdname_i = 1, len(xstdname_dummy) if(xstdname_temp(xstdname_i) == c_null_char) exit xstdname_dummy(xstdname_i:xstdname_i) = xstdname_temp(xstdname_i) end do do xstdname_i = xstdname_i, len(xstdname_dummy) xstdname_dummy(xstdname_i:xstdname_i) = ' ' end do end subroutine gridInqXstdname subroutine gridInqYstdname(gridID_dummy, ystdname_dummy) integer(c_int), value :: gridID_dummy character(kind = c_char, len = *), intent(inout) :: ystdname_dummy character(kind = c_char) :: ystdname_temp(len(ystdname_dummy) + 1) integer :: ystdname_i interface subroutine lib_gridInqYstdname(gridID_dummy, ystdname_dummy) bind(c, name& & = 'gridInqYstdname') import c_char, c_int integer(c_int), value :: gridID_dummy character(kind = c_char) :: ystdname_dummy(*) end subroutine lib_gridInqYstdname end interface ystdname_temp(len(ystdname_dummy) + 1) = c_null_char do ystdname_i = len(ystdname_dummy), 1, -1 if(ystdname_dummy(ystdname_i:ystdname_i) /= ' ') exit ystdname_temp(ystdname_i) = c_null_char end do do ystdname_i = ystdname_i, 1, -1 ystdname_temp(ystdname_i) = ystdname_dummy(ystdname_i:ystdname_i) end do call lib_gridInqYstdname(gridID_dummy, ystdname_temp) do ystdname_i = 1, len(ystdname_dummy) if(ystdname_temp(ystdname_i) == c_null_char) exit ystdname_dummy(ystdname_i:ystdname_i) = ystdname_temp(ystdname_i) end do do ystdname_i = ystdname_i, len(ystdname_dummy) ystdname_dummy(ystdname_i:ystdname_i) = ' ' end do end subroutine gridInqYstdname subroutine gridDefReference(gridID_dummy, reference_dummy) integer(c_int), value :: gridID_dummy character(kind = c_char, len = *), intent(in) :: reference_dummy character(kind = c_char) :: reference_temp(len(reference_dummy) + 1) integer :: reference_i interface subroutine lib_gridDefReference(gridID_dummy, reference_dummy) bind(c,& & name = 'gridDefReference') import c_char, c_int integer(c_int), value :: gridID_dummy character(kind = c_char) :: reference_dummy(*) end subroutine lib_gridDefReference end interface do reference_i = 1, len(reference_dummy) reference_temp(reference_i) = reference_dummy(reference_i:reference_i) end do reference_temp(len(reference_dummy) + 1) = c_null_char call lib_gridDefReference(gridID_dummy, reference_temp) end subroutine gridDefReference function gridInqReference(gridID_dummy, reference_dummy) result(f_result) integer(c_int) :: f_result integer(c_int), value :: gridID_dummy character(kind = c_char, len = *), intent(inout) :: reference_dummy character(kind = c_char) :: reference_temp(len(reference_dummy) + 1) integer :: reference_i interface function lib_gridInqReference(gridID_dummy, reference_dummy) bind(c, name& & = 'gridInqReference') result(c_result) import c_char, c_int integer(c_int) :: c_result integer(c_int), value :: gridID_dummy character(kind = c_char) :: reference_dummy(*) end function lib_gridInqReference end interface reference_temp(len(reference_dummy) + 1) = c_null_char do reference_i = len(reference_dummy), 1, -1 if(reference_dummy(reference_i:reference_i) /= ' ') exit reference_temp(reference_i) = c_null_char end do do reference_i = reference_i, 1, -1 reference_temp(reference_i) = reference_dummy(reference_i:reference_i) end do f_result = lib_gridInqReference(gridID_dummy, reference_temp) do reference_i = 1, len(reference_dummy) if(reference_temp(reference_i) == c_null_char) exit reference_dummy(reference_i:reference_i) = reference_temp(reference_i) end do do reference_i = reference_i, len(reference_dummy) reference_dummy(reference_i:reference_i) = ' ' end do end function gridInqReference subroutine zaxisName(zaxistype_dummy, zaxisname_dummy) integer(c_int), value :: zaxistype_dummy character(kind = c_char, len = *), intent(inout) :: zaxisname_dummy character(kind = c_char) :: zaxisname_temp(len(zaxisname_dummy) + 1) integer :: zaxisname_i interface subroutine lib_zaxisName(zaxistype_dummy, zaxisname_dummy) bind(c, name =& & 'zaxisName') import c_char, c_int integer(c_int), value :: zaxistype_dummy character(kind = c_char) :: zaxisname_dummy(*) end subroutine lib_zaxisName end interface zaxisname_temp(len(zaxisname_dummy) + 1) = c_null_char do zaxisname_i = len(zaxisname_dummy), 1, -1 if(zaxisname_dummy(zaxisname_i:zaxisname_i) /= ' ') exit zaxisname_temp(zaxisname_i) = c_null_char end do do zaxisname_i = zaxisname_i, 1, -1 zaxisname_temp(zaxisname_i) = zaxisname_dummy(zaxisname_i:zaxisname_i) end do call lib_zaxisName(zaxistype_dummy, zaxisname_temp) do zaxisname_i = 1, len(zaxisname_dummy) if(zaxisname_temp(zaxisname_i) == c_null_char) exit zaxisname_dummy(zaxisname_i:zaxisname_i) = zaxisname_temp(zaxisname_i) end do do zaxisname_i = zaxisname_i, len(zaxisname_dummy) zaxisname_dummy(zaxisname_i:zaxisname_i) = ' ' end do end subroutine zaxisName function zaxisNamePtr(leveltype_dummy) result(f_result) character(kind = c_char), dimension(:), pointer :: f_result integer(c_int), value :: leveltype_dummy type(c_ptr) :: ptr integer :: rv_shape(1) interface function lib_zaxisNamePtr(leveltype_dummy) bind(c, name = 'zaxisNamePtr')& & result(c_result) import c_int, c_ptr type(c_ptr) :: c_result integer(c_int), value :: leveltype_dummy end function lib_zaxisNamePtr end interface f_result => null() ptr = lib_zaxisNamePtr(leveltype_dummy) if(c_associated(ptr)) then rv_shape(1) = int(lib_strlen(ptr)) call c_f_pointer(ptr, f_result, rv_shape) end if end function zaxisNamePtr subroutine zaxisDefName(zaxisID_dummy, name) integer(c_int), value :: zaxisID_dummy character(kind = c_char, len = *), optional, intent(in) :: name character(kind = c_char), allocatable, target :: name_temp(:) integer :: name_i type(c_ptr) :: name_cptr interface subroutine lib_zaxisDefName(zaxisID_dummy, name) bind(c, name =& & 'zaxisDefName') import c_int, c_ptr integer(c_int), value :: zaxisID_dummy type(c_ptr), value :: name end subroutine lib_zaxisDefName end interface if (present(name)) then allocate(name_temp(len(name) + 1)) name_temp(len(name) + 1) = c_null_char do name_i = len(name), 1, -1 if(name(name_i:name_i) /= ' ') exit name_temp(name_i) = c_null_char end do do name_i = name_i, 1, -1 name_temp(name_i) = name(name_i:name_i) end do name_cptr = c_loc(name_temp) else name_cptr = c_null_ptr end if call lib_zaxisDefName(zaxisID_dummy, name_cptr) end subroutine zaxisDefName subroutine zaxisInqName(zaxisID_dummy, name_dummy) integer(c_int), value :: zaxisID_dummy character(kind = c_char, len = *), intent(inout) :: name_dummy character(kind = c_char) :: name_temp(len(name_dummy) + 1) integer :: name_i interface subroutine lib_zaxisInqName(zaxisID_dummy, name_dummy) bind(c, name =& & 'zaxisInqName') import c_char, c_int integer(c_int), value :: zaxisID_dummy character(kind = c_char) :: name_dummy(*) end subroutine lib_zaxisInqName end interface name_temp(len(name_dummy) + 1) = c_null_char do name_i = len(name_dummy), 1, -1 if(name_dummy(name_i:name_i) /= ' ') exit name_temp(name_i) = c_null_char end do do name_i = name_i, 1, -1 name_temp(name_i) = name_dummy(name_i:name_i) end do call lib_zaxisInqName(zaxisID_dummy, name_temp) do name_i = 1, len(name_dummy) if(name_temp(name_i) == c_null_char) exit name_dummy(name_i:name_i) = name_temp(name_i) end do do name_i = name_i, len(name_dummy) name_dummy(name_i:name_i) = ' ' end do end subroutine zaxisInqName subroutine zaxisDefLongname(zaxisID_dummy, longname) integer(c_int), value :: zaxisID_dummy character(kind = c_char, len = *), optional, intent(in) :: longname character(kind = c_char), allocatable, target :: longname_temp(:) integer :: longname_i type(c_ptr) :: longname_cptr interface subroutine lib_zaxisDefLongname(zaxisID_dummy, longname) bind(c, name =& & 'zaxisDefLongname') import c_int, c_ptr integer(c_int), value :: zaxisID_dummy type(c_ptr), value :: longname end subroutine lib_zaxisDefLongname end interface if (present(longname)) then allocate(longname_temp(len(longname) + 1)) longname_temp(len(longname) + 1) = c_null_char do longname_i = len(longname), 1, -1 if(longname(longname_i:longname_i) /= ' ') exit longname_temp(longname_i) = c_null_char end do do longname_i = longname_i, 1, -1 longname_temp(longname_i) = longname(longname_i:longname_i) end do longname_cptr = c_loc(longname_temp) else longname_cptr = c_null_ptr end if call lib_zaxisDefLongname(zaxisID_dummy, longname_cptr) end subroutine zaxisDefLongname subroutine zaxisInqLongname(zaxisID_dummy, longname_dummy) integer(c_int), value :: zaxisID_dummy character(kind = c_char, len = *), intent(inout) :: longname_dummy character(kind = c_char) :: longname_temp(len(longname_dummy) + 1) integer :: longname_i interface subroutine lib_zaxisInqLongname(zaxisID_dummy, longname_dummy) bind(c,& & name = 'zaxisInqLongname') import c_char, c_int integer(c_int), value :: zaxisID_dummy character(kind = c_char) :: longname_dummy(*) end subroutine lib_zaxisInqLongname end interface longname_temp(len(longname_dummy) + 1) = c_null_char do longname_i = len(longname_dummy), 1, -1 if(longname_dummy(longname_i:longname_i) /= ' ') exit longname_temp(longname_i) = c_null_char end do do longname_i = longname_i, 1, -1 longname_temp(longname_i) = longname_dummy(longname_i:longname_i) end do call lib_zaxisInqLongname(zaxisID_dummy, longname_temp) do longname_i = 1, len(longname_dummy) if(longname_temp(longname_i) == c_null_char) exit longname_dummy(longname_i:longname_i) = longname_temp(longname_i) end do do longname_i = longname_i, len(longname_dummy) longname_dummy(longname_i:longname_i) = ' ' end do end subroutine zaxisInqLongname subroutine zaxisDefUnits(zaxisID_dummy, units) integer(c_int), value :: zaxisID_dummy character(kind = c_char, len = *), optional, intent(in) :: units character(kind = c_char), allocatable, target :: units_temp(:) integer :: units_i type(c_ptr) :: units_cptr interface subroutine lib_zaxisDefUnits(zaxisID_dummy, units) bind(c, name =& & 'zaxisDefUnits') import c_int, c_ptr integer(c_int), value :: zaxisID_dummy type(c_ptr), value :: units end subroutine lib_zaxisDefUnits end interface if (present(units)) then allocate(units_temp(len(units) + 1)) units_temp(len(units) + 1) = c_null_char do units_i = len(units), 1, -1 if(units(units_i:units_i) /= ' ') exit units_temp(units_i) = c_null_char end do do units_i = units_i, 1, -1 units_temp(units_i) = units(units_i:units_i) end do units_cptr = c_loc(units_temp) else units_cptr = c_null_ptr end if call lib_zaxisDefUnits(zaxisID_dummy, units_cptr) end subroutine zaxisDefUnits subroutine zaxisInqUnits(zaxisID_dummy, units_dummy) integer(c_int), value :: zaxisID_dummy character(kind = c_char, len = *), intent(inout) :: units_dummy character(kind = c_char) :: units_temp(len(units_dummy) + 1) integer :: units_i interface subroutine lib_zaxisInqUnits(zaxisID_dummy, units_dummy) bind(c, name =& & 'zaxisInqUnits') import c_char, c_int integer(c_int), value :: zaxisID_dummy character(kind = c_char) :: units_dummy(*) end subroutine lib_zaxisInqUnits end interface units_temp(len(units_dummy) + 1) = c_null_char do units_i = len(units_dummy), 1, -1 if(units_dummy(units_i:units_i) /= ' ') exit units_temp(units_i) = c_null_char end do do units_i = units_i, 1, -1 units_temp(units_i) = units_dummy(units_i:units_i) end do call lib_zaxisInqUnits(zaxisID_dummy, units_temp) do units_i = 1, len(units_dummy) if(units_temp(units_i) == c_null_char) exit units_dummy(units_i:units_i) = units_temp(units_i) end do do units_i = units_i, len(units_dummy) units_dummy(units_i:units_i) = ' ' end do end subroutine zaxisInqUnits subroutine zaxisInqStdname(zaxisID_dummy, stdname_dummy) integer(c_int), value :: zaxisID_dummy character(kind = c_char, len = *), intent(inout) :: stdname_dummy character(kind = c_char) :: stdname_temp(len(stdname_dummy) + 1) integer :: stdname_i interface subroutine lib_zaxisInqStdname(zaxisID_dummy, stdname_dummy) bind(c, name& & = 'zaxisInqStdname') import c_char, c_int integer(c_int), value :: zaxisID_dummy character(kind = c_char) :: stdname_dummy(*) end subroutine lib_zaxisInqStdname end interface stdname_temp(len(stdname_dummy) + 1) = c_null_char do stdname_i = len(stdname_dummy), 1, -1 if(stdname_dummy(stdname_i:stdname_i) /= ' ') exit stdname_temp(stdname_i) = c_null_char end do do stdname_i = stdname_i, 1, -1 stdname_temp(stdname_i) = stdname_dummy(stdname_i:stdname_i) end do call lib_zaxisInqStdname(zaxisID_dummy, stdname_temp) do stdname_i = 1, len(stdname_dummy) if(stdname_temp(stdname_i) == c_null_char) exit stdname_dummy(stdname_i:stdname_i) = stdname_temp(stdname_i) end do do stdname_i = stdname_i, len(stdname_dummy) stdname_dummy(stdname_i:stdname_i) = ' ' end do end subroutine zaxisInqStdname function zaxisInqLbounds(zaxisID_dummy, lbounds) result(f_result) integer(c_int) :: f_result integer(c_int), value :: zaxisID_dummy real(c_double), target, optional, intent(inout) :: lbounds(*) type(c_ptr) :: lbounds_cptr interface function lib_zaxisInqLbounds(zaxisID_dummy, lbounds) bind(c, name =& & 'zaxisInqLbounds') result(c_result) import c_int, c_ptr integer(c_int) :: c_result integer(c_int), value :: zaxisID_dummy type(c_ptr), value :: lbounds end function lib_zaxisInqLbounds end interface lbounds_cptr = c_null_ptr if(present(lbounds)) lbounds_cptr = c_loc(lbounds) f_result = lib_zaxisInqLbounds(zaxisID_dummy, lbounds_cptr) end function zaxisInqLbounds function zaxisInqUbounds(zaxisID_dummy, ubounds) result(f_result) integer(c_int) :: f_result integer(c_int), value :: zaxisID_dummy real(c_double), target, optional, intent(inout) :: ubounds(*) type(c_ptr) :: ubounds_cptr interface function lib_zaxisInqUbounds(zaxisID_dummy, ubounds) bind(c, name =& & 'zaxisInqUbounds') result(c_result) import c_int, c_ptr integer(c_int) :: c_result integer(c_int), value :: zaxisID_dummy type(c_ptr), value :: ubounds end function lib_zaxisInqUbounds end interface ubounds_cptr = c_null_ptr if(present(ubounds)) ubounds_cptr = c_loc(ubounds) f_result = lib_zaxisInqUbounds(zaxisID_dummy, ubounds_cptr) end function zaxisInqUbounds function zaxisInqWeights(zaxisID_dummy, weights) result(f_result) integer(c_int) :: f_result integer(c_int), value :: zaxisID_dummy real(c_double), target, optional, intent(inout) :: weights(*) type(c_ptr) :: weights_cptr interface function lib_zaxisInqWeights(zaxisID_dummy, weights) bind(c, name =& & 'zaxisInqWeights') result(c_result) import c_int, c_ptr integer(c_int) :: c_result integer(c_int), value :: zaxisID_dummy type(c_ptr), value :: weights end function lib_zaxisInqWeights end interface weights_cptr = c_null_ptr if(present(weights)) weights_cptr = c_loc(weights) f_result = lib_zaxisInqWeights(zaxisID_dummy, weights_cptr) end function zaxisInqWeights function tunitNamePtr(tunitID_dummy) result(f_result) character(kind = c_char), dimension(:), pointer :: f_result integer(c_int), value :: tunitID_dummy type(c_ptr) :: ptr integer :: rv_shape(1) interface function lib_tunitNamePtr(tunitID_dummy) bind(c, name = 'tunitNamePtr')& & result(c_result) import c_int, c_ptr type(c_ptr) :: c_result integer(c_int), value :: tunitID_dummy end function lib_tunitNamePtr end interface f_result => null() ptr = lib_tunitNamePtr(tunitID_dummy) if(c_associated(ptr)) then rv_shape(1) = int(lib_strlen(ptr)) call c_f_pointer(ptr, f_result, rv_shape) end if end function tunitNamePtr function institutDef(center_dummy, subcenter_dummy, name_dummy,& & longname_dummy) result(f_result) integer(c_int) :: f_result integer(c_int), value :: center_dummy integer(c_int), value :: subcenter_dummy character(kind = c_char, len = *), intent(in) :: name_dummy character(kind = c_char, len = *), intent(in) :: longname_dummy character(kind = c_char) :: name_temp(len(name_dummy) + 1) integer :: name_i character(kind = c_char) :: longname_temp(len(longname_dummy) + 1) integer :: longname_i interface function lib_institutDef(center_dummy, subcenter_dummy, name_dummy,& & longname_dummy) bind(c, name = 'institutDef') result(c_result) import c_char, c_int integer(c_int) :: c_result integer(c_int), value :: center_dummy integer(c_int), value :: subcenter_dummy character(kind = c_char) :: name_dummy(*) character(kind = c_char) :: longname_dummy(*) end function lib_institutDef end interface do name_i = 1, len(name_dummy) name_temp(name_i) = name_dummy(name_i:name_i) end do name_temp(len(name_dummy) + 1) = c_null_char do longname_i = 1, len(longname_dummy) longname_temp(longname_i) = longname_dummy(longname_i:longname_i) end do longname_temp(len(longname_dummy) + 1) = c_null_char f_result = lib_institutDef(center_dummy, subcenter_dummy, name_temp,& & longname_temp) end function institutDef function institutInq(center_dummy, subcenter_dummy, name_dummy,& & longname_dummy) result(f_result) integer(c_int) :: f_result integer(c_int), value :: center_dummy integer(c_int), value :: subcenter_dummy character(kind = c_char, len = *), intent(in) :: name_dummy character(kind = c_char, len = *), intent(in) :: longname_dummy character(kind = c_char) :: name_temp(len(name_dummy) + 1) integer :: name_i character(kind = c_char) :: longname_temp(len(longname_dummy) + 1) integer :: longname_i interface function lib_institutInq(center_dummy, subcenter_dummy, name_dummy,& & longname_dummy) bind(c, name = 'institutInq') result(c_result) import c_char, c_int integer(c_int) :: c_result integer(c_int), value :: center_dummy integer(c_int), value :: subcenter_dummy character(kind = c_char) :: name_dummy(*) character(kind = c_char) :: longname_dummy(*) end function lib_institutInq end interface do name_i = 1, len(name_dummy) name_temp(name_i) = name_dummy(name_i:name_i) end do name_temp(len(name_dummy) + 1) = c_null_char do longname_i = 1, len(longname_dummy) longname_temp(longname_i) = longname_dummy(longname_i:longname_i) end do longname_temp(len(longname_dummy) + 1) = c_null_char f_result = lib_institutInq(center_dummy, subcenter_dummy, name_temp,& & longname_temp) end function institutInq function institutInqNamePtr(instID_dummy) result(f_result) character(kind = c_char), dimension(:), pointer :: f_result integer(c_int), value :: instID_dummy type(c_ptr) :: ptr integer :: rv_shape(1) interface function lib_institutInqNamePtr(instID_dummy) bind(c, name =& & 'institutInqNamePtr') result(c_result) import c_int, c_ptr type(c_ptr) :: c_result integer(c_int), value :: instID_dummy end function lib_institutInqNamePtr end interface f_result => null() ptr = lib_institutInqNamePtr(instID_dummy) if(c_associated(ptr)) then rv_shape(1) = int(lib_strlen(ptr)) call c_f_pointer(ptr, f_result, rv_shape) end if end function institutInqNamePtr function institutInqLongnamePtr(instID_dummy) result(f_result) character(kind = c_char), dimension(:), pointer :: f_result integer(c_int), value :: instID_dummy type(c_ptr) :: ptr integer :: rv_shape(1) interface function lib_institutInqLongnamePtr(instID_dummy) bind(c, name =& & 'institutInqLongnamePtr') result(c_result) import c_int, c_ptr type(c_ptr) :: c_result integer(c_int), value :: instID_dummy end function lib_institutInqLongnamePtr end interface f_result => null() ptr = lib_institutInqLongnamePtr(instID_dummy) if(c_associated(ptr)) then rv_shape(1) = int(lib_strlen(ptr)) call c_f_pointer(ptr, f_result, rv_shape) end if end function institutInqLongnamePtr function modelDef(instID_dummy, modelgribID_dummy, name_dummy)& & result(f_result) integer(c_int) :: f_result integer(c_int), value :: instID_dummy integer(c_int), value :: modelgribID_dummy character(kind = c_char, len = *), intent(in) :: name_dummy character(kind = c_char) :: name_temp(len(name_dummy) + 1) integer :: name_i interface function lib_modelDef(instID_dummy, modelgribID_dummy, name_dummy)& & bind(c, name = 'modelDef') result(c_result) import c_char, c_int integer(c_int) :: c_result integer(c_int), value :: instID_dummy integer(c_int), value :: modelgribID_dummy character(kind = c_char) :: name_dummy(*) end function lib_modelDef end interface do name_i = 1, len(name_dummy) name_temp(name_i) = name_dummy(name_i:name_i) end do name_temp(len(name_dummy) + 1) = c_null_char f_result = lib_modelDef(instID_dummy, modelgribID_dummy, name_temp) end function modelDef function modelInq(instID_dummy, modelgribID_dummy, name_dummy)& & result(f_result) integer(c_int) :: f_result integer(c_int), value :: instID_dummy integer(c_int), value :: modelgribID_dummy character(kind = c_char, len = *), intent(in) :: name_dummy character(kind = c_char) :: name_temp(len(name_dummy) + 1) integer :: name_i interface function lib_modelInq(instID_dummy, modelgribID_dummy, name_dummy)& & bind(c, name = 'modelInq') result(c_result) import c_char, c_int integer(c_int) :: c_result integer(c_int), value :: instID_dummy integer(c_int), value :: modelgribID_dummy character(kind = c_char) :: name_dummy(*) end function lib_modelInq end interface do name_i = 1, len(name_dummy) name_temp(name_i) = name_dummy(name_i:name_i) end do name_temp(len(name_dummy) + 1) = c_null_char f_result = lib_modelInq(instID_dummy, modelgribID_dummy, name_temp) end function modelInq function modelInqNamePtr(modelID_dummy) result(f_result) character(kind = c_char), dimension(:), pointer :: f_result integer(c_int), value :: modelID_dummy type(c_ptr) :: ptr integer :: rv_shape(1) interface function lib_modelInqNamePtr(modelID_dummy) bind(c, name =& & 'modelInqNamePtr') result(c_result) import c_int, c_ptr type(c_ptr) :: c_result integer(c_int), value :: modelID_dummy end function lib_modelInqNamePtr end interface f_result => null() ptr = lib_modelInqNamePtr(modelID_dummy) if(c_associated(ptr)) then rv_shape(1) = int(lib_strlen(ptr)) call c_f_pointer(ptr, f_result, rv_shape) end if end function modelInqNamePtr subroutine tableWrite(filename_dummy, tableID_dummy) character(kind = c_char, len = *), intent(in) :: filename_dummy integer(c_int), value :: tableID_dummy character(kind = c_char) :: filename_temp(len(filename_dummy) + 1) integer :: filename_i interface subroutine lib_tableWrite(filename_dummy, tableID_dummy) bind(c, name =& & 'tableWrite') import c_char, c_int character(kind = c_char) :: filename_dummy(*) integer(c_int), value :: tableID_dummy end subroutine lib_tableWrite end interface do filename_i = 1, len(filename_dummy) filename_temp(filename_i) = filename_dummy(filename_i:filename_i) end do filename_temp(len(filename_dummy) + 1) = c_null_char call lib_tableWrite(filename_temp, tableID_dummy) end subroutine tableWrite function tableRead(tablefile_dummy) result(f_result) integer(c_int) :: f_result character(kind = c_char, len = *), intent(in) :: tablefile_dummy character(kind = c_char) :: tablefile_temp(len(tablefile_dummy) + 1) integer :: tablefile_i interface function lib_tableRead(tablefile_dummy) bind(c, name = 'tableRead')& & result(c_result) import c_char, c_int integer(c_int) :: c_result character(kind = c_char) :: tablefile_dummy(*) end function lib_tableRead end interface do tablefile_i = 1, len(tablefile_dummy) tablefile_temp(tablefile_i) = tablefile_dummy(tablefile_i:tablefile_i) end do tablefile_temp(len(tablefile_dummy) + 1) = c_null_char f_result = lib_tableRead(tablefile_temp) end function tableRead function tableDef(modelID_dummy, tablenum_dummy, tablename_dummy)& & result(f_result) integer(c_int) :: f_result integer(c_int), value :: modelID_dummy integer(c_int), value :: tablenum_dummy character(kind = c_char, len = *), intent(in) :: tablename_dummy character(kind = c_char) :: tablename_temp(len(tablename_dummy) + 1) integer :: tablename_i interface function lib_tableDef(modelID_dummy, tablenum_dummy, tablename_dummy)& & bind(c, name = 'tableDef') result(c_result) import c_char, c_int integer(c_int) :: c_result integer(c_int), value :: modelID_dummy integer(c_int), value :: tablenum_dummy character(kind = c_char) :: tablename_dummy(*) end function lib_tableDef end interface do tablename_i = 1, len(tablename_dummy) tablename_temp(tablename_i) = tablename_dummy(tablename_i:tablename_i) end do tablename_temp(len(tablename_dummy) + 1) = c_null_char f_result = lib_tableDef(modelID_dummy, tablenum_dummy, tablename_temp) end function tableDef function tableInqNamePtr(tableID_dummy) result(f_result) character(kind = c_char), dimension(:), pointer :: f_result integer(c_int), value :: tableID_dummy type(c_ptr) :: ptr integer :: rv_shape(1) interface function lib_tableInqNamePtr(tableID_dummy) bind(c, name =& & 'tableInqNamePtr') result(c_result) import c_int, c_ptr type(c_ptr) :: c_result integer(c_int), value :: tableID_dummy end function lib_tableInqNamePtr end interface f_result => null() ptr = lib_tableInqNamePtr(tableID_dummy) if(c_associated(ptr)) then rv_shape(1) = int(lib_strlen(ptr)) call c_f_pointer(ptr, f_result, rv_shape) end if end function tableInqNamePtr function tableInq(modelID_dummy, tablenum_dummy, tablename_dummy)& & result(f_result) integer(c_int) :: f_result integer(c_int), value :: modelID_dummy integer(c_int), value :: tablenum_dummy character(kind = c_char, len = *), intent(in) :: tablename_dummy character(kind = c_char) :: tablename_temp(len(tablename_dummy) + 1) integer :: tablename_i interface function lib_tableInq(modelID_dummy, tablenum_dummy, tablename_dummy)& & bind(c, name = 'tableInq') result(c_result) import c_char, c_int integer(c_int) :: c_result integer(c_int), value :: modelID_dummy integer(c_int), value :: tablenum_dummy character(kind = c_char) :: tablename_dummy(*) end function lib_tableInq end interface do tablename_i = 1, len(tablename_dummy) tablename_temp(tablename_i) = tablename_dummy(tablename_i:tablename_i) end do tablename_temp(len(tablename_dummy) + 1) = c_null_char f_result = lib_tableInq(modelID_dummy, tablenum_dummy, tablename_temp) end function tableInq subroutine tableInqEntry(tableID_dummy, id_dummy, ltype_dummy, name_dummy,& & longname_dummy, units_dummy) integer(c_int), value :: tableID_dummy integer(c_int), value :: id_dummy integer(c_int), value :: ltype_dummy character(kind = c_char, len = *), intent(inout) :: name_dummy character(kind = c_char, len = *), intent(inout) :: longname_dummy character(kind = c_char, len = *), intent(inout) :: units_dummy character(kind = c_char) :: name_temp(len(name_dummy) + 1) integer :: name_i character(kind = c_char) :: longname_temp(len(longname_dummy) + 1) integer :: longname_i character(kind = c_char) :: units_temp(len(units_dummy) + 1) integer :: units_i interface subroutine lib_tableInqEntry(tableID_dummy, id_dummy, ltype_dummy,& & name_dummy, longname_dummy, units_dummy) bind(c, name =& & 'tableInqEntry') import c_char, c_int integer(c_int), value :: tableID_dummy integer(c_int), value :: id_dummy integer(c_int), value :: ltype_dummy character(kind = c_char) :: name_dummy(*) character(kind = c_char) :: longname_dummy(*) character(kind = c_char) :: units_dummy(*) end subroutine lib_tableInqEntry end interface name_temp(len(name_dummy) + 1) = c_null_char do name_i = len(name_dummy), 1, -1 if(name_dummy(name_i:name_i) /= ' ') exit name_temp(name_i) = c_null_char end do do name_i = name_i, 1, -1 name_temp(name_i) = name_dummy(name_i:name_i) end do longname_temp(len(longname_dummy) + 1) = c_null_char do longname_i = len(longname_dummy), 1, -1 if(longname_dummy(longname_i:longname_i) /= ' ') exit longname_temp(longname_i) = c_null_char end do do longname_i = longname_i, 1, -1 longname_temp(longname_i) = longname_dummy(longname_i:longname_i) end do units_temp(len(units_dummy) + 1) = c_null_char do units_i = len(units_dummy), 1, -1 if(units_dummy(units_i:units_i) /= ' ') exit units_temp(units_i) = c_null_char end do do units_i = units_i, 1, -1 units_temp(units_i) = units_dummy(units_i:units_i) end do call lib_tableInqEntry(tableID_dummy, id_dummy, ltype_dummy, name_temp,& & longname_temp, units_temp) do name_i = 1, len(name_dummy) if(name_temp(name_i) == c_null_char) exit name_dummy(name_i:name_i) = name_temp(name_i) end do do name_i = name_i, len(name_dummy) name_dummy(name_i:name_i) = ' ' end do do longname_i = 1, len(longname_dummy) if(longname_temp(longname_i) == c_null_char) exit longname_dummy(longname_i:longname_i) = longname_temp(longname_i) end do do longname_i = longname_i, len(longname_dummy) longname_dummy(longname_i:longname_i) = ' ' end do do units_i = 1, len(units_dummy) if(units_temp(units_i) == c_null_char) exit units_dummy(units_i:units_i) = units_temp(units_i) end do do units_i = units_i, len(units_dummy) units_dummy(units_i:units_i) = ' ' end do end subroutine tableInqEntry subroutine streamDefHistory(streamID_dummy, size_dummy, history_dummy) integer(c_int), value :: streamID_dummy integer(c_int), value :: size_dummy character(kind = c_char, len = *), intent(in) :: history_dummy character(kind = c_char) :: history_temp(len(history_dummy) + 1) integer :: history_i interface subroutine lib_streamDefHistory(streamID_dummy, size_dummy,& & history_dummy) bind(c, name = 'streamDefHistory') import c_char, c_int integer(c_int), value :: streamID_dummy integer(c_int), value :: size_dummy character(kind = c_char) :: history_dummy(*) end subroutine lib_streamDefHistory end interface do history_i = 1, len(history_dummy) history_temp(history_i) = history_dummy(history_i:history_i) end do history_temp(len(history_dummy) + 1) = c_null_char call lib_streamDefHistory(streamID_dummy, size_dummy, history_temp) end subroutine streamDefHistory subroutine streamInqHistoryString(streamID_dummy, history_dummy) integer(c_int), value :: streamID_dummy character(kind = c_char, len = *), intent(inout) :: history_dummy character(kind = c_char) :: history_temp(len(history_dummy) + 1) integer :: history_i interface subroutine lib_streamInqHistoryString(streamID_dummy, history_dummy)& & bind(c, name = 'streamInqHistoryString') import c_char, c_int integer(c_int), value :: streamID_dummy character(kind = c_char) :: history_dummy(*) end subroutine lib_streamInqHistoryString end interface history_temp(len(history_dummy) + 1) = c_null_char do history_i = len(history_dummy), 1, -1 if(history_dummy(history_i:history_i) /= ' ') exit history_temp(history_i) = c_null_char end do do history_i = history_i, 1, -1 history_temp(history_i) = history_dummy(history_i:history_i) end do call lib_streamInqHistoryString(streamID_dummy, history_temp) do history_i = 1, len(history_dummy) if(history_temp(history_i) == c_null_char) exit history_dummy(history_i:history_i) = history_temp(history_i) end do do history_i = history_i, len(history_dummy) history_dummy(history_i:history_i) = ' ' end do end subroutine streamInqHistoryString function subtypeInqAttribute(subtypeID_dummy, index_dummy, key_dummy,& & outValue_dummy) result(f_result) integer(c_int) :: f_result integer(c_int), value :: subtypeID_dummy integer(c_int), value :: index_dummy character(kind = c_char, len = *), intent(in) :: key_dummy integer(c_int), intent(inout) :: outValue_dummy character(kind = c_char) :: key_temp(len(key_dummy) + 1) integer :: key_i interface function lib_subtypeInqAttribute(subtypeID_dummy, index_dummy, key_dummy,& & outValue_dummy) bind(c, name = 'subtypeInqAttribute') result(c_result) import c_char, c_int integer(c_int) :: c_result integer(c_int), value :: subtypeID_dummy integer(c_int), value :: index_dummy character(kind = c_char) :: key_dummy(*) integer(c_int), intent(inout) :: outValue_dummy end function lib_subtypeInqAttribute end interface do key_i = 1, len(key_dummy) key_temp(key_i) = key_dummy(key_i:key_i) end do key_temp(len(key_dummy) + 1) = c_null_char f_result = lib_subtypeInqAttribute(subtypeID_dummy, index_dummy, key_temp,& & outValue_dummy) end function subtypeInqAttribute end module mo_cdi