! >>> 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_ESYSTEM = -10 integer(c_int), public, parameter :: CDI_EINVAL = -20 integer(c_int), public, parameter :: CDI_EUFTYPE = -21 integer(c_int), public, parameter :: CDI_ELIBNAVAIL = -22 integer(c_int), public, parameter :: CDI_EUFSTRUCT = -23 integer(c_int), public, parameter :: CDI_EUNC4 = -24 integer(c_int), public, parameter :: CDI_ELIMIT = -99 integer(c_int), public, parameter :: FILETYPE_UNDEF = -1 integer(c_int), public, parameter :: FILETYPE_GRB = 1 integer(c_int), public, parameter :: FILETYPE_GRB2 = 2 integer(c_int), public, parameter :: FILETYPE_NC = 3 integer(c_int), public, parameter :: FILETYPE_NC2 = 4 integer(c_int), public, parameter :: FILETYPE_NC4 = 5 integer(c_int), public, parameter :: FILETYPE_NC4C = 6 integer(c_int), public, parameter :: FILETYPE_SRV = 7 integer(c_int), public, parameter :: FILETYPE_EXT = 8 integer(c_int), public, parameter :: FILETYPE_IEG = 9 integer(c_int), public, parameter :: COMPRESS_NONE = 0 integer(c_int), public, parameter :: COMPRESS_SZIP = 1 integer(c_int), public, parameter :: COMPRESS_GZIP = 2 integer(c_int), public, parameter :: COMPRESS_BZIP2 = 3 integer(c_int), public, parameter :: COMPRESS_ZIP = 4 integer(c_int), public, parameter :: COMPRESS_JPEG = 5 integer(c_int), public, parameter :: DATATYPE_PACK = 0 integer(c_int), public, parameter :: DATATYPE_PACK1 = 1 integer(c_int), public, parameter :: DATATYPE_PACK2 = 2 integer(c_int), public, parameter :: DATATYPE_PACK3 = 3 integer(c_int), public, parameter :: DATATYPE_PACK4 = 4 integer(c_int), public, parameter :: DATATYPE_PACK5 = 5 integer(c_int), public, parameter :: DATATYPE_PACK6 = 6 integer(c_int), public, parameter :: DATATYPE_PACK7 = 7 integer(c_int), public, parameter :: DATATYPE_PACK8 = 8 integer(c_int), public, parameter :: DATATYPE_PACK9 = 9 integer(c_int), public, parameter :: DATATYPE_PACK10 = 10 integer(c_int), public, parameter :: DATATYPE_PACK11 = 11 integer(c_int), public, parameter :: DATATYPE_PACK12 = 12 integer(c_int), public, parameter :: DATATYPE_PACK13 = 13 integer(c_int), public, parameter :: DATATYPE_PACK14 = 14 integer(c_int), public, parameter :: DATATYPE_PACK15 = 15 integer(c_int), public, parameter :: DATATYPE_PACK16 = 16 integer(c_int), public, parameter :: DATATYPE_PACK17 = 17 integer(c_int), public, parameter :: DATATYPE_PACK18 = 18 integer(c_int), public, parameter :: DATATYPE_PACK19 = 19 integer(c_int), public, parameter :: DATATYPE_PACK20 = 20 integer(c_int), public, parameter :: DATATYPE_PACK21 = 21 integer(c_int), public, parameter :: DATATYPE_PACK22 = 22 integer(c_int), public, parameter :: DATATYPE_PACK23 = 23 integer(c_int), public, parameter :: DATATYPE_PACK24 = 24 integer(c_int), public, parameter :: DATATYPE_PACK25 = 25 integer(c_int), public, parameter :: DATATYPE_PACK26 = 26 integer(c_int), public, parameter :: DATATYPE_PACK27 = 27 integer(c_int), public, parameter :: DATATYPE_PACK28 = 28 integer(c_int), public, parameter :: DATATYPE_PACK29 = 29 integer(c_int), public, parameter :: DATATYPE_PACK30 = 30 integer(c_int), public, parameter :: DATATYPE_PACK31 = 31 integer(c_int), public, parameter :: DATATYPE_PACK32 = 32 integer(c_int), public, parameter :: DATATYPE_CPX32 = 64 integer(c_int), public, parameter :: DATATYPE_CPX64 = 128 integer(c_int), public, parameter :: DATATYPE_FLT32 = 132 integer(c_int), public, parameter :: DATATYPE_FLT64 = 164 integer(c_int), public, parameter :: DATATYPE_INT8 = 208 integer(c_int), public, parameter :: DATATYPE_INT16 = 216 integer(c_int), public, parameter :: DATATYPE_INT32 = 232 integer(c_int), public, parameter :: DATATYPE_UINT8 = 308 integer(c_int), public, parameter :: DATATYPE_UINT16 = 316 integer(c_int), public, parameter :: DATATYPE_UINT32 = 332 integer(c_int), public, parameter :: DATATYPE_INT = 251 integer(c_int), public, parameter :: DATATYPE_FLT = 252 integer(c_int), public, parameter :: DATATYPE_TXT = 253 integer(c_int), public, parameter :: DATATYPE_CPX = 254 integer(c_int), public, parameter :: DATATYPE_UCHAR = 255 integer(c_int), public, parameter :: DATATYPE_LONG = 256 integer(c_int), public, parameter :: CHUNK_AUTO = 1 integer(c_int), public, parameter :: CHUNK_GRID = 2 integer(c_int), public, parameter :: 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_LCC = 11 integer(c_int), public, parameter :: GRID_LCC2 = 12 integer(c_int), public, parameter :: GRID_LAEA = 13 integer(c_int), public, parameter :: GRID_SINUSOIDAL = 14 integer(c_int), public, parameter :: GRID_PROJECTION = 15 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 :: MAX_KV_PAIRS_MATCH = 10 integer(c_int), public, parameter :: TIME_CONSTANT = 0 integer(c_int), public, parameter :: TIME_VARIABLE = 1 integer(c_int), public, parameter :: TSTEP_CONSTANT = 0 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_RANGE = 11 integer(c_int), public, parameter :: TSTEP_INSTANT2 = 12 integer(c_int), public, parameter :: TSTEP_INSTANT3 = 13 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_PROLEPTIC = 1 integer(c_int), public, parameter :: CALENDAR_360DAYS = 2 integer(c_int), public, parameter :: CALENDAR_365DAYS = 3 integer(c_int), public, parameter :: CALENDAR_366DAYS = 4 integer(c_int), public, parameter :: CALENDAR_NONE = 5 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 :: 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 :: 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 :: 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_inqVTime public :: cdiIterator_inqLevelType public :: cdiIterator_inqLevel public :: cdiIterator_inqLevelUuid public :: cdiIterator_inqTile public :: cdiIterator_inqTileCount public :: cdiIterator_inqParam public :: cdiIterator_inqDatatype 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 :: 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 :: vlistDefVarTimaccu public :: vlistInqVarTimaccu public :: vlistDefVarTypeOfGeneratingProcess public :: vlistInqVarTypeOfGeneratingProcess public :: vlistDefVarProductDefinitionTemplate public :: vlistInqVarProductDefinitionTemplate public :: vlistInqVarSize public :: vlistDefIndex public :: vlistInqIndex public :: vlistDefFlag public :: vlistInqFlag public :: vlistFindVar public :: vlistFindLevel public :: vlistMergedVar public :: vlistMergedLevel public :: vlistDefVarEnsemble public :: vlistInqVarEnsemble public :: cdiClearAdditionalKeys public :: cdiDefAdditionalKey public :: vlistDefVarIntKey public :: vlistDefVarDblKey public :: vlistHasVarKey public :: vlistInqVarDblKey public :: vlistInqVarIntKey public :: vlistInqVarNamePtr public :: vlistInqVarLongnamePtr public :: vlistInqVarUnitsPtr public :: vlistInqNatts public :: vlistInqAtt public :: vlistDelAtt public :: vlistDefAttInt public :: vlistDefAttFlt public :: vlistDefAttTxt public :: vlistInqAttInt public :: vlistInqAttFlt public :: vlistInqAttTxt public :: gridName public :: gridNamePtr public :: gridCompress public :: gridDefMaskGME public :: gridInqMaskGME public :: gridDefMask public :: gridInqMask public :: gridPrint public :: gridCreate public :: gridDestroy public :: gridDuplicate public :: gridInqType public :: gridInqSize public :: gridDefXsize public :: gridInqXsize public :: gridDefYsize public :: gridInqYsize public :: gridDefNP public :: gridInqNP public :: gridDefXvals public :: gridInqXvals public :: gridDefYvals public :: gridInqYvals 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 :: gridDefPrec public :: gridInqPrec public :: gridInqXval public :: gridInqYval public :: gridInqXinc public :: gridInqYinc public :: gridIsCircular public :: gridIsRotated public :: gridDefXpole public :: gridInqXpole public :: gridDefYpole public :: gridInqYpole public :: gridDefAngle public :: gridInqAngle public :: gridInqTrunc public :: gridDefTrunc public :: gridDefGMEnd public :: gridInqGMEnd public :: gridDefGMEni public :: gridInqGMEni public :: gridDefGMEni2 public :: gridInqGMEni2 public :: gridDefGMEni3 public :: gridInqGMEni3 public :: gridDefNumber public :: gridInqNumber public :: gridDefPosition public :: gridInqPosition public :: gridDefReference public :: gridInqReference public :: gridDefUUID public :: gridInqUUID public :: gridDefLCC public :: gridInqLCC public :: gridDefLcc2 public :: gridInqLcc2 public :: gridDefLaea public :: gridInqLaea public :: gridDefArea public :: gridInqArea public :: gridHasArea public :: gridDefNvertex public :: gridInqNvertex public :: gridDefXbounds public :: gridInqXbounds public :: gridDefYbounds public :: gridInqYbounds public :: gridDefRowlon public :: gridInqRowlon public :: gridChangeType public :: gridDefComplexPacking public :: gridInqComplexPacking public :: zaxisName public :: zaxisCreate public :: zaxisDestroy public :: zaxisInqType public :: zaxisInqSize public :: zaxisDuplicate public :: zaxisResize public :: zaxisPrint public :: zaxisDefLevels public :: zaxisInqLevels 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 :: zaxisDefPsName public :: zaxisInqPsName public :: zaxisDefPrec public :: zaxisInqPrec public :: zaxisDefPositive public :: zaxisInqPositive public :: zaxisDefScalar public :: zaxisInqScalar public :: zaxisDefLtype public :: zaxisInqLtype public :: zaxisInqLevelsPtr 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 :: 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 :: 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 :: taxisInqType 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 :: tableWriteC public :: tableWrite public :: tableRead public :: tableDef public :: tableInqNamePtr public :: tableDefEntry public :: tableInq public :: tableInqNumber public :: tableInqNum public :: tableInqModel public :: tableInqPar public :: tableInqParCode public :: tableInqParName public :: tableInqParLongname public :: tableInqParUnits public :: tableInqParNamePtr public :: tableInqParLongnamePtr public :: tableInqParUnitsPtr 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 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 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 integer(c_int), 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 integer(c_int), value :: year_dummy integer(c_int), value :: month_dummy integer(c_int), value :: day_dummy integer(c_int) :: 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 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 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 integer(c_int), value :: streamID_dummy integer(c_int), value :: varID_dummy real(c_double), intent(in) :: data_dummy(*) integer(c_int), 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 integer(c_int), value :: streamID_dummy integer(c_int), value :: varID_dummy real(c_float), intent(in) :: data_dummy(*) integer(c_int), 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 integer(c_int), value :: streamID_dummy integer(c_int), value :: varID_dummy real(c_double), intent(inout) :: data_dummy(*) integer(c_int), 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 integer(c_int), value :: streamID_dummy integer(c_int), value :: varID_dummy real(c_float), intent(inout) :: data_dummy(*) integer(c_int), 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 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_int), 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 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_int), 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 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_int), 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 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_int), 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 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_int), 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 integer(c_int), value :: streamID_dummy real(c_double), intent(in) :: data_dummy(*) integer(c_int), value :: nmiss_dummy end subroutine streamWriteRecord subroutine streamWriteRecordF(streamID_dummy, data_dummy, nmiss_dummy)& & bind(c, name = 'streamWriteRecordF') import c_float, c_int integer(c_int), value :: streamID_dummy real(c_float), intent(in) :: data_dummy(*) integer(c_int), value :: nmiss_dummy end subroutine streamWriteRecordF subroutine streamReadRecord(streamID_dummy, data_dummy, nmiss_dummy)& & bind(c, name = 'streamReadRecord') import c_double, c_int integer(c_int), value :: streamID_dummy real(c_double), intent(inout) :: data_dummy(*) integer(c_int), intent(inout) :: nmiss_dummy end subroutine streamReadRecord subroutine streamReadRecordF(streamID_dummy, data_dummy, nmiss_dummy)& & bind(c, name = 'streamReadRecordF') import c_float, c_int integer(c_int), value :: streamID_dummy real(c_float), intent(inout) :: data_dummy(*) integer(c_int), 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 integer(c_int), value :: vlistID_dummy integer(c_int) :: 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,& & tsteptype_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 :: tsteptype_dummy integer(c_int), value :: tilesetID_dummy integer(c_int) :: f_result end function vlistDefVarTiles function vlistDefVar(vlistID_dummy, gridID_dummy, zaxisID_dummy,& & tsteptype_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 :: tsteptype_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, tsteptype_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) :: tsteptype_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 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 subroutine vlistDefVarTimaccu(vlistID_dummy, varID_dummy, timaccu_dummy)& & bind(c, name = 'vlistDefVarTimaccu') import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int), value :: timaccu_dummy end subroutine vlistDefVarTimaccu function vlistInqVarTimaccu(vlistID_dummy, varID_dummy) bind(c, name =& & 'vlistInqVarTimaccu') 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 vlistInqVarTimaccu subroutine vlistDefVarTypeOfGeneratingProcess(vlistID_dummy, varID_dummy,& & typeOfGeneratingProcess_dummy) bind(c, name =& & 'vlistDefVarTypeOfGeneratingProcess') import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int), value :: typeOfGeneratingProcess_dummy end subroutine vlistDefVarTypeOfGeneratingProcess function vlistInqVarTypeOfGeneratingProcess(vlistID_dummy, varID_dummy)& & bind(c, name = 'vlistInqVarTypeOfGeneratingProcess') 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 vlistInqVarTypeOfGeneratingProcess subroutine vlistDefVarProductDefinitionTemplate(vlistID_dummy, varID_dummy,& & productDefinitionTemplate_dummy) bind(c, name =& & 'vlistDefVarProductDefinitionTemplate') import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int), value :: productDefinitionTemplate_dummy end subroutine vlistDefVarProductDefinitionTemplate function vlistInqVarProductDefinitionTemplate(vlistID_dummy, varID_dummy)& & bind(c, name = 'vlistInqVarProductDefinitionTemplate') 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 vlistInqVarProductDefinitionTemplate function vlistInqVarSize(vlistID_dummy, varID_dummy) bind(c, name =& & 'vlistInqVarSize') 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 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 vlistDefVarEnsemble(vlistID_dummy, varID_dummy, ensID_dummy,& & ensCount_dummy, forecast_type_dummy) bind(c, name =& & 'vlistDefVarEnsemble') import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int), value :: ensID_dummy integer(c_int), value :: ensCount_dummy integer(c_int), value :: forecast_type_dummy end subroutine vlistDefVarEnsemble function vlistInqVarEnsemble(vlistID_dummy, varID_dummy, ensID_dummy,& & ensCount_dummy, forecast_type_dummy) bind(c, name =& & 'vlistInqVarEnsemble') result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int), intent(inout) :: ensID_dummy integer(c_int), intent(inout) :: ensCount_dummy integer(c_int), intent(inout) :: forecast_type_dummy integer(c_int) :: f_result end function vlistInqVarEnsemble subroutine cdiClearAdditionalKeys() bind(c, name =& & 'cdiClearAdditionalKeys') end subroutine cdiClearAdditionalKeys function vlistInqNatts(vlistID_dummy, varID_dummy, nattsp_dummy) bind(c,& & name = 'vlistInqNatts') result(f_result) import c_int integer(c_int), value :: vlistID_dummy integer(c_int), value :: varID_dummy integer(c_int), intent(inout) :: nattsp_dummy integer(c_int) :: f_result end function vlistInqNatts 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 subroutine gridPrint(gridID_dummy, index_dummy, opt_dummy) bind(c, name =& & 'gridPrint') import c_int integer(c_int), value :: gridID_dummy integer(c_int), value :: index_dummy integer(c_int), value :: opt_dummy end subroutine gridPrint function gridCreate(gridtype_dummy, size_dummy) bind(c, name =& & 'gridCreate') result(f_result) import c_int integer(c_int), value :: gridtype_dummy integer(c_int), 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 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 integer(c_int), value :: gridID_dummy integer(c_int) :: f_result end function gridInqSize subroutine gridDefXsize(gridID_dummy, xsize_dummy) bind(c, name =& & 'gridDefXsize') import c_int integer(c_int), value :: gridID_dummy integer(c_int), value :: xsize_dummy end subroutine gridDefXsize function gridInqXsize(gridID_dummy) bind(c, name = 'gridInqXsize')& & result(f_result) import c_int integer(c_int), value :: gridID_dummy integer(c_int) :: f_result end function gridInqXsize subroutine gridDefYsize(gridID_dummy, ysize_dummy) bind(c, name =& & 'gridDefYsize') import c_int integer(c_int), value :: gridID_dummy integer(c_int), value :: ysize_dummy end subroutine gridDefYsize function gridInqYsize(gridID_dummy) bind(c, name = 'gridInqYsize')& & result(f_result) import c_int integer(c_int), value :: gridID_dummy integer(c_int) :: 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 integer(c_int), value :: gridID_dummy real(c_double), intent(inout) :: xvals_dummy(*) integer(c_int) :: f_result end function gridInqXvals 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 integer(c_int), value :: gridID_dummy real(c_double), intent(inout) :: yvals_dummy(*) integer(c_int) :: f_result end function gridInqYvals subroutine gridDefPrec(gridID_dummy, prec_dummy) bind(c, name =& & 'gridDefPrec') import c_int integer(c_int), value :: gridID_dummy integer(c_int), value :: prec_dummy end subroutine gridDefPrec function gridInqPrec(gridID_dummy) bind(c, name = 'gridInqPrec')& & result(f_result) import c_int integer(c_int), value :: gridID_dummy integer(c_int) :: f_result end function gridInqPrec function gridInqXval(gridID_dummy, index_dummy) bind(c, name =& & 'gridInqXval') result(f_result) import c_double, c_int integer(c_int), value :: gridID_dummy integer(c_int), 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 integer(c_int), value :: gridID_dummy integer(c_int), 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 gridIsRotated(gridID_dummy) bind(c, name = 'gridIsRotated')& & result(f_result) import c_int integer(c_int), value :: gridID_dummy integer(c_int) :: f_result end function gridIsRotated subroutine gridDefXpole(gridID_dummy, xpole_dummy) bind(c, name =& & 'gridDefXpole') import c_double, c_int integer(c_int), value :: gridID_dummy real(c_double), value :: xpole_dummy end subroutine gridDefXpole function gridInqXpole(gridID_dummy) bind(c, name = 'gridInqXpole')& & result(f_result) import c_double, c_int integer(c_int), value :: gridID_dummy real(c_double) :: f_result end function gridInqXpole subroutine gridDefYpole(gridID_dummy, ypole_dummy) bind(c, name =& & 'gridDefYpole') import c_double, c_int integer(c_int), value :: gridID_dummy real(c_double), value :: ypole_dummy end subroutine gridDefYpole function gridInqYpole(gridID_dummy) bind(c, name = 'gridInqYpole')& & result(f_result) import c_double, c_int integer(c_int), value :: gridID_dummy real(c_double) :: f_result end function gridInqYpole subroutine gridDefAngle(gridID_dummy, angle_dummy) bind(c, name =& & 'gridDefAngle') import c_double, c_int integer(c_int), value :: gridID_dummy real(c_double), value :: angle_dummy end subroutine gridDefAngle function gridInqAngle(gridID_dummy) bind(c, name = 'gridInqAngle')& & result(f_result) import c_double, c_int integer(c_int), value :: gridID_dummy real(c_double) :: f_result end function gridInqAngle 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 gridDefGMEnd(gridID_dummy, nd_dummy) bind(c, name =& & 'gridDefGMEnd') import c_int integer(c_int), value :: gridID_dummy integer(c_int), value :: nd_dummy end subroutine gridDefGMEnd function gridInqGMEnd(gridID_dummy) bind(c, name = 'gridInqGMEnd')& & result(f_result) import c_int integer(c_int), value :: gridID_dummy integer(c_int) :: f_result end function gridInqGMEnd subroutine gridDefGMEni(gridID_dummy, ni_dummy) bind(c, name =& & 'gridDefGMEni') import c_int integer(c_int), value :: gridID_dummy integer(c_int), value :: ni_dummy end subroutine gridDefGMEni function gridInqGMEni(gridID_dummy) bind(c, name = 'gridInqGMEni')& & result(f_result) import c_int integer(c_int), value :: gridID_dummy integer(c_int) :: f_result end function gridInqGMEni subroutine gridDefGMEni2(gridID_dummy, ni2_dummy) bind(c, name =& & 'gridDefGMEni2') import c_int integer(c_int), value :: gridID_dummy integer(c_int), value :: ni2_dummy end subroutine gridDefGMEni2 function gridInqGMEni2(gridID_dummy) bind(c, name = 'gridInqGMEni2')& & result(f_result) import c_int integer(c_int), value :: gridID_dummy integer(c_int) :: f_result end function gridInqGMEni2 subroutine gridDefGMEni3(gridID_dummy, ni3_dummy) bind(c, name =& & 'gridDefGMEni3') import c_int integer(c_int), value :: gridID_dummy integer(c_int), value :: ni3_dummy end subroutine gridDefGMEni3 function gridInqGMEni3(gridID_dummy) bind(c, name = 'gridInqGMEni3')& & result(f_result) import c_int integer(c_int), value :: gridID_dummy integer(c_int) :: f_result end function gridInqGMEni3 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 gridDefLCC(gridID_dummy, originLon_dummy, originLat_dummy,& & lonParY_dummy, lat1_dummy, lat2_dummy, xinc_dummy, yinc_dummy,& & projflag_dummy, scanflag_dummy) bind(c, name = 'gridDefLCC') import c_double, c_int integer(c_int), value :: gridID_dummy real(c_double), value :: originLon_dummy real(c_double), value :: originLat_dummy real(c_double), value :: lonParY_dummy real(c_double), value :: lat1_dummy real(c_double), value :: lat2_dummy real(c_double), value :: xinc_dummy real(c_double), value :: yinc_dummy integer(c_int), value :: projflag_dummy integer(c_int), value :: scanflag_dummy end subroutine gridDefLCC subroutine gridInqLCC(gridID_dummy, originLon_dummy, originLat_dummy,& & lonParY_dummy, lat1_dummy, lat2_dummy, xinc_dummy, yinc_dummy,& & projflag_dummy, scanflag_dummy) bind(c, name = 'gridInqLCC') import c_double, c_int integer(c_int), value :: gridID_dummy real(c_double), intent(inout) :: originLon_dummy real(c_double), intent(inout) :: originLat_dummy real(c_double), intent(inout) :: lonParY_dummy real(c_double), intent(inout) :: lat1_dummy real(c_double), intent(inout) :: lat2_dummy real(c_double), intent(inout) :: xinc_dummy real(c_double), intent(inout) :: yinc_dummy integer(c_int), intent(inout) :: projflag_dummy integer(c_int), intent(inout) :: scanflag_dummy end subroutine gridInqLCC subroutine gridDefLcc2(gridID_dummy, earth_radius_dummy, lon_0_dummy,& & lat_0_dummy, lat_1_dummy, lat_2_dummy) bind(c, name = 'gridDefLcc2') import c_double, c_int integer(c_int), value :: gridID_dummy real(c_double), value :: earth_radius_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 end subroutine gridDefLcc2 subroutine gridInqLcc2(gridID_dummy, earth_radius_dummy, lon_0_dummy,& & lat_0_dummy, lat_1_dummy, lat_2_dummy) bind(c, name = 'gridInqLcc2') import c_double, c_int integer(c_int), value :: gridID_dummy real(c_double), intent(inout) :: earth_radius_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 end subroutine gridInqLcc2 subroutine gridDefLaea(gridID_dummy, earth_radius_dummy, lon_0_dummy,& & lat_0_dummy) bind(c, name = 'gridDefLaea') import c_double, c_int integer(c_int), value :: gridID_dummy real(c_double), value :: earth_radius_dummy real(c_double), value :: lon_0_dummy real(c_double), value :: lat_0_dummy end subroutine gridDefLaea subroutine gridInqLaea(gridID_dummy, earth_radius_dummy, lon_0_dummy,& & lat_0_dummy) bind(c, name = 'gridInqLaea') import c_double, c_int integer(c_int), value :: gridID_dummy real(c_double), intent(inout) :: earth_radius_dummy real(c_double), intent(inout) :: lon_0_dummy real(c_double), intent(inout) :: lat_0_dummy end subroutine gridInqLaea 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 integer(c_int), value :: gridID_dummy real(c_double), intent(inout) :: xbounds_dummy(*) integer(c_int) :: f_result end function gridInqXbounds 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 integer(c_int), value :: gridID_dummy real(c_double), intent(inout) :: ybounds_dummy(*) integer(c_int) :: f_result end function gridInqYbounds subroutine gridDefRowlon(gridID_dummy, nrowlon_dummy, rowlon_dummy) bind(c,& & name = 'gridDefRowlon') import c_int integer(c_int), value :: gridID_dummy integer(c_int), value :: nrowlon_dummy integer(c_int), intent(in) :: rowlon_dummy(*) end subroutine gridDefRowlon subroutine gridInqRowlon(gridID_dummy, rowlon_dummy) bind(c, name =& & 'gridInqRowlon') import c_int integer(c_int), value :: gridID_dummy integer(c_int), intent(inout) :: rowlon_dummy(*) end subroutine gridInqRowlon 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 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 zaxisResize(zaxisID_dummy, size_dummy) bind(c, name =& & 'zaxisResize') import c_int integer(c_int), value :: zaxisID_dummy integer(c_int), value :: size_dummy end subroutine zaxisResize subroutine zaxisPrint(zaxisID_dummy, index_dummy) bind(c, name =& & 'zaxisPrint') import c_int integer(c_int), value :: zaxisID_dummy integer(c_int), value :: index_dummy end subroutine zaxisPrint 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 subroutine zaxisInqLevels(zaxisID_dummy, levels_dummy) bind(c, name =& & 'zaxisInqLevels') import c_double, c_int integer(c_int), value :: zaxisID_dummy real(c_double), intent(inout) :: levels_dummy(*) end subroutine zaxisInqLevels 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 zaxisDefPrec(zaxisID_dummy, prec_dummy) bind(c, name =& & 'zaxisDefPrec') import c_int integer(c_int), value :: zaxisID_dummy integer(c_int), value :: prec_dummy end subroutine zaxisDefPrec function zaxisInqPrec(zaxisID_dummy) bind(c, name = 'zaxisInqPrec')& & result(f_result) import c_int integer(c_int), value :: zaxisID_dummy integer(c_int) :: f_result end function zaxisInqPrec 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 function zaxisInqLevelsPtr(zaxisID_dummy) bind(c, name =& & 'zaxisInqLevelsPtr') result(f_result) import c_int, c_ptr integer(c_int), value :: zaxisID_dummy type(c_ptr) :: f_result end function zaxisInqLevelsPtr 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(timetype_dummy) bind(c, name = 'taxisCreate')& & result(f_result) import c_int integer(c_int), value :: timetype_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, type_dummy) bind(c, name =& & 'taxisDefType') import c_int integer(c_int), value :: taxisID_dummy integer(c_int), value :: type_dummy end subroutine taxisDefType subroutine taxisDefVdate(taxisID_dummy, date_dummy) bind(c, name =& & 'taxisDefVdate') import c_int integer(c_int), value :: taxisID_dummy integer(c_int), 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 integer(c_int), value :: taxisID_dummy integer(c_int) :: 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 integer(c_int), value :: taxisID_dummy integer(c_int), 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 integer(c_int), value :: taxisID_dummy integer(c_int) :: 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 integer(c_int), value :: taxisID_dummy integer(c_int), 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 integer(c_int), value :: taxisID_dummy integer(c_int) :: 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 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 integer(c_int), value :: taxisID_dummy integer(c_int), value :: vdate_lb_dummy integer(c_int), 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 integer(c_int), value :: taxisID_dummy integer(c_int), intent(inout) :: vdate_lb_dummy integer(c_int), 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 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 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 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_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 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_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 vlistInqVarNamePtr(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) :: ptr integer :: rv_shape(1) interface function lib_vlistInqVarNamePtr(vlistID_dummy, varID_dummy) bind(c, name& & = 'vlistInqVarNamePtr') 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_vlistInqVarNamePtr end interface f_result => null() ptr = lib_vlistInqVarNamePtr(vlistID_dummy, varID_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 vlistInqVarNamePtr function vlistInqVarLongnamePtr(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) :: ptr integer :: rv_shape(1) interface function lib_vlistInqVarLongnamePtr(vlistID_dummy, varID_dummy) bind(c,& & name = 'vlistInqVarLongnamePtr') 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_vlistInqVarLongnamePtr end interface f_result => null() ptr = lib_vlistInqVarLongnamePtr(vlistID_dummy, varID_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 vlistInqVarLongnamePtr function vlistInqVarUnitsPtr(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) :: ptr integer :: rv_shape(1) interface function lib_vlistInqVarUnitsPtr(vlistID_dummy, varID_dummy) bind(c, name& & = 'vlistInqVarUnitsPtr') 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_vlistInqVarUnitsPtr end interface f_result => null() ptr = lib_vlistInqVarUnitsPtr(vlistID_dummy, varID_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 vlistInqVarUnitsPtr function vlistInqAtt(vlistID_dummy, varID_dummy, attrnum_dummy, name_dummy,& & typep_dummy, lenp_dummy) result(f_result) integer(c_int) :: f_result integer(c_int), value :: vlistID_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_vlistInqAtt(vlistID_dummy, varID_dummy, attrnum_dummy,& & name_dummy, typep_dummy, lenp_dummy) bind(c, name = 'vlistInqAtt')& & 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 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_vlistInqAtt 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_vlistInqAtt(vlistID_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 vlistInqAtt function vlistDelAtt(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_vlistDelAtt(vlistID_dummy, varID_dummy, name_dummy) bind(c,& & name = 'vlistDelAtt') 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_vlistDelAtt 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_vlistDelAtt(vlistID_dummy, varID_dummy, name_temp) end function vlistDelAtt function vlistDefAttInt(vlistID_dummy, varID_dummy, name_dummy, type_dummy,& & len_dummy, ip_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 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_vlistDefAttInt(vlistID_dummy, varID_dummy, name_dummy,& & type_dummy, len_dummy, ip_dummy) bind(c, name = 'vlistDefAttInt')& & 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(*) integer(c_int), value :: type_dummy integer(c_int), value :: len_dummy integer(c_int), intent(in) :: ip_dummy(*) end function lib_vlistDefAttInt 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_vlistDefAttInt(vlistID_dummy, varID_dummy, name_temp,& & type_dummy, len_dummy, ip_dummy) end function vlistDefAttInt function vlistDefAttFlt(vlistID_dummy, varID_dummy, name_dummy, type_dummy,& & len_dummy, dp_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 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_vlistDefAttFlt(vlistID_dummy, varID_dummy, name_dummy,& & type_dummy, len_dummy, dp_dummy) bind(c, name = 'vlistDefAttFlt')& & result(c_result) import c_char, c_double, 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(*) integer(c_int), value :: type_dummy integer(c_int), value :: len_dummy real(c_double), intent(in) :: dp_dummy(*) end function lib_vlistDefAttFlt 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_vlistDefAttFlt(vlistID_dummy, varID_dummy, name_temp,& & type_dummy, len_dummy, dp_dummy) end function vlistDefAttFlt function vlistDefAttTxt(vlistID_dummy, varID_dummy, name_dummy, len_dummy,& & tp_cbuf_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 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_vlistDefAttTxt(vlistID_dummy, varID_dummy, name_dummy,& & len_dummy, tp_cbuf_dummy) bind(c, name = 'vlistDefAttTxt')& & 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(*) integer(c_int), value :: len_dummy character(kind = c_char) :: tp_cbuf_dummy(*) end function lib_vlistDefAttTxt 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_vlistDefAttTxt(vlistID_dummy, varID_dummy, name_temp,& & len_dummy, tp_cbuf_temp) end function vlistDefAttTxt function vlistInqAttInt(vlistID_dummy, varID_dummy, name_dummy, mlen_dummy,& & ip_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 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_vlistInqAttInt(vlistID_dummy, varID_dummy, name_dummy,& & mlen_dummy, ip_dummy) bind(c, name = 'vlistInqAttInt') 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(*) integer(c_int), value :: mlen_dummy integer(c_int), intent(inout) :: ip_dummy(*) end function lib_vlistInqAttInt 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_vlistInqAttInt(vlistID_dummy, varID_dummy, name_temp,& & mlen_dummy, ip_dummy) end function vlistInqAttInt function vlistInqAttFlt(vlistID_dummy, varID_dummy, name_dummy, mlen_dummy,& & dp_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 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_vlistInqAttFlt(vlistID_dummy, varID_dummy, name_dummy,& & mlen_dummy, dp_dummy) bind(c, name = 'vlistInqAttFlt') result(c_result) import c_char, c_double, 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(*) integer(c_int), value :: mlen_dummy real(c_double), intent(inout) :: dp_dummy(*) end function lib_vlistInqAttFlt 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_vlistInqAttFlt(vlistID_dummy, varID_dummy, name_temp,& & mlen_dummy, dp_dummy) end function vlistInqAttFlt function vlistInqAttTxt(vlistID_dummy, varID_dummy, name_dummy, mlen_dummy,& & tp_cbuf_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 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_vlistInqAttTxt(vlistID_dummy, varID_dummy, name_dummy,& & mlen_dummy, tp_cbuf_dummy) bind(c, name = 'vlistInqAttTxt')& & 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(*) integer(c_int), value :: mlen_dummy character(kind = c_char) :: tp_cbuf_dummy(*) end function lib_vlistInqAttTxt 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_vlistInqAttTxt(vlistID_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 vlistInqAttTxt 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 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 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 subroutine zaxisDefPsName(zaxisID_dummy, psname) integer(c_int), value :: zaxisID_dummy character(kind = c_char, len = *), optional, intent(in) :: psname character(kind = c_char), allocatable, target :: psname_temp(:) integer :: psname_i type(c_ptr) :: psname_cptr interface subroutine lib_zaxisDefPsName(zaxisID_dummy, psname) bind(c, name =& & 'zaxisDefPsName') import c_int, c_ptr integer(c_int), value :: zaxisID_dummy type(c_ptr), value :: psname end subroutine lib_zaxisDefPsName end interface if (present(psname)) then allocate(psname_temp(len(psname) + 1)) psname_temp(len(psname) + 1) = c_null_char do psname_i = len(psname), 1, -1 if(psname(psname_i:psname_i) /= ' ') exit psname_temp(psname_i) = c_null_char end do do psname_i = psname_i, 1, -1 psname_temp(psname_i) = psname(psname_i:psname_i) end do psname_cptr = c_loc(psname_temp) else psname_cptr = c_null_ptr end if call lib_zaxisDefPsName(zaxisID_dummy, psname_cptr) end subroutine zaxisDefPsName subroutine zaxisInqPsName(zaxisID_dummy, psname_dummy) integer(c_int), value :: zaxisID_dummy character(kind = c_char, len = *), intent(inout) :: psname_dummy character(kind = c_char) :: psname_temp(len(psname_dummy) + 1) integer :: psname_i interface subroutine lib_zaxisInqPsName(zaxisID_dummy, psname_dummy) bind(c, name =& & 'zaxisInqPsName') import c_char, c_int integer(c_int), value :: zaxisID_dummy character(kind = c_char) :: psname_dummy(*) end subroutine lib_zaxisInqPsName end interface psname_temp(len(psname_dummy) + 1) = c_null_char do psname_i = len(psname_dummy), 1, -1 if(psname_dummy(psname_i:psname_i) /= ' ') exit psname_temp(psname_i) = c_null_char end do do psname_i = psname_i, 1, -1 psname_temp(psname_i) = psname_dummy(psname_i:psname_i) end do call lib_zaxisInqPsName(zaxisID_dummy, psname_temp) do psname_i = 1, len(psname_dummy) if(psname_temp(psname_i) == c_null_char) exit psname_dummy(psname_i:psname_i) = psname_temp(psname_i) end do do psname_i = psname_i, len(psname_dummy) psname_dummy(psname_i:psname_i) = ' ' end do end subroutine zaxisInqPsName 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 tableWriteC(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_tableWriteC(filename_dummy, tableID_dummy) bind(c, name =& & 'tableWriteC') import c_char, c_int character(kind = c_char) :: filename_dummy(*) integer(c_int), value :: tableID_dummy end subroutine lib_tableWriteC 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_tableWriteC(filename_temp, tableID_dummy) end subroutine tableWriteC 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 subroutine tableDefEntry(tableID_dummy, code_dummy, name_dummy,& & longname_dummy, units_dummy) integer(c_int), value :: tableID_dummy integer(c_int), value :: code_dummy character(kind = c_char, len = *), intent(in) :: name_dummy character(kind = c_char, len = *), intent(in) :: longname_dummy character(kind = c_char, len = *), intent(in) :: 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_tableDefEntry(tableID_dummy, code_dummy, name_dummy,& & longname_dummy, units_dummy) bind(c, name = 'tableDefEntry') import c_char, c_int integer(c_int), value :: tableID_dummy integer(c_int), value :: code_dummy character(kind = c_char) :: name_dummy(*) character(kind = c_char) :: longname_dummy(*) character(kind = c_char) :: units_dummy(*) end subroutine lib_tableDefEntry 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 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_tableDefEntry(tableID_dummy, code_dummy, name_temp, longname_temp,& & units_temp) end subroutine tableDefEntry 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 tableInqPar(tableID_dummy, code_dummy, name_dummy, longname_dummy,& & units_dummy) integer(c_int), value :: tableID_dummy integer(c_int), value :: code_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_tableInqPar(tableID_dummy, code_dummy, name_dummy,& & longname_dummy, units_dummy) bind(c, name = 'tableInqPar') import c_char, c_int integer(c_int), value :: tableID_dummy integer(c_int), value :: code_dummy character(kind = c_char) :: name_dummy(*) character(kind = c_char) :: longname_dummy(*) character(kind = c_char) :: units_dummy(*) end subroutine lib_tableInqPar 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_tableInqPar(tableID_dummy, code_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 tableInqPar function tableInqParCode(tableID_dummy, name_dummy, code_dummy)& & result(f_result) integer(c_int) :: f_result integer(c_int), value :: tableID_dummy character(kind = c_char, len = *), intent(inout) :: name_dummy integer(c_int), intent(inout) :: code_dummy character(kind = c_char) :: name_temp(len(name_dummy) + 1) integer :: name_i interface function lib_tableInqParCode(tableID_dummy, name_dummy, code_dummy)& & bind(c, name = 'tableInqParCode') result(c_result) import c_char, c_int integer(c_int) :: c_result integer(c_int), value :: tableID_dummy character(kind = c_char) :: name_dummy(*) integer(c_int), intent(inout) :: code_dummy end function lib_tableInqParCode 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_tableInqParCode(tableID_dummy, name_temp, code_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 tableInqParCode function tableInqParName(tableID_dummy, code_dummy, name_dummy)& & result(f_result) integer(c_int) :: f_result integer(c_int), value :: tableID_dummy integer(c_int), value :: code_dummy character(kind = c_char, len = *), intent(inout) :: name_dummy character(kind = c_char) :: name_temp(len(name_dummy) + 1) integer :: name_i interface function lib_tableInqParName(tableID_dummy, code_dummy, name_dummy)& & bind(c, name = 'tableInqParName') result(c_result) import c_char, c_int integer(c_int) :: c_result integer(c_int), value :: tableID_dummy integer(c_int), value :: code_dummy character(kind = c_char) :: name_dummy(*) end function lib_tableInqParName 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_tableInqParName(tableID_dummy, code_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 function tableInqParName function tableInqParLongname(tableID_dummy, code_dummy, longname_dummy)& & result(f_result) integer(c_int) :: f_result integer(c_int), value :: tableID_dummy integer(c_int), value :: code_dummy character(kind = c_char, len = *), intent(inout) :: longname_dummy character(kind = c_char) :: longname_temp(len(longname_dummy) + 1) integer :: longname_i interface function lib_tableInqParLongname(tableID_dummy, code_dummy,& & longname_dummy) bind(c, name = 'tableInqParLongname') result(c_result) import c_char, c_int integer(c_int) :: c_result integer(c_int), value :: tableID_dummy integer(c_int), value :: code_dummy character(kind = c_char) :: longname_dummy(*) end function lib_tableInqParLongname 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 f_result = lib_tableInqParLongname(tableID_dummy, code_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 function tableInqParLongname function tableInqParUnits(tableID_dummy, code_dummy, units_dummy)& & result(f_result) integer(c_int) :: f_result integer(c_int), value :: tableID_dummy integer(c_int), value :: code_dummy character(kind = c_char, len = *), intent(inout) :: units_dummy character(kind = c_char) :: units_temp(len(units_dummy) + 1) integer :: units_i interface function lib_tableInqParUnits(tableID_dummy, code_dummy, units_dummy)& & bind(c, name = 'tableInqParUnits') result(c_result) import c_char, c_int integer(c_int) :: c_result integer(c_int), value :: tableID_dummy integer(c_int), value :: code_dummy character(kind = c_char) :: units_dummy(*) end function lib_tableInqParUnits 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 f_result = lib_tableInqParUnits(tableID_dummy, code_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 function tableInqParUnits function tableInqParNamePtr(tableID_dummy, parID_dummy) result(f_result) character(kind = c_char), dimension(:), pointer :: f_result integer(c_int), value :: tableID_dummy integer(c_int), value :: parID_dummy type(c_ptr) :: ptr integer :: rv_shape(1) interface function lib_tableInqParNamePtr(tableID_dummy, parID_dummy) bind(c, name& & = 'tableInqParNamePtr') result(c_result) import c_int, c_ptr type(c_ptr) :: c_result integer(c_int), value :: tableID_dummy integer(c_int), value :: parID_dummy end function lib_tableInqParNamePtr end interface f_result => null() ptr = lib_tableInqParNamePtr(tableID_dummy, parID_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 tableInqParNamePtr function tableInqParLongnamePtr(tableID_dummy, parID_dummy) result(f_result) character(kind = c_char), dimension(:), pointer :: f_result integer(c_int), value :: tableID_dummy integer(c_int), value :: parID_dummy type(c_ptr) :: ptr integer :: rv_shape(1) interface function lib_tableInqParLongnamePtr(tableID_dummy, parID_dummy) bind(c,& & name = 'tableInqParLongnamePtr') result(c_result) import c_int, c_ptr type(c_ptr) :: c_result integer(c_int), value :: tableID_dummy integer(c_int), value :: parID_dummy end function lib_tableInqParLongnamePtr end interface f_result => null() ptr = lib_tableInqParLongnamePtr(tableID_dummy, parID_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 tableInqParLongnamePtr function tableInqParUnitsPtr(tableID_dummy, parID_dummy) result(f_result) character(kind = c_char), dimension(:), pointer :: f_result integer(c_int), value :: tableID_dummy integer(c_int), value :: parID_dummy type(c_ptr) :: ptr integer :: rv_shape(1) interface function lib_tableInqParUnitsPtr(tableID_dummy, parID_dummy) bind(c, name& & = 'tableInqParUnitsPtr') result(c_result) import c_int, c_ptr type(c_ptr) :: c_result integer(c_int), value :: tableID_dummy integer(c_int), value :: parID_dummy end function lib_tableInqParUnitsPtr end interface f_result => null() ptr = lib_tableInqParUnitsPtr(tableID_dummy, parID_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 tableInqParUnitsPtr 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