!/*------------------------------------------------------------------------------ !* Standard Disclaimer !* !* Forecast Systems Laboratory !* NOAA/OAR/ERL/FSL !* 325 Broadway !* Boulder, CO 80303 !* !* AVIATION DIVISION !* ADVANCED COMPUTING BRANCH !* SMS/NNT Version: 2.0.0 !* !* This software and its documentation are in the public domain and !* are furnished "as is". The United States government, its !* instrumentalities, officers, employees, and agents make no !* warranty, express or implied, as to the usefulness of the software !* and documentation for any purpose. They assume no !* responsibility (1) for the use of the software and documentation; !* or (2) to provide technical support to users. !* !* Permission to use, copy, modify, and distribute this software is !* hereby granted, provided that this disclaimer notice appears in !* all copies. All modifications to this software must be clearly !* documented, and are solely the responsibility of the agent making !* the modification. If significant modifications or enhancements !* are made to this software, the SMS Development team !* (sms-info@fsl.noaa.gov) should be notified. !* !*---------------------------------------------------------------------------- !* !* WRF NetCDF I/O ! Author: Jacques Middlecoff jacquesm@fsl.noaa.gov !* Date: October 6, 2000 !* !*---------------------------------------------------------------------------- !*/ module wrf_data_pnc integer , parameter :: FATAL = 0 integer , parameter :: WARN = 0 integer , parameter :: WrfDataHandleMax = 99 integer , parameter :: MaxDims = 2000 ! = NF_MAX_VARS integer , parameter :: MaxVars = 3000 integer , parameter :: MaxTimes = 10000 integer , parameter :: DateStrLen = 19 integer , parameter :: VarNameLen = 31 integer , parameter :: NO_DIM = 0 integer , parameter :: NVarDims = 4 integer , parameter :: NMDVarDims = 2 character (8) , parameter :: NO_NAME = 'NULL' character (DateStrLen) , parameter :: ZeroDate = '0000-00-00-00:00:00' integer, parameter :: WRF_FILE_NOT_OPENED = 100 integer, parameter :: WRF_FILE_OPENED_NOT_COMMITTED = 101 integer, parameter :: WRF_FILE_OPENED_FOR_WRITE = 102 integer, parameter :: WRF_FILE_OPENED_FOR_READ = 103 integer, parameter :: WRF_REAL = 104 integer, parameter :: WRF_DOUBLE = 105 integer, parameter :: WRF_FLOAT=WRF_REAL integer, parameter :: WRF_INTEGER = 106 integer, parameter :: WRF_LOGICAL = 107 integer, parameter :: WRF_COMPLEX = 108 integer, parameter :: WRF_DOUBLE_COMPLEX = 109 integer, parameter :: WRF_FILE_OPENED_FOR_UPDATE = 110 ! This bit is for backwards compatibility with old variants of these flags ! that are still being used in io_grib1 and io_phdf5. It should be removed! integer, parameter :: WRF_FILE_OPENED_AND_COMMITTED = 102 character (256) :: msg logical :: WrfIOnotInitialized = .true. type :: wrf_data_handle character (255) :: FileName integer :: FileStatus integer :: Comm integer :: NCID logical :: Free logical :: Write character (5) :: TimesName integer :: TimeIndex integer :: CurrentTime !Only used for read integer :: NumberTimes !Only used for read character (DateStrLen), pointer :: Times(:) integer :: TimesVarID integer , pointer :: DimLengths(:) integer , pointer :: DimIDs(:) character (31) , pointer :: DimNames(:) integer :: DimUnlimID character (9) :: DimUnlimName integer , dimension(NVarDims) :: DimID integer , dimension(NVarDims) :: Dimension integer , pointer :: MDVarIDs(:) integer , pointer :: MDVarDimLens(:) character (80) , pointer :: MDVarNames(:) integer , pointer :: VarIDs(:) integer , pointer :: VarDimLens(:,:) character (VarNameLen), pointer :: VarNames(:) integer :: CurrentVariable !Only used for read integer :: NumVars ! first_operation is set to .TRUE. when a new handle is allocated ! or when open-for-write or open-for-read are committed. It is set ! to .FALSE. when the first field is read or written. logical :: first_operation ! Whether pnetcdf file is in collective (.true.) or independent mode ! Collective mode is the default. logical :: Collective end type wrf_data_handle type(wrf_data_handle),target :: WrfDataHandles(WrfDataHandleMax) end module wrf_data_pnc module ext_pnc_support_routines implicit none include 'mpif.h' CONTAINS integer(KIND=MPI_OFFSET_KIND) function i2offset(i) integer i i2offset = i return end function i2offset subroutine allocHandle(DataHandle,DH,Comm,Status) use wrf_data_pnc include 'wrf_status_codes.h' integer ,intent(out) :: DataHandle type(wrf_data_handle),pointer :: DH integer ,intent(IN) :: Comm integer ,intent(out) :: Status integer :: i integer :: stat do i=1,WrfDataHandleMax if(WrfDataHandles(i)%Free) then DH => WrfDataHandles(i) DataHandle = i allocate(DH%Times(MaxTimes), STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_ALLOCATION_ERROR write(msg,*) 'Fatal ALLOCATION ERROR in ',"wrf_io.F90",', line', 128 call wrf_debug ( FATAL , msg) return endif allocate(DH%DimLengths(MaxDims), STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_ALLOCATION_ERROR write(msg,*) 'Fatal ALLOCATION ERROR in ',"wrf_io.F90",', line', 135 call wrf_debug ( FATAL , msg) return endif allocate(DH%DimIDs(MaxDims), STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_ALLOCATION_ERROR write(msg,*) 'Fatal ALLOCATION ERROR in ',"wrf_io.F90",', line', 142 call wrf_debug ( FATAL , msg) return endif allocate(DH%DimNames(MaxDims), STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_ALLOCATION_ERROR write(msg,*) 'Fatal ALLOCATION ERROR in ',"wrf_io.F90",', line', 149 call wrf_debug ( FATAL , msg) return endif allocate(DH%MDVarIDs(MaxVars), STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_ALLOCATION_ERROR write(msg,*) 'Fatal ALLOCATION ERROR in ',"wrf_io.F90",', line', 156 call wrf_debug ( FATAL , msg) return endif allocate(DH%MDVarDimLens(MaxVars), STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_ALLOCATION_ERROR write(msg,*) 'Fatal ALLOCATION ERROR in ',"wrf_io.F90",', line', 163 call wrf_debug ( FATAL , msg) return endif allocate(DH%MDVarNames(MaxVars), STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_ALLOCATION_ERROR write(msg,*) 'Fatal ALLOCATION ERROR in ',"wrf_io.F90",', line', 170 call wrf_debug ( FATAL , msg) return endif allocate(DH%VarIDs(MaxVars), STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_ALLOCATION_ERROR write(msg,*) 'Fatal ALLOCATION ERROR in ',"wrf_io.F90",', line', 177 call wrf_debug ( FATAL , msg) return endif allocate(DH%VarDimLens(NVarDims-1,MaxVars), STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_ALLOCATION_ERROR write(msg,*) 'Fatal ALLOCATION ERROR in ',"wrf_io.F90",', line', 184 call wrf_debug ( FATAL , msg) return endif allocate(DH%VarNames(MaxVars), STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_ALLOCATION_ERROR write(msg,*) 'Fatal ALLOCATION ERROR in ',"wrf_io.F90",', line', 191 call wrf_debug ( FATAL , msg) return endif exit endif if(i==WrfDataHandleMax) then Status = WRF_WARN_TOO_MANY_FILES write(msg,*) 'Warning TOO MANY FILES in ',"wrf_io.F90",', line', 199 call wrf_debug ( WARN , TRIM(msg)) write(msg,*) 'Did you call ext_pnc_ioinit?' call wrf_debug ( WARN , TRIM(msg)) return endif enddo DH%Free =.false. DH%Comm = Comm DH%Write =.false. DH%first_operation = .TRUE. DH%Collective = .TRUE. Status = WRF_NO_ERR end subroutine allocHandle subroutine deallocHandle(DataHandle, Status) use wrf_data_pnc include 'wrf_status_codes.h' integer ,intent(in) :: DataHandle integer ,intent(out) :: Status type(wrf_data_handle),pointer :: DH integer :: i integer :: stat IF ( DataHandle .GE. 1 .AND. DataHandle .LE. WrfDataHandleMax ) THEN if(.NOT. WrfDataHandles(DataHandle)%Free) then DH => WrfDataHandles(DataHandle) deallocate(DH%Times, STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_DEALLOCATION_ERR write(msg,*) 'Fatal DEALLOCATION ERROR in ',"wrf_io.F90",', line', 229 call wrf_debug ( FATAL , msg) return endif deallocate(DH%DimLengths, STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_DEALLOCATION_ERR write(msg,*) 'Fatal DEALLOCATION ERROR in ',"wrf_io.F90",', line', 236 call wrf_debug ( FATAL , msg) return endif deallocate(DH%DimIDs, STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_DEALLOCATION_ERR write(msg,*) 'Fatal DEALLOCATION ERROR in ',"wrf_io.F90",', line', 243 call wrf_debug ( FATAL , msg) return endif deallocate(DH%DimNames, STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_DEALLOCATION_ERR write(msg,*) 'Fatal ALLOCATION ERROR in ',"wrf_io.F90",', line', 250 call wrf_debug ( FATAL , msg) return endif deallocate(DH%MDVarIDs, STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_DEALLOCATION_ERR write(msg,*) 'Fatal DEALLOCATION ERROR in ',"wrf_io.F90",', line', 257 call wrf_debug ( FATAL , msg) return endif deallocate(DH%MDVarDimLens, STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_DEALLOCATION_ERR write(msg,*) 'Fatal DEALLOCATION ERROR in ',"wrf_io.F90",', line', 264 call wrf_debug ( FATAL , msg) return endif deallocate(DH%MDVarNames, STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_DEALLOCATION_ERR write(msg,*) 'Fatal DEALLOCATION ERROR in ',"wrf_io.F90",', line', 271 call wrf_debug ( FATAL , msg) return endif deallocate(DH%VarIDs, STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_DEALLOCATION_ERR write(msg,*) 'Fatal DEALLOCATION ERROR in ',"wrf_io.F90",', line', 278 call wrf_debug ( FATAL , msg) return endif deallocate(DH%VarDimLens, STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_DEALLOCATION_ERR write(msg,*) 'Fatal DEALLOCATION ERROR in ',"wrf_io.F90",', line', 285 call wrf_debug ( FATAL , msg) return endif deallocate(DH%VarNames, STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_DEALLOCATION_ERR write(msg,*) 'Fatal DEALLOCATION ERROR in ',"wrf_io.F90",', line', 292 call wrf_debug ( FATAL , msg) return endif DH%Free =.TRUE. endif ENDIF Status = WRF_NO_ERR end subroutine deallocHandle subroutine GetDH(DataHandle,DH,Status) use wrf_data_pnc include 'wrf_status_codes.h' integer ,intent(in) :: DataHandle type(wrf_data_handle) ,pointer :: DH integer ,intent(out) :: Status if(DataHandle < 1 .or. DataHandle > WrfDataHandleMax) then Status = WRF_WARN_BAD_DATA_HANDLE return endif DH => WrfDataHandles(DataHandle) if(DH%Free) then Status = WRF_WARN_BAD_DATA_HANDLE return endif Status = WRF_NO_ERR return end subroutine GetDH subroutine DateCheck(Date,Status) use wrf_data_pnc include 'wrf_status_codes.h' character*(*) ,intent(in) :: Date integer ,intent(out) :: Status if(len(Date) /= DateStrLen) then Status = WRF_WARN_DATESTR_BAD_LENGTH else Status = WRF_NO_ERR endif return end subroutine DateCheck subroutine GetName(Element,Var,Name,Status) use wrf_data_pnc include 'wrf_status_codes.h' character*(*) ,intent(in) :: Element character*(*) ,intent(in) :: Var character*(*) ,intent(out) :: Name integer ,intent(out) :: Status character (VarNameLen) :: VarName character (1) :: c integer :: i integer, parameter :: upper_to_lower =IACHAR('a')-IACHAR('A') VarName = Var Name = 'MD___'//trim(Element)//VarName do i=1,len(Name) c=Name(i:i) if('A'<=c .and. c <='Z') Name(i:i)=achar(iachar(c)+upper_to_lower) if(c=='-'.or.c==':') Name(i:i)='_' enddo Status = WRF_NO_ERR return end subroutine GetName subroutine GetTimeIndex(IO,DataHandle,DateStr,TimeIndex,Status) use wrf_data_pnc include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all character (*) ,intent(in) :: IO integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: DateStr integer ,intent(out) :: TimeIndex integer ,intent(out) :: Status type(wrf_data_handle) ,pointer :: DH integer(KIND=MPI_OFFSET_KIND) :: VStart(2) integer(KIND=MPI_OFFSET_KIND) :: VCount(2) integer :: stat integer :: i DH => WrfDataHandles(DataHandle) call DateCheck(DateStr,Status) if(Status /= WRF_NO_ERR) then Status = WRF_WARN_DATESTR_ERROR write(msg,*) 'Warning DATE STRING ERROR in ',"wrf_io.F90",', line', 378 call wrf_debug ( WARN , TRIM(msg)) return endif if(IO == 'write') then TimeIndex = DH%TimeIndex if(TimeIndex <= 0) then TimeIndex = 1 elseif(DateStr == DH%Times(TimeIndex)) then Status = WRF_NO_ERR return else TimeIndex = TimeIndex +1 if(TimeIndex > MaxTimes) then Status = WRF_WARN_TIME_EOF write(msg,*) 'Warning TIME EOF in ',"wrf_io.F90",', line', 393 call wrf_debug ( WARN , TRIM(msg)) return endif endif DH%TimeIndex = TimeIndex DH%Times(TimeIndex) = DateStr VStart(1) = 1 VStart(2) = TimeIndex VCount(1) = DateStrLen VCount(2) = 1 stat = NFMPI_PUT_VARA_TEXT_ALL(DH%NCID,DH%TimesVarID,VStart,VCount,DateStr) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ',"wrf_io.F90",', line', 407 call wrf_debug ( WARN , TRIM(msg)) return endif else do i=1,MaxTimes if(DH%Times(i)==DateStr) then Status = WRF_NO_ERR TimeIndex = i exit endif if(i==MaxTimes) then Status = WRF_WARN_TIME_NF write(msg,*) 'Warning TIME ',DateStr,' NOT FOUND in ',"wrf_io.F90",', line', 420 call wrf_debug ( WARN , TRIM(msg)) return endif enddo endif return end subroutine GetTimeIndex subroutine GetDim(MemoryOrder,NDim,Status) include 'wrf_status_codes.h' character*(*) ,intent(in) :: MemoryOrder integer ,intent(out) :: NDim integer ,intent(out) :: Status character*3 :: MemOrd call LowerCase(MemoryOrder,MemOrd) select case (MemOrd) case ('xyz','xzy','yxz','yzx','zxy','zyx','xsz','xez','ysz','yez') NDim = 3 case ('xy','yx','xs','xe','ys','ye','cc') NDim = 2 case ('z','c') NDim = 1 case ('0') ! NDim=0 for scalars. TBH: 20060502 NDim = 0 case default print *, 'memory order = ',MemOrd,' ',MemoryOrder Status = WRF_WARN_BAD_MEMORYORDER return end select Status = WRF_NO_ERR return end subroutine GetDim subroutine GetIndices(NDim,Start,End,i1,i2,j1,j2,k1,k2) integer ,intent(in) :: NDim integer ,dimension(*),intent(in) :: Start,End integer ,intent(out) :: i1,i2,j1,j2,k1,k2 i1=1 i2=1 j1=1 j2=1 k1=1 k2=1 if(NDim == 0) return ! NDim=0 for scalars. TBH: 20060502 i1 = Start(1) i2 = End (1) if(NDim == 1) return j1 = Start(2) j2 = End (2) if(NDim == 2) return k1 = Start(3) k2 = End (3) return end subroutine GetIndices logical function ZeroLengthHorzDim(MemoryOrder,Vector,Status) use wrf_data_pnc include 'wrf_status_codes.h' character*(*) ,intent(in) :: MemoryOrder integer,dimension(*) ,intent(in) :: Vector integer ,intent(out) :: Status integer :: NDim integer,dimension(NVarDims) :: temp character*3 :: MemOrd logical zero_length call GetDim(MemoryOrder,NDim,Status) temp(1:NDim) = Vector(1:NDim) call LowerCase(MemoryOrder,MemOrd) zero_length = .false. select case (MemOrd) case ('xsz','xez','ysz','yez','xs','xe','ys','ye','z','c') continue case ('0') continue ! NDim=0 for scalars. TBH: 20060502 case ('xzy','yzx') zero_length = temp(1) .lt. 1 .or. temp(3) .lt. 1 case ('xy','yx','xyz','yxz') zero_length = temp(1) .lt. 1 .or. temp(2) .lt. 1 case ('zxy','zyx') zero_length = temp(2) .lt. 1 .or. temp(3) .lt. 1 case default Status = WRF_WARN_BAD_MEMORYORDER ZeroLengthHorzDim = .true. return end select Status = WRF_NO_ERR ZeroLengthHorzDim = zero_length return end function ZeroLengthHorzDim subroutine ExtOrder(MemoryOrder,Vector,Status) use wrf_data_pnc include 'wrf_status_codes.h' character*(*) ,intent(in) :: MemoryOrder integer,dimension(*) ,intent(inout) :: Vector integer ,intent(out) :: Status integer :: NDim integer,dimension(NVarDims) :: temp character*3 :: MemOrd call GetDim(MemoryOrder,NDim,Status) temp(1:NDim) = Vector(1:NDim) call LowerCase(MemoryOrder,MemOrd) select case (MemOrd) case ('xyz','xsz','xez','ysz','yez','xy','xs','xe','ys','ye','z','c') continue case ('0') continue ! NDim=0 for scalars. TBH: 20060502 case ('xzy') Vector(2) = temp(3) Vector(3) = temp(2) case ('yxz') Vector(1) = temp(2) Vector(2) = temp(1) case ('yzx') Vector(1) = temp(3) Vector(2) = temp(1) Vector(3) = temp(2) case ('zxy') Vector(1) = temp(2) Vector(2) = temp(3) Vector(3) = temp(1) case ('zyx') Vector(1) = temp(3) Vector(3) = temp(1) case ('yx') Vector(1) = temp(2) Vector(2) = temp(1) case default Status = WRF_WARN_BAD_MEMORYORDER return end select Status = WRF_NO_ERR return end subroutine ExtOrder subroutine ExtOrderStr(MemoryOrder,Vector,ROVector,Status) use wrf_data_pnc include 'wrf_status_codes.h' character*(*) ,intent(in) :: MemoryOrder character*(*),dimension(*) ,intent(in) :: Vector character(80),dimension(NVarDims),intent(out) :: ROVector integer ,intent(out) :: Status integer :: NDim character*3 :: MemOrd call GetDim(MemoryOrder,NDim,Status) ROVector(1:NDim) = Vector(1:NDim) call LowerCase(MemoryOrder,MemOrd) select case (MemOrd) case ('xyz','xsz','xez','ysz','yez','xy','xs','xe','ys','ye','z','c') continue case ('0') continue ! NDim=0 for scalars. TBH: 20060502 case ('xzy') ROVector(2) = Vector(3) ROVector(3) = Vector(2) case ('yxz') ROVector(1) = Vector(2) ROVector(2) = Vector(1) case ('yzx') ROVector(1) = Vector(3) ROVector(2) = Vector(1) ROVector(3) = Vector(2) case ('zxy') ROVector(1) = Vector(2) ROVector(2) = Vector(3) ROVector(3) = Vector(1) case ('zyx') ROVector(1) = Vector(3) ROVector(3) = Vector(1) case ('yx') ROVector(1) = Vector(2) ROVector(2) = Vector(1) case default Status = WRF_WARN_BAD_MEMORYORDER return end select Status = WRF_NO_ERR return end subroutine ExtOrderStr subroutine LowerCase(MemoryOrder,MemOrd) character*(*) ,intent(in) :: MemoryOrder character*(*) ,intent(out) :: MemOrd character*1 :: c integer ,parameter :: upper_to_lower =IACHAR('a')-IACHAR('A') integer :: i,N MemOrd = ' ' N = len(MemoryOrder) MemOrd(1:N) = MemoryOrder(1:N) do i=1,N c = MemoryOrder(i:i) if('A'<=c .and. c <='Z') MemOrd(i:i)=achar(iachar(c)+upper_to_lower) enddo return end subroutine LowerCase subroutine UpperCase(MemoryOrder,MemOrd) character*(*) ,intent(in) :: MemoryOrder character*(*) ,intent(out) :: MemOrd character*1 :: c integer ,parameter :: lower_to_upper =IACHAR('A')-IACHAR('a') integer :: i,N MemOrd = ' ' N = len(MemoryOrder) MemOrd(1:N) = MemoryOrder(1:N) do i=1,N c = MemoryOrder(i:i) if('a'<=c .and. c <='z') MemOrd(i:i)=achar(iachar(c)+lower_to_upper) enddo return end subroutine UpperCase subroutine netcdf_err(err,Status) use wrf_data_pnc include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all integer ,intent(in) :: err integer ,intent(out) :: Status character(len=80) :: errmsg integer :: stat if( err==NF_NOERR )then Status = WRF_NO_ERR else errmsg = NFMPI_STRERROR(err) write(msg,*) 'NetCDF error: ',errmsg call wrf_debug ( WARN , TRIM(msg)) Status = WRF_WARN_NETCDF endif return end subroutine netcdf_err subroutine FieldIO(IO,DataHandle,DateStr,Starts,Length,MemoryOrder & ,FieldType,NCID,VarID,XField,Status) use wrf_data_pnc include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all character (*) ,intent(in) :: IO integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: DateStr integer,dimension(NVarDims),intent(in) :: Starts integer,dimension(NVarDims),intent(in) :: Length character*(*) ,intent(in) :: MemoryOrder integer ,intent(in) :: FieldType integer ,intent(in) :: NCID integer ,intent(in) :: VarID integer,dimension(*) ,intent(inout) :: XField integer ,intent(out) :: Status integer :: TimeIndex integer :: NDim integer,dimension(NVarDims) :: VStart integer,dimension(NVarDims) :: VCount call GetTimeIndex(IO,DataHandle,DateStr,TimeIndex,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'Warning in ',"wrf_io.F90",', line', 686 call wrf_debug ( WARN , TRIM(msg)) write(msg,*) ' Bad time index for DateStr = ',DateStr call wrf_debug ( WARN , TRIM(msg)) return endif call GetDim(MemoryOrder,NDim,Status) VStart(:) = 1 VCount(:) = 1 !jm for parallel netcef VStart(1:NDim) = 1 VStart(1:NDim) = Starts(1:NDim) VCount(1:NDim) = Length(1:NDim) VStart(NDim+1) = TimeIndex VCount(NDim+1) = 1 select case (FieldType) case (WRF_REAL) call ext_pnc_RealFieldIO (WrfDataHandles(DataHandle)%Collective, & IO,NCID,VarID,VStart,VCount,XField,Status) case (WRF_DOUBLE) call ext_pnc_DoubleFieldIO (WrfDataHandles(DataHandle)%Collective, & IO,NCID,VarID,VStart,VCount,XField,Status) case (WRF_INTEGER) call ext_pnc_IntFieldIO (WrfDataHandles(DataHandle)%Collective, & IO,NCID,VarID,VStart,VCount,XField,Status) case (WRF_LOGICAL) call ext_pnc_LogicalFieldIO (WrfDataHandles(DataHandle)%Collective, & IO,NCID,VarID,VStart,VCount,XField,Status) if(Status /= WRF_NO_ERR) return case default !for wrf_complex, double_complex Status = WRF_WARN_DATA_TYPE_NOT_FOUND write(msg,*) 'Warning DATA TYPE NOT FOUND in ',"wrf_io.F90",', line', 717 call wrf_debug ( WARN , TRIM(msg)) return end select return end subroutine FieldIO subroutine Transpose(IO,MemoryOrder,di, Field,l1,l2,m1,m2,n1,n2 & ,XField,x1,x2,y1,y2,z1,z2 & ,i1,i2,j1,j2,k1,k2 ) character*(*) ,intent(in) :: IO character*(*) ,intent(in) :: MemoryOrder integer ,intent(in) :: l1,l2,m1,m2,n1,n2 integer ,intent(in) :: di integer ,intent(in) :: x1,x2,y1,y2,z1,z2 integer ,intent(in) :: i1,i2,j1,j2,k1,k2 integer ,intent(inout) :: Field(di,l1:l2,m1:m2,n1:n2) !jm 010827 integer ,intent(inout) :: XField(di,x1:x2,y1:y2,z1:z2) integer ,intent(inout) :: XField(di,(i2-i1+1)*(j2-j1+1)*(k2-k1+1)) character*3 :: MemOrd character*3 :: MemO integer ,parameter :: MaxUpperCase=IACHAR('Z') integer :: i,j,k,ix,jx,kx call LowerCase(MemoryOrder,MemOrd) select case (MemOrd) !#define XDEX(A,B,C) A-A ## 1+1+(A ## 2-A ## 1+1)*((B-B ## 1)+(C-C ## 1)*(B ## 2-B ## 1+1)) ! case ('xzy') ix=0 jx=0 kx=0 call reorder(MemoryOrder,MemO) if(IACHAR(MemO(1:1)) > MaxUpperCase) ix=i2+i1 if(IACHAR(MemO(2:2)) > MaxUpperCase) jx=j2+j1 if(IACHAR(MemO(3:3)) > MaxUpperCase) kx=k2+k1 ! pjj/cray if(IO == 'write') then !dir$ concurrent !$OMP PARALLEL DO SCHEDULE(RUNTIME) PRIVATE(i,j,k) do k=k1,k2 do j=j1,j2 !dir$ prefervector !dir$ concurrent !cdir select(vector) do i=i1,i2 XField(1:di,(i-i1+1+(i2-i1+1)*((k-k1)+(j-j1)*(k2-k1+1)))) = Field(1:di,abs(ix-i),abs(jx-j),abs(kx-k)) enddo enddo enddo !$OMP END PARALLEL DO else !dir$ concurrent !$OMP PARALLEL DO SCHEDULE(RUNTIME) PRIVATE(i,j,k) do k=k1,k2 do j=j1,j2 !dir$ prefervector !dir$ concurrent !cdir select(vector) do i=i1,i2 Field(1:di,abs(ix-i),abs(jx-j),abs(kx-k)) = XField(1:di,(i-i1+1+(i2-i1+1)*((k-k1)+(j-j1)*(k2-k1+1)))) enddo enddo enddo !$OMP END PARALLEL DO endif return case ('xyz','xsz','xez','ysz','yez','xy','xs','xe','ys','ye','z','c','0') ix=0 jx=0 kx=0 call reorder(MemoryOrder,MemO) if(IACHAR(MemO(1:1)) > MaxUpperCase) ix=i2+i1 if(IACHAR(MemO(2:2)) > MaxUpperCase) jx=j2+j1 if(IACHAR(MemO(3:3)) > MaxUpperCase) kx=k2+k1 ! pjj/cray if(IO == 'write') then !dir$ concurrent !$OMP PARALLEL DO SCHEDULE(RUNTIME) PRIVATE(i,j,k) do k=k1,k2 do j=j1,j2 !dir$ prefervector !dir$ concurrent !cdir select(vector) do i=i1,i2 XField(1:di,(i-i1+1+(i2-i1+1)*((j-j1)+(k-k1)*(j2-j1+1)))) = Field(1:di,abs(ix-i),abs(jx-j),abs(kx-k)) enddo enddo enddo !$OMP END PARALLEL DO else !dir$ concurrent !$OMP PARALLEL DO SCHEDULE(RUNTIME) PRIVATE(i,j,k) do k=k1,k2 do j=j1,j2 !dir$ prefervector !dir$ concurrent !cdir select(vector) do i=i1,i2 Field(1:di,abs(ix-i),abs(jx-j),abs(kx-k)) = XField(1:di,(i-i1+1+(i2-i1+1)*((j-j1)+(k-k1)*(j2-j1+1)))) enddo enddo enddo !$OMP END PARALLEL DO endif return case ('yxz') ix=0 jx=0 kx=0 call reorder(MemoryOrder,MemO) if(IACHAR(MemO(1:1)) > MaxUpperCase) ix=i2+i1 if(IACHAR(MemO(2:2)) > MaxUpperCase) jx=j2+j1 if(IACHAR(MemO(3:3)) > MaxUpperCase) kx=k2+k1 ! pjj/cray if(IO == 'write') then !dir$ concurrent !$OMP PARALLEL DO SCHEDULE(RUNTIME) PRIVATE(i,j,k) do k=k1,k2 do j=j1,j2 !dir$ prefervector !dir$ concurrent !cdir select(vector) do i=i1,i2 XField(1:di,(j-j1+1+(j2-j1+1)*((i-i1)+(k-k1)*(i2-i1+1)))) = Field(1:di,abs(ix-i),abs(jx-j),abs(kx-k)) enddo enddo enddo !$OMP END PARALLEL DO else !dir$ concurrent !$OMP PARALLEL DO SCHEDULE(RUNTIME) PRIVATE(i,j,k) do k=k1,k2 do j=j1,j2 !dir$ prefervector !dir$ concurrent !cdir select(vector) do i=i1,i2 Field(1:di,abs(ix-i),abs(jx-j),abs(kx-k)) = XField(1:di,(j-j1+1+(j2-j1+1)*((i-i1)+(k-k1)*(i2-i1+1)))) enddo enddo enddo !$OMP END PARALLEL DO endif return case ('zxy') ix=0 jx=0 kx=0 call reorder(MemoryOrder,MemO) if(IACHAR(MemO(1:1)) > MaxUpperCase) ix=i2+i1 if(IACHAR(MemO(2:2)) > MaxUpperCase) jx=j2+j1 if(IACHAR(MemO(3:3)) > MaxUpperCase) kx=k2+k1 ! pjj/cray if(IO == 'write') then !dir$ concurrent !$OMP PARALLEL DO SCHEDULE(RUNTIME) PRIVATE(i,j,k) do k=k1,k2 do j=j1,j2 !dir$ prefervector !dir$ concurrent !cdir select(vector) do i=i1,i2 XField(1:di,(k-k1+1+(k2-k1+1)*((i-i1)+(j-j1)*(i2-i1+1)))) = Field(1:di,abs(ix-i),abs(jx-j),abs(kx-k)) enddo enddo enddo !$OMP END PARALLEL DO else !dir$ concurrent !$OMP PARALLEL DO SCHEDULE(RUNTIME) PRIVATE(i,j,k) do k=k1,k2 do j=j1,j2 !dir$ prefervector !dir$ concurrent !cdir select(vector) do i=i1,i2 Field(1:di,abs(ix-i),abs(jx-j),abs(kx-k)) = XField(1:di,(k-k1+1+(k2-k1+1)*((i-i1)+(j-j1)*(i2-i1+1)))) enddo enddo enddo !$OMP END PARALLEL DO endif return case ('yzx') ix=0 jx=0 kx=0 call reorder(MemoryOrder,MemO) if(IACHAR(MemO(1:1)) > MaxUpperCase) ix=i2+i1 if(IACHAR(MemO(2:2)) > MaxUpperCase) jx=j2+j1 if(IACHAR(MemO(3:3)) > MaxUpperCase) kx=k2+k1 ! pjj/cray if(IO == 'write') then !dir$ concurrent !$OMP PARALLEL DO SCHEDULE(RUNTIME) PRIVATE(i,j,k) do k=k1,k2 do j=j1,j2 !dir$ prefervector !dir$ concurrent !cdir select(vector) do i=i1,i2 XField(1:di,(j-j1+1+(j2-j1+1)*((k-k1)+(i-i1)*(k2-k1+1)))) = Field(1:di,abs(ix-i),abs(jx-j),abs(kx-k)) enddo enddo enddo !$OMP END PARALLEL DO else !dir$ concurrent !$OMP PARALLEL DO SCHEDULE(RUNTIME) PRIVATE(i,j,k) do k=k1,k2 do j=j1,j2 !dir$ prefervector !dir$ concurrent !cdir select(vector) do i=i1,i2 Field(1:di,abs(ix-i),abs(jx-j),abs(kx-k)) = XField(1:di,(j-j1+1+(j2-j1+1)*((k-k1)+(i-i1)*(k2-k1+1)))) enddo enddo enddo !$OMP END PARALLEL DO endif return case ('zyx') ix=0 jx=0 kx=0 call reorder(MemoryOrder,MemO) if(IACHAR(MemO(1:1)) > MaxUpperCase) ix=i2+i1 if(IACHAR(MemO(2:2)) > MaxUpperCase) jx=j2+j1 if(IACHAR(MemO(3:3)) > MaxUpperCase) kx=k2+k1 ! pjj/cray if(IO == 'write') then !dir$ concurrent !$OMP PARALLEL DO SCHEDULE(RUNTIME) PRIVATE(i,j,k) do k=k1,k2 do j=j1,j2 !dir$ prefervector !dir$ concurrent !cdir select(vector) do i=i1,i2 XField(1:di,(k-k1+1+(k2-k1+1)*((j-j1)+(i-i1)*(j2-j1+1)))) = Field(1:di,abs(ix-i),abs(jx-j),abs(kx-k)) enddo enddo enddo !$OMP END PARALLEL DO else !dir$ concurrent !$OMP PARALLEL DO SCHEDULE(RUNTIME) PRIVATE(i,j,k) do k=k1,k2 do j=j1,j2 !dir$ prefervector !dir$ concurrent !cdir select(vector) do i=i1,i2 Field(1:di,abs(ix-i),abs(jx-j),abs(kx-k)) = XField(1:di,(k-k1+1+(k2-k1+1)*((j-j1)+(i-i1)*(j2-j1+1)))) enddo enddo enddo !$OMP END PARALLEL DO endif return case ('yx') ix=0 jx=0 kx=0 call reorder(MemoryOrder,MemO) if(IACHAR(MemO(1:1)) > MaxUpperCase) ix=i2+i1 if(IACHAR(MemO(2:2)) > MaxUpperCase) jx=j2+j1 if(IACHAR(MemO(3:3)) > MaxUpperCase) kx=k2+k1 ! pjj/cray if(IO == 'write') then !dir$ concurrent !$OMP PARALLEL DO SCHEDULE(RUNTIME) PRIVATE(i,j,k) do k=k1,k2 do j=j1,j2 !dir$ prefervector !dir$ concurrent !cdir select(vector) do i=i1,i2 XField(1:di,(j-j1+1+(j2-j1+1)*((i-i1)+(k-k1)*(i2-i1+1)))) = Field(1:di,abs(ix-i),abs(jx-j),abs(kx-k)) enddo enddo enddo !$OMP END PARALLEL DO else !dir$ concurrent !$OMP PARALLEL DO SCHEDULE(RUNTIME) PRIVATE(i,j,k) do k=k1,k2 do j=j1,j2 !dir$ prefervector !dir$ concurrent !cdir select(vector) do i=i1,i2 Field(1:di,abs(ix-i),abs(jx-j),abs(kx-k)) = XField(1:di,(j-j1+1+(j2-j1+1)*((i-i1)+(k-k1)*(i2-i1+1)))) enddo enddo enddo !$OMP END PARALLEL DO endif return end select return end subroutine Transpose subroutine reorder (MemoryOrder,MemO) character*(*) ,intent(in) :: MemoryOrder character*3 ,intent(out) :: MemO character*3 :: MemOrd integer :: N,i,i1,i2,i3 MemO = MemoryOrder N = len_trim(MemoryOrder) if(N == 1) return call lowercase(MemoryOrder,MemOrd) ! never invert the boundary codes select case ( MemOrd ) case ( 'xsz','xez','ysz','yez' ) return case default continue end select i1 = 1 i3 = 1 do i=2,N if(ichar(MemOrd(i:i)) < ichar(MemOrd(i1:i1))) I1 = i if(ichar(MemOrd(i:i)) > ichar(MemOrd(i3:i3))) I3 = i enddo if(N == 2) then i2=i3 else i2 = 6-i1-i3 endif MemO(1:1) = MemoryOrder(i1:i1) MemO(2:2) = MemoryOrder(i2:i2) if(N == 3) MemO(3:3) = MemoryOrder(i3:i3) if(MemOrd(i1:i1) == 's' .or. MemOrd(i1:i1) == 'e') then MemO(1:N-1) = MemO(2:N) MemO(N:N ) = MemoryOrder(i1:i1) endif return end subroutine reorder ! Returns .TRUE. iff it is OK to write time-independent domain metadata to the ! file referenced by DataHandle. If DataHandle is invalid, .FALSE. is ! returned. LOGICAL FUNCTION ncd_ok_to_put_dom_ti( DataHandle ) USE wrf_data_pnc include 'wrf_status_codes.h' INTEGER, INTENT(IN) :: DataHandle CHARACTER*80 :: fname INTEGER :: filestate INTEGER :: Status LOGICAL :: dryrun, first_output, retval call ext_pnc_inquire_filename( DataHandle, fname, filestate, Status ) IF ( Status /= WRF_NO_ERR ) THEN write(msg,*) 'Warning Status = ',Status,' in ',"wrf_io.F90", & ', line', 831 call wrf_debug ( WARN , TRIM(msg) ) retval = .FALSE. ELSE dryrun = ( filestate .EQ. WRF_FILE_OPENED_NOT_COMMITTED ) first_output = ncd_is_first_operation( DataHandle ) ! retval = .NOT. dryrun .AND. first_output retval = dryrun ENDIF ncd_ok_to_put_dom_ti = retval RETURN END FUNCTION ncd_ok_to_put_dom_ti ! Returns .TRUE. iff it is OK to read time-independent domain metadata from the ! file referenced by DataHandle. If DataHandle is invalid, .FALSE. is ! returned. LOGICAL FUNCTION ncd_ok_to_get_dom_ti( DataHandle ) USE wrf_data_pnc include 'wrf_status_codes.h' INTEGER, INTENT(IN) :: DataHandle CHARACTER*80 :: fname INTEGER :: filestate INTEGER :: Status LOGICAL :: dryrun, retval call ext_pnc_inquire_filename( DataHandle, fname, filestate, Status ) IF ( Status /= WRF_NO_ERR ) THEN write(msg,*) 'Warning Status = ',Status,' in ',"wrf_io.F90", & ', line', 858 call wrf_debug ( WARN , TRIM(msg) ) retval = .FALSE. ELSE dryrun = ( filestate .EQ. WRF_FILE_OPENED_NOT_COMMITTED ) retval = .NOT. dryrun ENDIF ncd_ok_to_get_dom_ti = retval RETURN END FUNCTION ncd_ok_to_get_dom_ti ! Returns .TRUE. iff nothing has been read from or written to the file ! referenced by DataHandle. If DataHandle is invalid, .FALSE. is returned. LOGICAL FUNCTION ncd_is_first_operation( DataHandle ) USE wrf_data_pnc INCLUDE 'wrf_status_codes.h' INTEGER, INTENT(IN) :: DataHandle TYPE(wrf_data_handle) ,POINTER :: DH INTEGER :: Status LOGICAL :: retval CALL GetDH( DataHandle, DH, Status ) IF ( Status /= WRF_NO_ERR ) THEN write(msg,*) 'Warning Status = ',Status,' in ',"wrf_io.F90", & ', line', 881 call wrf_debug ( WARN , TRIM(msg) ) retval = .FALSE. ELSE retval = DH%first_operation ENDIF ncd_is_first_operation = retval RETURN END FUNCTION ncd_is_first_operation end module ext_pnc_support_routines subroutine ext_pnc_open_for_read(DatasetName, Comm1, Comm2, SysDepInfo, DataHandle, Status) use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all character *(*), INTENT(IN) :: DatasetName integer , INTENT(IN) :: Comm1, Comm2 character *(*), INTENT(IN) :: SysDepInfo integer , INTENT(OUT) :: DataHandle integer , INTENT(OUT) :: Status DataHandle = 0 ! dummy setting to quiet warning message CALL ext_pnc_open_for_read_begin( DatasetName, Comm1, Comm2, SysDepInfo, DataHandle, Status ) IF ( Status .EQ. WRF_NO_ERR ) THEN CALL ext_pnc_open_for_read_commit( DataHandle, Status ) ENDIF return end subroutine ext_pnc_open_for_read !ends training phase; switches internal flag to enable input !must be paired with call to ext_pnc_open_for_read_begin subroutine ext_pnc_open_for_read_commit(DataHandle, Status) use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all integer, intent(in) :: DataHandle integer, intent(out) :: Status type(wrf_data_handle) ,pointer :: DH if(WrfIOnotInitialized) then Status = WRF_IO_NOT_INITIALIZED write(msg,*) 'ext_pnc_ioinit was not called ',"wrf_io.F90",', line', 926 call wrf_debug ( FATAL , msg) return endif call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'Warning Status = ',Status,' in ',"wrf_io.F90",', line', 932 call wrf_debug ( WARN , TRIM(msg)) return endif DH%FileStatus = WRF_FILE_OPENED_FOR_READ DH%first_operation = .TRUE. Status = WRF_NO_ERR return end subroutine ext_pnc_open_for_read_commit subroutine ext_pnc_open_for_read_begin( FileName, Comm, IOComm, SysDepInfo, DataHandle, Status) use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all character*(*) ,intent(IN) :: FileName integer ,intent(IN) :: Comm integer ,intent(IN) :: IOComm character*(*) ,intent(in) :: SysDepInfo integer ,intent(out) :: DataHandle integer ,intent(out) :: Status type(wrf_data_handle) ,pointer :: DH integer :: XType integer :: stat integer ,allocatable :: Buffer(:) integer :: VarID integer :: StoredDim integer :: NAtts integer :: DimIDs(2) integer(KIND=MPI_OFFSET_KIND) :: VStart(2) integer(KIND=MPI_OFFSET_KIND) :: VLen(2) integer :: TotalNumVars integer :: NumVars integer :: i character (NF_MAX_NAME) :: Name if(WrfIOnotInitialized) then Status = WRF_IO_NOT_INITIALIZED write(msg,*) 'ext_pnc_ioinit was not called ',"wrf_io.F90",', line', 971 call wrf_debug ( FATAL , msg) return endif call allocHandle(DataHandle,DH,Comm,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'Fatal ALLOCATION ERROR in ',"wrf_io.F90",', line', 977 call wrf_debug ( WARN , TRIM(msg)) return endif stat = NFMPI_OPEN(Comm, FileName, NF_NOWRITE, MPI_INFO_NULL, DH%NCID) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ',"wrf_io.F90",', line', 984 call wrf_debug ( WARN , TRIM(msg)) return endif stat = NFMPI_INQ_VARID(DH%NCID,DH%TimesName,VarID) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ',"wrf_io.F90",', line', 991 call wrf_debug ( WARN , TRIM(msg)) return endif stat = NFMPI_INQ_VAR(DH%NCID,VarID,DH%TimesName, XType, StoredDim, DimIDs, NAtts) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ',"wrf_io.F90",', line', 998 call wrf_debug ( WARN , TRIM(msg)) return endif if(XType/=NF_CHAR) then Status = WRF_WARN_TYPE_MISMATCH write(msg,*) 'Warning TYPE MISMATCH in ',"wrf_io.F90",', line', 1004 call wrf_debug ( WARN , TRIM(msg)) return endif stat = NFMPI_INQ_DIMLEN(DH%NCID,DimIDs(1),VLen(1)) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ',"wrf_io.F90",', line', 1011 call wrf_debug ( WARN , TRIM(msg)) return endif if(VLen(1) /= DateStrLen) then Status = WRF_WARN_DATESTR_BAD_LENGTH write(msg,*) 'Warning DATESTR BAD LENGTH in ',"wrf_io.F90",', line', 1017 call wrf_debug ( WARN , TRIM(msg)) return endif stat = NFMPI_INQ_DIMLEN(DH%NCID,DimIDs(2),VLen(2)) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ',"wrf_io.F90",', line', 1024 call wrf_debug ( WARN , TRIM(msg)) return endif if(VLen(2) > MaxTimes) then Status = WRF_ERR_FATAL_TOO_MANY_TIMES write(msg,*) 'Fatal TOO MANY TIME VALUES in ',"wrf_io.F90",', line', 1030 call wrf_debug ( FATAL , TRIM(msg)) return endif VStart(1) = 1 VStart(2) = 1 stat = NFMPI_GET_VARA_TEXT_ALL(DH%NCID,VarID,VStart,VLen,DH%Times) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ',"wrf_io.F90",', line', 1039 call wrf_debug ( WARN , TRIM(msg)) return endif stat = NFMPI_INQ_NVARS(DH%NCID,TotalNumVars) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ',"wrf_io.F90",', line', 1046 call wrf_debug ( WARN , TRIM(msg)) return endif NumVars = 0 do i=1,TotalNumVars stat = NFMPI_INQ_VARNAME(DH%NCID,i,Name) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ',"wrf_io.F90",', line', 1055 call wrf_debug ( WARN , TRIM(msg)) return elseif(Name(1:5) /= 'md___' .and. Name /= DH%TimesName) then NumVars = NumVars+1 DH%VarNames(NumVars) = Name DH%VarIDs(NumVars) = i endif enddo DH%NumVars = NumVars DH%NumberTimes = VLen(2) DH%FileStatus = WRF_FILE_OPENED_NOT_COMMITTED DH%FileName = FileName DH%CurrentVariable = 0 DH%CurrentTime = 0 DH%TimesVarID = VarID DH%TimeIndex = 0 return end subroutine ext_pnc_open_for_read_begin subroutine ext_pnc_open_for_update( FileName, Comm, IOComm, SysDepInfo, DataHandle, Status) use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all character*(*) ,intent(IN) :: FileName integer ,intent(IN) :: Comm integer ,intent(IN) :: IOComm character*(*) ,intent(in) :: SysDepInfo integer ,intent(out) :: DataHandle integer ,intent(out) :: Status type(wrf_data_handle) ,pointer :: DH integer :: XType integer :: stat integer ,allocatable :: Buffer(:) integer :: VarID integer :: StoredDim integer :: NAtts integer :: DimIDs(2) integer :: VStart(2) integer :: VLen(2) integer :: TotalNumVars integer :: NumVars integer :: i character (NF_MAX_NAME) :: Name if(WrfIOnotInitialized) then Status = WRF_IO_NOT_INITIALIZED write(msg,*) 'ext_pnc_ioinit was not called ',"wrf_io.F90",', line', 1104 call wrf_debug ( FATAL , msg) return endif call allocHandle(DataHandle,DH,Comm,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'Fatal ALLOCATION ERROR in ',"wrf_io.F90",', line', 1110 call wrf_debug ( WARN , TRIM(msg)) return endif stat = NFMPI_OPEN(Comm, FileName, NF_WRITE, MPI_INFO_NULL, DH%NCID) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ',"wrf_io.F90",', line', 1117 call wrf_debug ( WARN , TRIM(msg)) return endif stat = NFMPI_INQ_VARID(DH%NCID,DH%TimesName,VarID) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ',"wrf_io.F90",', line', 1124 call wrf_debug ( WARN , TRIM(msg)) return endif stat = NFMPI_INQ_VAR(DH%NCID,VarID,DH%TimesName, XType, StoredDim, DimIDs, NAtts) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ',"wrf_io.F90",', line', 1131 call wrf_debug ( WARN , TRIM(msg)) return endif if(XType/=NF_CHAR) then Status = WRF_WARN_TYPE_MISMATCH write(msg,*) 'Warning TYPE MISMATCH in ',"wrf_io.F90",', line', 1137 call wrf_debug ( WARN , TRIM(msg)) return endif stat = NFMPI_INQ_DIMLEN(DH%NCID,DimIDs(1),VLen(1)) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ',"wrf_io.F90",', line', 1144 call wrf_debug ( WARN , TRIM(msg)) return endif if(VLen(1) /= DateStrLen) then Status = WRF_WARN_DATESTR_BAD_LENGTH write(msg,*) 'Warning DATESTR BAD LENGTH in ',"wrf_io.F90",', line', 1150 call wrf_debug ( WARN , TRIM(msg)) return endif stat = NFMPI_INQ_DIMLEN(DH%NCID,DimIDs(2),VLen(2)) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ',"wrf_io.F90",', line', 1157 call wrf_debug ( WARN , TRIM(msg)) return endif if(VLen(2) > MaxTimes) then Status = WRF_ERR_FATAL_TOO_MANY_TIMES write(msg,*) 'Fatal TOO MANY TIME VALUES in ',"wrf_io.F90",', line', 1163 call wrf_debug ( FATAL , TRIM(msg)) return endif VStart(1) = 1 VStart(2) = 1 stat = NFMPI_GET_VARA_TEXT_ALL(DH%NCID,VarID,VStart,VLen,DH%Times) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ',"wrf_io.F90",', line', 1172 call wrf_debug ( WARN , TRIM(msg)) return endif stat = NFMPI_INQ_NVARS(DH%NCID,TotalNumVars) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ',"wrf_io.F90",', line', 1179 call wrf_debug ( WARN , TRIM(msg)) return endif NumVars = 0 do i=1,TotalNumVars stat = NFMPI_INQ_VARNAME(DH%NCID,i,Name) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ',"wrf_io.F90",', line', 1188 call wrf_debug ( WARN , TRIM(msg)) return elseif(Name(1:5) /= 'md___' .and. Name /= DH%TimesName) then NumVars = NumVars+1 DH%VarNames(NumVars) = Name DH%VarIDs(NumVars) = i endif enddo DH%NumVars = NumVars DH%NumberTimes = VLen(2) DH%FileStatus = WRF_FILE_OPENED_FOR_UPDATE DH%FileName = FileName DH%CurrentVariable = 0 DH%CurrentTime = 0 DH%TimesVarID = VarID DH%TimeIndex = 0 return end subroutine ext_pnc_open_for_update SUBROUTINE ext_pnc_open_for_write_begin(FileName,Comm,IOComm,SysDepInfo,DataHandle,Status) use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all character*(*) ,intent(in) :: FileName integer ,intent(in) :: Comm integer ,intent(in) :: IOComm character*(*) ,intent(in) :: SysDepInfo integer ,intent(out) :: DataHandle integer ,intent(out) :: Status type(wrf_data_handle),pointer :: DH integer :: i integer :: stat character (7) :: Buffer integer :: VDimIDs(2) integer :: info, ierr ! added for Blue Gene (see NF_CREAT below) character*1024 :: newFileName integer :: gridid integer local_communicator_x, ntasks_x if(WrfIOnotInitialized) then Status = WRF_IO_NOT_INITIALIZED write(msg,*) 'ext_pnc_open_for_write_begin: ext_pnc_ioinit was not called ',"wrf_io.F90",', line', 1233 call wrf_debug ( FATAL , msg) return endif call allocHandle(DataHandle,DH,Comm,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'Fatal ALLOCATION ERROR in ext_pnc_open_for_write_begin ',"wrf_io.F90",', line', 1239 call wrf_debug ( FATAL , TRIM(msg)) return endif DH%TimeIndex = 0 DH%Times = ZeroDate call mpi_info_create( info, ierr ) ! Remove the dash/underscore change to filenames for pnetcdf... write(newFileName, fmt="(a)") TRIM(ADJUSTL(FileName)) do i = 1, len_trim(newFileName) ! if(newFileName(i:i) == '-') newFileName(i:i) = '_' if(newFileName(i:i) == ':') newFileName(i:i) = '_' enddo stat = NFMPI_CREATE(Comm, newFileName, IOR(NF_CLOBBER, NF_64BIT_OFFSET), info, DH%NCID) ! stat = NFMPI_CREATE(Comm, newFileName, NF_64BIT_OFFSET, info, DH%NCID) call mpi_info_free( info, ierr) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ext_pnc_open_for_write_begin ',"wrf_io.F90",', line', 1278 call wrf_debug ( WARN , TRIM(msg)) return endif ! JPE added for performance stat = NFMPI_SET_FILL(DH%NCID, NF_NOFILL, i) DH%FileStatus = WRF_FILE_OPENED_NOT_COMMITTED DH%FileName = FileName stat = NFMPI_DEF_DIM(DH%NCID,DH%DimUnlimName,i2offset(NF_UNLIMITED),DH%DimUnlimID) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ext_pnc_open_for_write_begin ',"wrf_io.F90",', line', 1290 call wrf_debug ( WARN , TRIM(msg)) return endif DH%VarNames (1:MaxVars) = NO_NAME DH%MDVarNames(1:MaxVars) = NO_NAME do i=1,MaxDims write(Buffer,FMT="('DIM',i4.4)") i DH%DimNames (i) = Buffer DH%DimLengths(i) = NO_DIM enddo DH%DimNames(1) = 'DateStrLen' stat = NFMPI_DEF_DIM(DH%NCID,DH%DimNames(1),i2offset(DateStrLen),DH%DimIDs(1)) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ext_pnc_open_for_write_begin ',"wrf_io.F90",', line', 1305 call wrf_debug ( WARN , TRIM(msg)) return endif VDimIDs(1) = DH%DimIDs(1) VDimIDs(2) = DH%DimUnlimID stat = NFMPI_DEF_VAR(DH%NCID,DH%TimesName,NF_CHAR,2,VDimIDs,DH%TimesVarID) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ext_pnc_open_for_write_begin ',"wrf_io.F90",', line', 1314 call wrf_debug ( WARN , TRIM(msg)) return endif DH%DimLengths(1) = DateStrLen return end subroutine ext_pnc_open_for_write_begin !stub !opens a file for writing or coupler datastream for sending messages. !no training phase for this version of the open stmt. subroutine ext_pnc_open_for_write (DatasetName, Comm1, Comm2, & SysDepInfo, DataHandle, Status) use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all character *(*), intent(in) ::DatasetName integer , intent(in) ::Comm1, Comm2 character *(*), intent(in) ::SysDepInfo integer , intent(out) :: DataHandle integer , intent(out) :: Status Status=WRF_WARN_NOOP DataHandle = 0 ! dummy setting to quiet warning message return end subroutine ext_pnc_open_for_write SUBROUTINE ext_pnc_open_for_write_commit(DataHandle, Status) use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all integer ,intent(in) :: DataHandle integer ,intent(out) :: Status type(wrf_data_handle),pointer :: DH integer :: i integer :: stat if(WrfIOnotInitialized) then Status = WRF_IO_NOT_INITIALIZED write(msg,*) 'ext_pnc_open_for_write_commit: ext_pnc_ioinit was not called ',"wrf_io.F90",', line', 1356 call wrf_debug ( FATAL , msg) return endif call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'Warning Status = ',Status,' in ext_pnc_open_for_write_commit ',"wrf_io.F90",', line', 1362 call wrf_debug ( WARN , TRIM(msg)) return endif stat = NFMPI_ENDDEF(DH%NCID) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error (',stat,') from NFMPI_ENDDEF in ext_pnc_open_for_write_commit ',"wrf_io.F90",', line', 1369 call wrf_debug ( WARN , TRIM(msg)) return endif DH%FileStatus = WRF_FILE_OPENED_FOR_WRITE DH%first_operation = .TRUE. return end subroutine ext_pnc_open_for_write_commit subroutine ext_pnc_ioclose(DataHandle, Status) use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all integer ,intent(in) :: DataHandle integer ,intent(out) :: Status type(wrf_data_handle),pointer :: DH integer :: stat call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'Warning Status = ',Status,' in ext_pnc_ioclose ',"wrf_io.F90",', line', 1391 call wrf_debug ( WARN , TRIM(msg)) return endif if(DH%FileStatus == WRF_FILE_NOT_OPENED) then Status = WRF_WARN_FILE_NOT_OPENED write(msg,*) 'Warning FILE NOT OPENED in ext_pnc_ioclose ',"wrf_io.F90",', line', 1397 call wrf_debug ( WARN , TRIM(msg)) elseif(DH%FileStatus == WRF_FILE_OPENED_NOT_COMMITTED) then Status = WRF_WARN_DRYRUN_CLOSE write(msg,*) 'Warning TRY TO CLOSE DRYRUN in ext_pnc_ioclose ',"wrf_io.F90",', line', 1401 call wrf_debug ( WARN , TRIM(msg)) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_WRITE) then continue elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_READ) then continue elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_UPDATE) then continue else Status = WRF_ERR_FATAL_BAD_FILE_STATUS write(msg,*) 'Fatal error BAD FILE STATUS in ext_pnc_ioclose ',"wrf_io.F90",', line', 1411 call wrf_debug ( FATAL , TRIM(msg)) return endif stat = NFMPI_CLOSE(DH%NCID) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ext_pnc_ioclose ',"wrf_io.F90",', line', 1419 call wrf_debug ( WARN , TRIM(msg)) return endif CALL deallocHandle( DataHandle, Status ) DH%Free=.true. return end subroutine ext_pnc_ioclose subroutine ext_pnc_iosync( DataHandle, Status) use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all integer ,intent(in) :: DataHandle integer ,intent(out) :: Status type(wrf_data_handle),pointer :: DH integer :: stat call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'Warning Status = ',Status,' in ext_pnc_iosync ',"wrf_io.F90",', line', 1441 call wrf_debug ( WARN , TRIM(msg)) return endif if(DH%FileStatus == WRF_FILE_NOT_OPENED) then Status = WRF_WARN_FILE_NOT_OPENED write(msg,*) 'Warning FILE NOT OPENED in ext_pnc_iosync ',"wrf_io.F90",', line', 1447 call wrf_debug ( WARN , TRIM(msg)) elseif(DH%FileStatus == WRF_FILE_OPENED_NOT_COMMITTED) then Status = WRF_WARN_FILE_NOT_COMMITTED write(msg,*) 'Warning FILE NOT COMMITTED in ext_pnc_iosync ',"wrf_io.F90",', line', 1451 call wrf_debug ( WARN , TRIM(msg)) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_WRITE) then continue elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_READ) then continue else Status = WRF_ERR_FATAL_BAD_FILE_STATUS write(msg,*) 'Fatal error BAD FILE STATUS in ext_pnc_iosync ',"wrf_io.F90",', line', 1459 call wrf_debug ( FATAL , TRIM(msg)) return endif stat = NFMPI_SYNC(DH%NCID) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ext_pnc_iosync ',"wrf_io.F90",', line', 1466 call wrf_debug ( WARN , TRIM(msg)) return endif return end subroutine ext_pnc_iosync subroutine ext_pnc_redef( DataHandle, Status) use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all integer ,intent(in) :: DataHandle integer ,intent(out) :: Status type(wrf_data_handle),pointer :: DH integer :: stat call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'Warning Status = ',Status,' in ',"wrf_io.F90",', line', 1488 call wrf_debug ( WARN , TRIM(msg)) return endif if(DH%FileStatus == WRF_FILE_NOT_OPENED) then Status = WRF_WARN_FILE_NOT_OPENED write(msg,*) 'Warning FILE NOT OPENED in ',"wrf_io.F90",', line', 1494 call wrf_debug ( WARN , TRIM(msg)) elseif(DH%FileStatus == WRF_FILE_OPENED_NOT_COMMITTED) then Status = WRF_WARN_FILE_NOT_COMMITTED write(msg,*) 'Warning FILE NOT COMMITTED in ',"wrf_io.F90",', line', 1498 call wrf_debug ( WARN , TRIM(msg)) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_WRITE) then continue elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_READ) then Status = WRF_WARN_FILE_OPEN_FOR_READ write(msg,*) 'Warning FILE OPEN FOR READ in ',"wrf_io.F90",', line', 1504 call wrf_debug ( WARN , TRIM(msg)) else Status = WRF_ERR_FATAL_BAD_FILE_STATUS write(msg,*) 'Fatal error BAD FILE STATUS in ',"wrf_io.F90",', line', 1508 call wrf_debug ( FATAL , TRIM(msg)) return endif stat = NFMPI_REDEF(DH%NCID) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ',"wrf_io.F90",', line', 1515 call wrf_debug ( WARN , TRIM(msg)) return endif DH%FileStatus = WRF_FILE_OPENED_NOT_COMMITTED return end subroutine ext_pnc_redef subroutine ext_pnc_enddef( DataHandle, Status) use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all integer ,intent(in) :: DataHandle integer ,intent(out) :: Status type(wrf_data_handle),pointer :: DH integer :: stat call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'Warning Status = ',Status,' in ',"wrf_io.F90",', line', 1536 call wrf_debug ( WARN , TRIM(msg)) return endif if(DH%FileStatus == WRF_FILE_NOT_OPENED) then Status = WRF_WARN_FILE_NOT_OPENED write(msg,*) 'Warning FILE NOT OPENED in ',"wrf_io.F90",', line', 1542 call wrf_debug ( WARN , TRIM(msg)) elseif(DH%FileStatus == WRF_FILE_OPENED_NOT_COMMITTED) then Status = WRF_WARN_FILE_NOT_COMMITTED write(msg,*) 'Warning FILE NOT COMMITTED in ',"wrf_io.F90",', line', 1546 call wrf_debug ( WARN , TRIM(msg)) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_WRITE) then continue elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_READ) then Status = WRF_WARN_FILE_OPEN_FOR_READ write(msg,*) 'Warning FILE OPEN FOR READ in ',"wrf_io.F90",', line', 1552 call wrf_debug ( WARN , TRIM(msg)) else Status = WRF_ERR_FATAL_BAD_FILE_STATUS write(msg,*) 'Fatal error BAD FILE STATUS in ',"wrf_io.F90",', line', 1556 call wrf_debug ( FATAL , TRIM(msg)) return endif stat = NFMPI_ENDDEF(DH%NCID) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ',"wrf_io.F90",', line', 1563 call wrf_debug ( WARN , TRIM(msg)) return endif DH%FileStatus = WRF_FILE_OPENED_FOR_WRITE return end subroutine ext_pnc_enddef subroutine ext_pnc_ioinit(SysDepInfo, Status) use wrf_data_pnc implicit none include 'wrf_status_codes.h' CHARACTER*(*), INTENT(IN) :: SysDepInfo INTEGER ,INTENT(INOUT) :: Status WrfIOnotInitialized = .false. WrfDataHandles(1:WrfDataHandleMax)%Free = .true. WrfDataHandles(1:WrfDataHandleMax)%TimesName = 'Times' WrfDataHandles(1:WrfDataHandleMax)%DimUnlimName = 'Time' WrfDataHandles(1:WrfDataHandleMax)%FileStatus = WRF_FILE_NOT_OPENED Status = WRF_NO_ERR return end subroutine ext_pnc_ioinit subroutine ext_pnc_inquiry (Inquiry, Result, Status) use wrf_data_pnc implicit none include 'wrf_status_codes.h' character *(*), INTENT(IN) :: Inquiry character *(*), INTENT(OUT) :: Result integer ,INTENT(INOUT) :: Status SELECT CASE (Inquiry) CASE ("RANDOM_WRITE","RANDOM_READ","SEQUENTIAL_WRITE","SEQUENTIAL_READ") Result='ALLOW' CASE ("OPEN_READ","OPEN_COMMIT_WRITE") Result='REQUIRE' CASE ("OPEN_WRITE","OPEN_COMMIT_READ","PARALLEL_IO") Result='NO' CASE ("SELF_DESCRIBING","SUPPORT_METADATA","SUPPORT_3D_FIELDS") Result='YES' CASE ("MEDIUM") Result ='FILE' CASE DEFAULT Result = 'No Result for that inquiry!' END SELECT Status=WRF_NO_ERR return end subroutine ext_pnc_inquiry subroutine ext_pnc_ioexit(Status) use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all integer , INTENT(INOUT) ::Status integer :: error type(wrf_data_handle),pointer :: DH integer :: i integer :: stat if(WrfIOnotInitialized) then Status = WRF_IO_NOT_INITIALIZED write(msg,*) 'ext_pnc_ioinit was not called ',"wrf_io.F90",', line', 1629 call wrf_debug ( FATAL , msg) return endif do i=1,WrfDataHandleMax CALL deallocHandle( i , stat ) enddo return end subroutine ext_pnc_ioexit subroutine ext_pnc_get_dom_ti_real(DataHandle,Element,Data,Count,OutCount,Status) !*------------------------------------------------------------------------------ !* Standard Disclaimer !* !* Forecast Systems Laboratory !* NOAA/OAR/ERL/FSL !* 325 Broadway !* Boulder, CO 80303 !* !* AVIATION DIVISION !* ADVANCED COMPUTING BRANCH !* SMS/NNT Version: 2.0.0 !* !* This software and its documentation are in the public domain and !* are furnished "as is". The United States government, its !* instrumentalities, officers, employees, and agents make no !* warranty, express or implied, as to the usefulness of the software !* and documentation for any purpose. They assume no !* responsibility (1) for the use of the software and documentation; !* or (2) to provide technical support to users. !* !* Permission to use, copy, modify, and distribute this software is !* hereby granted, provided that this disclaimer notice appears in !* all copies. All modifications to this software must be clearly !* documented, and are solely the responsibility of the agent making !* the modification. If significant modifications or enhancements !* are made to this software, the SMS Development team !* (sms-info@fsl.noaa.gov) should be notified. !* !*---------------------------------------------------------------------------- !* !* WRF NetCDF I/O ! Author: Jacques Middlecoff jacquesm@fsl.noaa.gov !* Date: October 6, 2000 !* !*---------------------------------------------------------------------------- use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: Element real,intent(out) :: Data(*) integer,intent(in) :: Count integer,intent(out) :: OutCOunt integer ,intent(out) :: Status type(wrf_data_handle) ,pointer :: DH integer :: XType integer(KIND=MPI_OFFSET_KIND) :: Len_okind integer :: Len integer :: stat real,allocatable :: Buffer(:) call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning Status = ',Status,' in ',"ext_pnc_get_dom_ti.code",' ','REAL',', line', 58 call wrf_debug ( WARN , msg) return endif ! Do nothing unless it is time to read time-independent domain metadata. IF ( ncd_ok_to_get_dom_ti( DataHandle ) ) THEN if(DH%FileStatus == WRF_FILE_NOT_OPENED) then Status = WRF_WARN_FILE_NOT_OPENED write(msg,*) & 'Warning FILE NOT OPENED in ',"ext_pnc_get_dom_ti.code",' ','REAL',', line', 67 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_NOT_COMMITTED) then Status = WRF_WARN_DRYRUN_READ write(msg,*) & 'Warning DRYRUN READ in ',"ext_pnc_get_dom_ti.code",' ','REAL',', line', 72 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_WRITE) then Status = WRF_WARN_READ_WONLY_FILE write(msg,*) & 'Warning READ WRITE ONLY FILE in ',"ext_pnc_get_dom_ti.code",' ','REAL',', line', 77 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_READ) then stat = NFMPI_INQ_ATT(DH%NCID,NF_GLOBAL,Element, XType, Len_okind) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_get_dom_ti.code",' ','REAL',', line', 84,' Element ',trim(Element) call wrf_debug ( WARN , msg) return endif Len = Len_okind if ( NF_FLOAT == NF_DOUBLE .OR. NF_FLOAT == NF_FLOAT ) then if( .NOT. ( XType==NF_FLOAT .OR. XType==NF_DOUBLE) ) then Status = WRF_WARN_TYPE_MISMATCH write(msg,*) & 'Warning TYPE MISMATCH in ',"ext_pnc_get_dom_ti.code",' ','REAL',', line', 93,' Element ', trim(Element) call wrf_debug ( WARN , msg) return endif else if( XType/=NF_FLOAT) then Status = WRF_WARN_TYPE_MISMATCH write(msg,*) & 'Warning TYPE MISMATCH in ',"ext_pnc_get_dom_ti.code",' ','REAL',', line', 101,' Element ', trim(Element) call wrf_debug ( WARN , msg) return endif endif if(Len<=0) then Status = WRF_WARN_LENGTH_LESS_THAN_1 write(msg,*) & 'Warning LENGTH < 1 in ',"ext_pnc_get_dom_ti.code",' ','REAL',', line', 109,' Element ', trim(Element) call wrf_debug ( WARN , msg) return endif allocate(Buffer(Len), STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_ALLOCATION_ERROR write(msg,*) & 'Fatal ALLOCATION ERROR in ',"ext_pnc_get_dom_ti.code",' ','REAL',', line', 118 call wrf_debug ( FATAL , msg) return endif stat = NFMPI_GET_ATT_REAL (DH%NCID,NF_GLOBAL,Element,Buffer) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_get_dom_ti.code",' ','REAL',', line', 130,' Element ',Element call wrf_debug ( WARN , msg) return endif Data(1:min(Len,Count)) = Buffer(1:min(Len,Count)) deallocate(Buffer, STAT=stat) if(stat/= WRF_NO_ERR) then Status = WRF_ERR_FATAL_DEALLOCATION_ERR write(msg,*) & 'Fatal DEALLOCATION ERROR in ',"ext_pnc_get_dom_ti.code",' ','REAL',', line', 140 call wrf_debug ( FATAL , msg) return endif if(Len > Count) then OutCount = Count Status = WRF_WARN_MORE_DATA_IN_FILE else OutCount = Len Status = WRF_NO_ERR endif else Status = WRF_ERR_FATAL_BAD_FILE_STATUS write(msg,*) & 'Fatal error BAD FILE STATUS in ',"ext_pnc_get_dom_ti.code",' ','REAL',', line', 155 call wrf_debug ( FATAL , msg) endif ENDIF return end subroutine ext_pnc_get_dom_ti_real subroutine ext_pnc_get_dom_ti_integer(DataHandle,Element,Data,Count,OutCount,Status) !*------------------------------------------------------------------------------ !* Standard Disclaimer !* !* Forecast Systems Laboratory !* NOAA/OAR/ERL/FSL !* 325 Broadway !* Boulder, CO 80303 !* !* AVIATION DIVISION !* ADVANCED COMPUTING BRANCH !* SMS/NNT Version: 2.0.0 !* !* This software and its documentation are in the public domain and !* are furnished "as is". The United States government, its !* instrumentalities, officers, employees, and agents make no !* warranty, express or implied, as to the usefulness of the software !* and documentation for any purpose. They assume no !* responsibility (1) for the use of the software and documentation; !* or (2) to provide technical support to users. !* !* Permission to use, copy, modify, and distribute this software is !* hereby granted, provided that this disclaimer notice appears in !* all copies. All modifications to this software must be clearly !* documented, and are solely the responsibility of the agent making !* the modification. If significant modifications or enhancements !* are made to this software, the SMS Development team !* (sms-info@fsl.noaa.gov) should be notified. !* !*---------------------------------------------------------------------------- !* !* WRF NetCDF I/O ! Author: Jacques Middlecoff jacquesm@fsl.noaa.gov !* Date: October 6, 2000 !* !*---------------------------------------------------------------------------- use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: Element integer,intent(out) :: Data(*) integer,intent(in) :: Count integer,intent(out) :: OutCOunt integer ,intent(out) :: Status type(wrf_data_handle) ,pointer :: DH integer :: XType integer(KIND=MPI_OFFSET_KIND) :: Len_okind integer :: Len integer :: stat integer,allocatable :: Buffer(:) call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning Status = ',Status,' in ',"ext_pnc_get_dom_ti.code",' ','INTEGER',', line', 58 call wrf_debug ( WARN , msg) return endif ! Do nothing unless it is time to read time-independent domain metadata. IF ( ncd_ok_to_get_dom_ti( DataHandle ) ) THEN if(DH%FileStatus == WRF_FILE_NOT_OPENED) then Status = WRF_WARN_FILE_NOT_OPENED write(msg,*) & 'Warning FILE NOT OPENED in ',"ext_pnc_get_dom_ti.code",' ','INTEGER',', line', 67 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_NOT_COMMITTED) then Status = WRF_WARN_DRYRUN_READ write(msg,*) & 'Warning DRYRUN READ in ',"ext_pnc_get_dom_ti.code",' ','INTEGER',', line', 72 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_WRITE) then Status = WRF_WARN_READ_WONLY_FILE write(msg,*) & 'Warning READ WRITE ONLY FILE in ',"ext_pnc_get_dom_ti.code",' ','INTEGER',', line', 77 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_READ) then stat = NFMPI_INQ_ATT(DH%NCID,NF_GLOBAL,Element, XType, Len_okind) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_get_dom_ti.code",' ','INTEGER',', line', 84,' Element ',trim(Element) call wrf_debug ( WARN , msg) return endif Len = Len_okind if ( NF_INT == NF_DOUBLE .OR. NF_INT == NF_FLOAT ) then if( .NOT. ( XType==NF_FLOAT .OR. XType==NF_DOUBLE) ) then Status = WRF_WARN_TYPE_MISMATCH write(msg,*) & 'Warning TYPE MISMATCH in ',"ext_pnc_get_dom_ti.code",' ','INTEGER',', line', 93,' Element ', trim(Element) call wrf_debug ( WARN , msg) return endif else if( XType/=NF_INT) then Status = WRF_WARN_TYPE_MISMATCH write(msg,*) & 'Warning TYPE MISMATCH in ',"ext_pnc_get_dom_ti.code",' ','INTEGER',', line', 101,' Element ', trim(Element) call wrf_debug ( WARN , msg) return endif endif if(Len<=0) then Status = WRF_WARN_LENGTH_LESS_THAN_1 write(msg,*) & 'Warning LENGTH < 1 in ',"ext_pnc_get_dom_ti.code",' ','INTEGER',', line', 109,' Element ', trim(Element) call wrf_debug ( WARN , msg) return endif allocate(Buffer(Len), STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_ALLOCATION_ERROR write(msg,*) & 'Fatal ALLOCATION ERROR in ',"ext_pnc_get_dom_ti.code",' ','INTEGER',', line', 118 call wrf_debug ( FATAL , msg) return endif stat = NFMPI_GET_ATT_INT (DH%NCID,NF_GLOBAL,Element,Buffer) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_get_dom_ti.code",' ','INTEGER',', line', 130,' Element ',Element call wrf_debug ( WARN , msg) return endif Data(1:min(Len,Count)) = Buffer(1:min(Len,Count)) deallocate(Buffer, STAT=stat) if(stat/= WRF_NO_ERR) then Status = WRF_ERR_FATAL_DEALLOCATION_ERR write(msg,*) & 'Fatal DEALLOCATION ERROR in ',"ext_pnc_get_dom_ti.code",' ','INTEGER',', line', 140 call wrf_debug ( FATAL , msg) return endif if(Len > Count) then OutCount = Count Status = WRF_WARN_MORE_DATA_IN_FILE else OutCount = Len Status = WRF_NO_ERR endif else Status = WRF_ERR_FATAL_BAD_FILE_STATUS write(msg,*) & 'Fatal error BAD FILE STATUS in ',"ext_pnc_get_dom_ti.code",' ','INTEGER',', line', 155 call wrf_debug ( FATAL , msg) endif ENDIF return end subroutine ext_pnc_get_dom_ti_integer subroutine ext_pnc_get_dom_ti_double(DataHandle,Element,Data,Count,OutCount,Status) !*------------------------------------------------------------------------------ !* Standard Disclaimer !* !* Forecast Systems Laboratory !* NOAA/OAR/ERL/FSL !* 325 Broadway !* Boulder, CO 80303 !* !* AVIATION DIVISION !* ADVANCED COMPUTING BRANCH !* SMS/NNT Version: 2.0.0 !* !* This software and its documentation are in the public domain and !* are furnished "as is". The United States government, its !* instrumentalities, officers, employees, and agents make no !* warranty, express or implied, as to the usefulness of the software !* and documentation for any purpose. They assume no !* responsibility (1) for the use of the software and documentation; !* or (2) to provide technical support to users. !* !* Permission to use, copy, modify, and distribute this software is !* hereby granted, provided that this disclaimer notice appears in !* all copies. All modifications to this software must be clearly !* documented, and are solely the responsibility of the agent making !* the modification. If significant modifications or enhancements !* are made to this software, the SMS Development team !* (sms-info@fsl.noaa.gov) should be notified. !* !*---------------------------------------------------------------------------- !* !* WRF NetCDF I/O ! Author: Jacques Middlecoff jacquesm@fsl.noaa.gov !* Date: October 6, 2000 !* !*---------------------------------------------------------------------------- use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: Element real*8,intent(out) :: Data(*) integer,intent(in) :: Count integer,intent(out) :: OutCOunt integer ,intent(out) :: Status type(wrf_data_handle) ,pointer :: DH integer :: XType integer(KIND=MPI_OFFSET_KIND) :: Len_okind integer :: Len integer :: stat real*8,allocatable :: Buffer(:) call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning Status = ',Status,' in ',"ext_pnc_get_dom_ti.code",' ','DOUBLE',', line', 58 call wrf_debug ( WARN , msg) return endif ! Do nothing unless it is time to read time-independent domain metadata. IF ( ncd_ok_to_get_dom_ti( DataHandle ) ) THEN if(DH%FileStatus == WRF_FILE_NOT_OPENED) then Status = WRF_WARN_FILE_NOT_OPENED write(msg,*) & 'Warning FILE NOT OPENED in ',"ext_pnc_get_dom_ti.code",' ','DOUBLE',', line', 67 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_NOT_COMMITTED) then Status = WRF_WARN_DRYRUN_READ write(msg,*) & 'Warning DRYRUN READ in ',"ext_pnc_get_dom_ti.code",' ','DOUBLE',', line', 72 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_WRITE) then Status = WRF_WARN_READ_WONLY_FILE write(msg,*) & 'Warning READ WRITE ONLY FILE in ',"ext_pnc_get_dom_ti.code",' ','DOUBLE',', line', 77 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_READ) then stat = NFMPI_INQ_ATT(DH%NCID,NF_GLOBAL,Element, XType, Len_okind) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_get_dom_ti.code",' ','DOUBLE',', line', 84,' Element ',trim(Element) call wrf_debug ( WARN , msg) return endif Len = Len_okind if ( NF_DOUBLE == NF_DOUBLE .OR. NF_DOUBLE == NF_FLOAT ) then if( .NOT. ( XType==NF_FLOAT .OR. XType==NF_DOUBLE) ) then Status = WRF_WARN_TYPE_MISMATCH write(msg,*) & 'Warning TYPE MISMATCH in ',"ext_pnc_get_dom_ti.code",' ','DOUBLE',', line', 93,' Element ', trim(Element) call wrf_debug ( WARN , msg) return endif else if( XType/=NF_DOUBLE) then Status = WRF_WARN_TYPE_MISMATCH write(msg,*) & 'Warning TYPE MISMATCH in ',"ext_pnc_get_dom_ti.code",' ','DOUBLE',', line', 101,' Element ', trim(Element) call wrf_debug ( WARN , msg) return endif endif if(Len<=0) then Status = WRF_WARN_LENGTH_LESS_THAN_1 write(msg,*) & 'Warning LENGTH < 1 in ',"ext_pnc_get_dom_ti.code",' ','DOUBLE',', line', 109,' Element ', trim(Element) call wrf_debug ( WARN , msg) return endif allocate(Buffer(Len), STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_ALLOCATION_ERROR write(msg,*) & 'Fatal ALLOCATION ERROR in ',"ext_pnc_get_dom_ti.code",' ','DOUBLE',', line', 118 call wrf_debug ( FATAL , msg) return endif stat = NFMPI_GET_ATT_DOUBLE (DH%NCID,NF_GLOBAL,Element,Buffer) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_get_dom_ti.code",' ','DOUBLE',', line', 130,' Element ',Element call wrf_debug ( WARN , msg) return endif Data(1:min(Len,Count)) = Buffer(1:min(Len,Count)) deallocate(Buffer, STAT=stat) if(stat/= WRF_NO_ERR) then Status = WRF_ERR_FATAL_DEALLOCATION_ERR write(msg,*) & 'Fatal DEALLOCATION ERROR in ',"ext_pnc_get_dom_ti.code",' ','DOUBLE',', line', 140 call wrf_debug ( FATAL , msg) return endif if(Len > Count) then OutCount = Count Status = WRF_WARN_MORE_DATA_IN_FILE else OutCount = Len Status = WRF_NO_ERR endif else Status = WRF_ERR_FATAL_BAD_FILE_STATUS write(msg,*) & 'Fatal error BAD FILE STATUS in ',"ext_pnc_get_dom_ti.code",' ','DOUBLE',', line', 155 call wrf_debug ( FATAL , msg) endif ENDIF return end subroutine ext_pnc_get_dom_ti_double subroutine ext_pnc_get_dom_ti_logical(DataHandle,Element,Data,Count,OutCount,Status) !*------------------------------------------------------------------------------ !* Standard Disclaimer !* !* Forecast Systems Laboratory !* NOAA/OAR/ERL/FSL !* 325 Broadway !* Boulder, CO 80303 !* !* AVIATION DIVISION !* ADVANCED COMPUTING BRANCH !* SMS/NNT Version: 2.0.0 !* !* This software and its documentation are in the public domain and !* are furnished "as is". The United States government, its !* instrumentalities, officers, employees, and agents make no !* warranty, express or implied, as to the usefulness of the software !* and documentation for any purpose. They assume no !* responsibility (1) for the use of the software and documentation; !* or (2) to provide technical support to users. !* !* Permission to use, copy, modify, and distribute this software is !* hereby granted, provided that this disclaimer notice appears in !* all copies. All modifications to this software must be clearly !* documented, and are solely the responsibility of the agent making !* the modification. If significant modifications or enhancements !* are made to this software, the SMS Development team !* (sms-info@fsl.noaa.gov) should be notified. !* !*---------------------------------------------------------------------------- !* !* WRF NetCDF I/O ! Author: Jacques Middlecoff jacquesm@fsl.noaa.gov !* Date: October 6, 2000 !* !*---------------------------------------------------------------------------- use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: Element logical,intent(out) :: Data(*) integer,intent(in) :: Count integer,intent(out) :: OutCOunt integer ,intent(out) :: Status type(wrf_data_handle) ,pointer :: DH integer :: XType integer(KIND=MPI_OFFSET_KIND) :: Len_okind integer :: Len integer :: stat integer,allocatable :: Buffer(:) call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning Status = ',Status,' in ',"ext_pnc_get_dom_ti.code",' ','LOGICAL',', line', 58 call wrf_debug ( WARN , msg) return endif ! Do nothing unless it is time to read time-independent domain metadata. IF ( ncd_ok_to_get_dom_ti( DataHandle ) ) THEN if(DH%FileStatus == WRF_FILE_NOT_OPENED) then Status = WRF_WARN_FILE_NOT_OPENED write(msg,*) & 'Warning FILE NOT OPENED in ',"ext_pnc_get_dom_ti.code",' ','LOGICAL',', line', 67 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_NOT_COMMITTED) then Status = WRF_WARN_DRYRUN_READ write(msg,*) & 'Warning DRYRUN READ in ',"ext_pnc_get_dom_ti.code",' ','LOGICAL',', line', 72 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_WRITE) then Status = WRF_WARN_READ_WONLY_FILE write(msg,*) & 'Warning READ WRITE ONLY FILE in ',"ext_pnc_get_dom_ti.code",' ','LOGICAL',', line', 77 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_READ) then stat = NFMPI_INQ_ATT(DH%NCID,NF_GLOBAL,Element, XType, Len_okind) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_get_dom_ti.code",' ','LOGICAL',', line', 84,' Element ',trim(Element) call wrf_debug ( WARN , msg) return endif Len = Len_okind if ( NF_INT == NF_DOUBLE .OR. NF_INT == NF_FLOAT ) then if( .NOT. ( XType==NF_FLOAT .OR. XType==NF_DOUBLE) ) then Status = WRF_WARN_TYPE_MISMATCH write(msg,*) & 'Warning TYPE MISMATCH in ',"ext_pnc_get_dom_ti.code",' ','LOGICAL',', line', 93,' Element ', trim(Element) call wrf_debug ( WARN , msg) return endif else if( XType/=NF_INT) then Status = WRF_WARN_TYPE_MISMATCH write(msg,*) & 'Warning TYPE MISMATCH in ',"ext_pnc_get_dom_ti.code",' ','LOGICAL',', line', 101,' Element ', trim(Element) call wrf_debug ( WARN , msg) return endif endif if(Len<=0) then Status = WRF_WARN_LENGTH_LESS_THAN_1 write(msg,*) & 'Warning LENGTH < 1 in ',"ext_pnc_get_dom_ti.code",' ','LOGICAL',', line', 109,' Element ', trim(Element) call wrf_debug ( WARN , msg) return endif allocate(Buffer(Len), STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_ALLOCATION_ERROR write(msg,*) & 'Fatal ALLOCATION ERROR in ',"ext_pnc_get_dom_ti.code",' ','LOGICAL',', line', 118 call wrf_debug ( FATAL , msg) return endif stat = NFMPI_GET_ATT_INT (DH%NCID,NF_GLOBAL,Element,Buffer) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_get_dom_ti.code",' ','LOGICAL',', line', 130,' Element ',Element call wrf_debug ( WARN , msg) return endif Data(1:min(Len,Count)) = Buffer(1:min(Len,Count))==1 deallocate(Buffer, STAT=stat) if(stat/= WRF_NO_ERR) then Status = WRF_ERR_FATAL_DEALLOCATION_ERR write(msg,*) & 'Fatal DEALLOCATION ERROR in ',"ext_pnc_get_dom_ti.code",' ','LOGICAL',', line', 140 call wrf_debug ( FATAL , msg) return endif if(Len > Count) then OutCount = Count Status = WRF_WARN_MORE_DATA_IN_FILE else OutCount = Len Status = WRF_NO_ERR endif else Status = WRF_ERR_FATAL_BAD_FILE_STATUS write(msg,*) & 'Fatal error BAD FILE STATUS in ',"ext_pnc_get_dom_ti.code",' ','LOGICAL',', line', 155 call wrf_debug ( FATAL , msg) endif ENDIF return end subroutine ext_pnc_get_dom_ti_logical subroutine ext_pnc_get_dom_ti_char(DataHandle,Element,Data,Status) !*------------------------------------------------------------------------------ !* Standard Disclaimer !* !* Forecast Systems Laboratory !* NOAA/OAR/ERL/FSL !* 325 Broadway !* Boulder, CO 80303 !* !* AVIATION DIVISION !* ADVANCED COMPUTING BRANCH !* SMS/NNT Version: 2.0.0 !* !* This software and its documentation are in the public domain and !* are furnished "as is". The United States government, its !* instrumentalities, officers, employees, and agents make no !* warranty, express or implied, as to the usefulness of the software !* and documentation for any purpose. They assume no !* responsibility (1) for the use of the software and documentation; !* or (2) to provide technical support to users. !* !* Permission to use, copy, modify, and distribute this software is !* hereby granted, provided that this disclaimer notice appears in !* all copies. All modifications to this software must be clearly !* documented, and are solely the responsibility of the agent making !* the modification. If significant modifications or enhancements !* are made to this software, the SMS Development team !* (sms-info@fsl.noaa.gov) should be notified. !* !*---------------------------------------------------------------------------- !* !* WRF NetCDF I/O ! Author: Jacques Middlecoff jacquesm@fsl.noaa.gov !* Date: October 6, 2000 !* !*---------------------------------------------------------------------------- use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: Element character*(*),intent(out) :: Data integer ,intent(out) :: Status type(wrf_data_handle) ,pointer :: DH integer :: XType integer(KIND=MPI_OFFSET_KIND) :: Len_okind integer :: Len integer :: stat call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning Status = ',Status,' in ',"ext_pnc_get_dom_ti.code",' ','CHAR',', line', 58 call wrf_debug ( WARN , msg) return endif ! Do nothing unless it is time to read time-independent domain metadata. IF ( ncd_ok_to_get_dom_ti( DataHandle ) ) THEN if(DH%FileStatus == WRF_FILE_NOT_OPENED) then Status = WRF_WARN_FILE_NOT_OPENED write(msg,*) & 'Warning FILE NOT OPENED in ',"ext_pnc_get_dom_ti.code",' ','CHAR',', line', 67 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_NOT_COMMITTED) then Status = WRF_WARN_DRYRUN_READ write(msg,*) & 'Warning DRYRUN READ in ',"ext_pnc_get_dom_ti.code",' ','CHAR',', line', 72 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_WRITE) then Status = WRF_WARN_READ_WONLY_FILE write(msg,*) & 'Warning READ WRITE ONLY FILE in ',"ext_pnc_get_dom_ti.code",' ','CHAR',', line', 77 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_READ) then stat = NFMPI_INQ_ATT(DH%NCID,NF_GLOBAL,Element, XType, Len_okind) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_get_dom_ti.code",' ','CHAR',', line', 84,' Element ',trim(Element) call wrf_debug ( WARN , msg) return endif Len = Len_okind if ( NF_CHAR == NF_DOUBLE .OR. NF_CHAR == NF_FLOAT ) then if( .NOT. ( XType==NF_FLOAT .OR. XType==NF_DOUBLE) ) then Status = WRF_WARN_TYPE_MISMATCH write(msg,*) & 'Warning TYPE MISMATCH in ',"ext_pnc_get_dom_ti.code",' ','CHAR',', line', 93,' Element ', trim(Element) call wrf_debug ( WARN , msg) return endif else if( XType/=NF_CHAR) then Status = WRF_WARN_TYPE_MISMATCH write(msg,*) & 'Warning TYPE MISMATCH in ',"ext_pnc_get_dom_ti.code",' ','CHAR',', line', 101,' Element ', trim(Element) call wrf_debug ( WARN , msg) return endif endif if(Len<=0) then Status = WRF_WARN_LENGTH_LESS_THAN_1 write(msg,*) & 'Warning LENGTH < 1 in ',"ext_pnc_get_dom_ti.code",' ','CHAR',', line', 109,' Element ', trim(Element) call wrf_debug ( WARN , msg) return endif Data = '' stat = NFMPI_GET_ATT_TEXT(DH%NCID,NF_GLOBAL,Element,Data) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_get_dom_ti.code",' ','CHAR',', line', 130,' Element ',Element call wrf_debug ( WARN , msg) return endif else Status = WRF_ERR_FATAL_BAD_FILE_STATUS write(msg,*) & 'Fatal error BAD FILE STATUS in ',"ext_pnc_get_dom_ti.code",' ','CHAR',', line', 155 call wrf_debug ( FATAL , msg) endif ENDIF return end subroutine ext_pnc_get_dom_ti_char subroutine ext_pnc_put_dom_ti_real(DataHandle,Element,Data,Count,Status) !*------------------------------------------------------------------------------ !* Standard Disclaimer !* !* Forecast Systems Laboratory !* NOAA/OAR/ERL/FSL !* 325 Broadway !* Boulder, CO 80303 !* !* AVIATION DIVISION !* ADVANCED COMPUTING BRANCH !* SMS/NNT Version: 2.0.0 !* !* This software and its documentation are in the public domain and !* are furnished "as is". The United States government, its !* instrumentalities, officers, employees, and agents make no !* warranty, express or implied, as to the usefulness of the software !* and documentation for any purpose. They assume no !* responsibility (1) for the use of the software and documentation; !* or (2) to provide technical support to users. !* !* Permission to use, copy, modify, and distribute this software is !* hereby granted, provided that this disclaimer notice appears in !* all copies. All modifications to this software must be clearly !* documented, and are solely the responsibility of the agent making !* the modification. If significant modifications or enhancements !* are made to this software, the SMS Development team !* (sms-info@fsl.noaa.gov) should be notified. !* !*---------------------------------------------------------------------------- !* !* WRF NetCDF I/O ! Author: Jacques Middlecoff jacquesm@fsl.noaa.gov !* Date: October 6, 2000 !* !*---------------------------------------------------------------------------- use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: Element real ,intent(in) :: Data(*) integer,intent(in) :: Count integer ,intent(out) :: Status type(wrf_data_handle) ,pointer :: DH integer :: stat integer :: stat2 integer ,allocatable :: Buffer(:) integer :: i call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning Status = ',Status,' in ',"ext_pnc_put_dom_ti.code",' ','REAL',', line', 56 call wrf_debug ( WARN , msg) return endif ! Do nothing unless it is time to write time-independent domain metadata. IF ( ncd_ok_to_put_dom_ti( DataHandle ) ) THEN if(DH%FileStatus == WRF_FILE_NOT_OPENED) then Status = WRF_WARN_FILE_NOT_OPENED write(msg,*) & 'Warning FILE NOT OPENED in ',"ext_pnc_put_dom_ti.code",' ','REAL',', line', 65 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_READ) then STATUS = WRF_WARN_WRITE_RONLY_FILE write(msg,*) & 'Warning WRITE READ ONLY FILE in ',"ext_pnc_put_dom_ti.code",' ','REAL',', line', 70 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_NOT_COMMITTED) then stat = NFMPI_PUT_ATT_REAL (DH%NCID,NF_GLOBAL,Element,NF_FLOAT,i2offset(Count),Data) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ',"ext_pnc_put_dom_ti.code",' ','REAL',', line', 101,' Element ',Element call wrf_debug ( WARN , msg) return endif elseif (DH%FileStatus == WRF_FILE_OPENED_FOR_WRITE) then stat = NFMPI_REDEF(DH%NCID) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_put_dom_ti.code",' ','REAL',', line', 110,' Element ',Element call wrf_debug ( WARN , msg) return endif stat = NFMPI_PUT_ATT_REAL (DH%NCID,NF_GLOBAL,Element,NF_FLOAT,i2offset(Count),Data) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_put_dom_ti.code",' ','REAL',', line', 145,' Element ',Element call wrf_debug ( WARN , msg) return endif ! stat = NFMPI_ENDDEF(DH%NCID) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_put_dom_ti.code",' ','REAL',', line', 153,' Element ',Element call wrf_debug ( WARN , msg) return endif else Status = WRF_ERR_FATAL_BAD_FILE_STATUS write(msg,*) & 'Fatal error BAD FILE STATUS in ',"ext_pnc_put_dom_ti.code",' ','REAL',', line', 160 call wrf_debug ( FATAL , msg) endif ENDIF return end subroutine ext_pnc_put_dom_ti_real subroutine ext_pnc_put_dom_ti_integer(DataHandle,Element,Data,Count,Status) !*------------------------------------------------------------------------------ !* Standard Disclaimer !* !* Forecast Systems Laboratory !* NOAA/OAR/ERL/FSL !* 325 Broadway !* Boulder, CO 80303 !* !* AVIATION DIVISION !* ADVANCED COMPUTING BRANCH !* SMS/NNT Version: 2.0.0 !* !* This software and its documentation are in the public domain and !* are furnished "as is". The United States government, its !* instrumentalities, officers, employees, and agents make no !* warranty, express or implied, as to the usefulness of the software !* and documentation for any purpose. They assume no !* responsibility (1) for the use of the software and documentation; !* or (2) to provide technical support to users. !* !* Permission to use, copy, modify, and distribute this software is !* hereby granted, provided that this disclaimer notice appears in !* all copies. All modifications to this software must be clearly !* documented, and are solely the responsibility of the agent making !* the modification. If significant modifications or enhancements !* are made to this software, the SMS Development team !* (sms-info@fsl.noaa.gov) should be notified. !* !*---------------------------------------------------------------------------- !* !* WRF NetCDF I/O ! Author: Jacques Middlecoff jacquesm@fsl.noaa.gov !* Date: October 6, 2000 !* !*---------------------------------------------------------------------------- use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: Element integer,intent(in) :: Data(*) integer,intent(in) :: Count integer ,intent(out) :: Status type(wrf_data_handle) ,pointer :: DH integer :: stat integer :: stat2 integer ,allocatable :: Buffer(:) integer :: i call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning Status = ',Status,' in ',"ext_pnc_put_dom_ti.code",' ','INTEGER',', line', 56 call wrf_debug ( WARN , msg) return endif ! Do nothing unless it is time to write time-independent domain metadata. IF ( ncd_ok_to_put_dom_ti( DataHandle ) ) THEN if(DH%FileStatus == WRF_FILE_NOT_OPENED) then Status = WRF_WARN_FILE_NOT_OPENED write(msg,*) & 'Warning FILE NOT OPENED in ',"ext_pnc_put_dom_ti.code",' ','INTEGER',', line', 65 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_READ) then STATUS = WRF_WARN_WRITE_RONLY_FILE write(msg,*) & 'Warning WRITE READ ONLY FILE in ',"ext_pnc_put_dom_ti.code",' ','INTEGER',', line', 70 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_NOT_COMMITTED) then stat = NFMPI_PUT_ATT_INT (DH%NCID,NF_GLOBAL,Element,NF_INT,i2offset(Count),Data) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ',"ext_pnc_put_dom_ti.code",' ','INTEGER',', line', 101,' Element ',Element call wrf_debug ( WARN , msg) return endif elseif (DH%FileStatus == WRF_FILE_OPENED_FOR_WRITE) then stat = NFMPI_REDEF(DH%NCID) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_put_dom_ti.code",' ','INTEGER',', line', 110,' Element ',Element call wrf_debug ( WARN , msg) return endif stat = NFMPI_PUT_ATT_INT (DH%NCID,NF_GLOBAL,Element,NF_INT,i2offset(Count),Data) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_put_dom_ti.code",' ','INTEGER',', line', 145,' Element ',Element call wrf_debug ( WARN , msg) return endif ! stat = NFMPI_ENDDEF(DH%NCID) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_put_dom_ti.code",' ','INTEGER',', line', 153,' Element ',Element call wrf_debug ( WARN , msg) return endif else Status = WRF_ERR_FATAL_BAD_FILE_STATUS write(msg,*) & 'Fatal error BAD FILE STATUS in ',"ext_pnc_put_dom_ti.code",' ','INTEGER',', line', 160 call wrf_debug ( FATAL , msg) endif ENDIF return end subroutine ext_pnc_put_dom_ti_integer subroutine ext_pnc_put_dom_ti_double(DataHandle,Element,Data,Count,Status) !*------------------------------------------------------------------------------ !* Standard Disclaimer !* !* Forecast Systems Laboratory !* NOAA/OAR/ERL/FSL !* 325 Broadway !* Boulder, CO 80303 !* !* AVIATION DIVISION !* ADVANCED COMPUTING BRANCH !* SMS/NNT Version: 2.0.0 !* !* This software and its documentation are in the public domain and !* are furnished "as is". The United States government, its !* instrumentalities, officers, employees, and agents make no !* warranty, express or implied, as to the usefulness of the software !* and documentation for any purpose. They assume no !* responsibility (1) for the use of the software and documentation; !* or (2) to provide technical support to users. !* !* Permission to use, copy, modify, and distribute this software is !* hereby granted, provided that this disclaimer notice appears in !* all copies. All modifications to this software must be clearly !* documented, and are solely the responsibility of the agent making !* the modification. If significant modifications or enhancements !* are made to this software, the SMS Development team !* (sms-info@fsl.noaa.gov) should be notified. !* !*---------------------------------------------------------------------------- !* !* WRF NetCDF I/O ! Author: Jacques Middlecoff jacquesm@fsl.noaa.gov !* Date: October 6, 2000 !* !*---------------------------------------------------------------------------- use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: Element real*8 ,intent(in) :: Data(*) integer,intent(in) :: Count integer ,intent(out) :: Status type(wrf_data_handle) ,pointer :: DH integer :: stat integer :: stat2 integer ,allocatable :: Buffer(:) integer :: i call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning Status = ',Status,' in ',"ext_pnc_put_dom_ti.code",' ','DOUBLE',', line', 56 call wrf_debug ( WARN , msg) return endif ! Do nothing unless it is time to write time-independent domain metadata. IF ( ncd_ok_to_put_dom_ti( DataHandle ) ) THEN if(DH%FileStatus == WRF_FILE_NOT_OPENED) then Status = WRF_WARN_FILE_NOT_OPENED write(msg,*) & 'Warning FILE NOT OPENED in ',"ext_pnc_put_dom_ti.code",' ','DOUBLE',', line', 65 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_READ) then STATUS = WRF_WARN_WRITE_RONLY_FILE write(msg,*) & 'Warning WRITE READ ONLY FILE in ',"ext_pnc_put_dom_ti.code",' ','DOUBLE',', line', 70 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_NOT_COMMITTED) then stat = NFMPI_PUT_ATT_DOUBLE (DH%NCID,NF_GLOBAL,Element,NF_DOUBLE,i2offset(Count),Data) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ',"ext_pnc_put_dom_ti.code",' ','DOUBLE',', line', 101,' Element ',Element call wrf_debug ( WARN , msg) return endif elseif (DH%FileStatus == WRF_FILE_OPENED_FOR_WRITE) then stat = NFMPI_REDEF(DH%NCID) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_put_dom_ti.code",' ','DOUBLE',', line', 110,' Element ',Element call wrf_debug ( WARN , msg) return endif stat = NFMPI_PUT_ATT_DOUBLE (DH%NCID,NF_GLOBAL,Element,NF_DOUBLE,i2offset(Count),Data) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_put_dom_ti.code",' ','DOUBLE',', line', 145,' Element ',Element call wrf_debug ( WARN , msg) return endif ! stat = NFMPI_ENDDEF(DH%NCID) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_put_dom_ti.code",' ','DOUBLE',', line', 153,' Element ',Element call wrf_debug ( WARN , msg) return endif else Status = WRF_ERR_FATAL_BAD_FILE_STATUS write(msg,*) & 'Fatal error BAD FILE STATUS in ',"ext_pnc_put_dom_ti.code",' ','DOUBLE',', line', 160 call wrf_debug ( FATAL , msg) endif ENDIF return end subroutine ext_pnc_put_dom_ti_double subroutine ext_pnc_put_dom_ti_logical(DataHandle,Element,Data,Count,Status) !*------------------------------------------------------------------------------ !* Standard Disclaimer !* !* Forecast Systems Laboratory !* NOAA/OAR/ERL/FSL !* 325 Broadway !* Boulder, CO 80303 !* !* AVIATION DIVISION !* ADVANCED COMPUTING BRANCH !* SMS/NNT Version: 2.0.0 !* !* This software and its documentation are in the public domain and !* are furnished "as is". The United States government, its !* instrumentalities, officers, employees, and agents make no !* warranty, express or implied, as to the usefulness of the software !* and documentation for any purpose. They assume no !* responsibility (1) for the use of the software and documentation; !* or (2) to provide technical support to users. !* !* Permission to use, copy, modify, and distribute this software is !* hereby granted, provided that this disclaimer notice appears in !* all copies. All modifications to this software must be clearly !* documented, and are solely the responsibility of the agent making !* the modification. If significant modifications or enhancements !* are made to this software, the SMS Development team !* (sms-info@fsl.noaa.gov) should be notified. !* !*---------------------------------------------------------------------------- !* !* WRF NetCDF I/O ! Author: Jacques Middlecoff jacquesm@fsl.noaa.gov !* Date: October 6, 2000 !* !*---------------------------------------------------------------------------- use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: Element logical,intent(in) :: Data(*) integer,intent(in) :: Count integer ,intent(out) :: Status type(wrf_data_handle) ,pointer :: DH integer :: stat integer :: stat2 integer ,allocatable :: Buffer(:) integer :: i call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning Status = ',Status,' in ',"ext_pnc_put_dom_ti.code",' ','LOGICAL',', line', 56 call wrf_debug ( WARN , msg) return endif ! Do nothing unless it is time to write time-independent domain metadata. IF ( ncd_ok_to_put_dom_ti( DataHandle ) ) THEN if(DH%FileStatus == WRF_FILE_NOT_OPENED) then Status = WRF_WARN_FILE_NOT_OPENED write(msg,*) & 'Warning FILE NOT OPENED in ',"ext_pnc_put_dom_ti.code",' ','LOGICAL',', line', 65 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_READ) then STATUS = WRF_WARN_WRITE_RONLY_FILE write(msg,*) & 'Warning WRITE READ ONLY FILE in ',"ext_pnc_put_dom_ti.code",' ','LOGICAL',', line', 70 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_NOT_COMMITTED) then allocate(Buffer(Count), STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_ALLOCATION_ERROR write(msg,*) 'Fatal ALLOCATION ERROR in ',"ext_pnc_put_dom_ti.code",' ','LOGICAL',', line', 77 call wrf_debug ( FATAL , msg) return endif do i=1,Count if(data(i)) then Buffer(i)=1 else Buffer(i)=0 endif enddo stat = NFMPI_PUT_ATT_INT (DH%NCID,NF_GLOBAL,Element,NF_INT,i2offset(Count),Buffer) deallocate(Buffer, STAT=stat2) if(stat2/= 0) then Status = WRF_ERR_FATAL_DEALLOCATION_ERR write(msg,*) 'Fatal DEALLOCATION ERROR in ',"ext_pnc_put_dom_ti.code",' ','LOGICAL',', line', 92 call wrf_debug ( FATAL , msg) return endif call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ',"ext_pnc_put_dom_ti.code",' ','LOGICAL',', line', 101,' Element ',Element call wrf_debug ( WARN , msg) return endif elseif (DH%FileStatus == WRF_FILE_OPENED_FOR_WRITE) then stat = NFMPI_REDEF(DH%NCID) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_put_dom_ti.code",' ','LOGICAL',', line', 110,' Element ',Element call wrf_debug ( WARN , msg) return endif allocate(Buffer(Count), STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_ALLOCATION_ERROR write(msg,*) & 'Fatal ALLOCATION ERROR in ',"ext_pnc_put_dom_ti.code",' ','LOGICAL',', line', 119 call wrf_debug ( FATAL , msg) return endif do i=1,Count if(data(i)) then Buffer(i)=1 else Buffer(i)=0 endif enddo stat = NFMPI_PUT_ATT_INT (DH%NCID,NF_GLOBAL,Element,NF_INT,i2offset(Count),Buffer) deallocate(Buffer, STAT=stat2) if(stat2/= 0) then Status = WRF_ERR_FATAL_DEALLOCATION_ERR write(msg,*) & 'Fatal DEALLOCATION ERROR in ',"ext_pnc_put_dom_ti.code",' ','LOGICAL',', line', 135 call wrf_debug ( FATAL , msg) return endif call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_put_dom_ti.code",' ','LOGICAL',', line', 145,' Element ',Element call wrf_debug ( WARN , msg) return endif ! stat = NFMPI_ENDDEF(DH%NCID) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_put_dom_ti.code",' ','LOGICAL',', line', 153,' Element ',Element call wrf_debug ( WARN , msg) return endif else Status = WRF_ERR_FATAL_BAD_FILE_STATUS write(msg,*) & 'Fatal error BAD FILE STATUS in ',"ext_pnc_put_dom_ti.code",' ','LOGICAL',', line', 160 call wrf_debug ( FATAL , msg) endif ENDIF return end subroutine ext_pnc_put_dom_ti_logical subroutine ext_pnc_put_dom_ti_char(DataHandle,Element,Data,Status) !*------------------------------------------------------------------------------ !* Standard Disclaimer !* !* Forecast Systems Laboratory !* NOAA/OAR/ERL/FSL !* 325 Broadway !* Boulder, CO 80303 !* !* AVIATION DIVISION !* ADVANCED COMPUTING BRANCH !* SMS/NNT Version: 2.0.0 !* !* This software and its documentation are in the public domain and !* are furnished "as is". The United States government, its !* instrumentalities, officers, employees, and agents make no !* warranty, express or implied, as to the usefulness of the software !* and documentation for any purpose. They assume no !* responsibility (1) for the use of the software and documentation; !* or (2) to provide technical support to users. !* !* Permission to use, copy, modify, and distribute this software is !* hereby granted, provided that this disclaimer notice appears in !* all copies. All modifications to this software must be clearly !* documented, and are solely the responsibility of the agent making !* the modification. If significant modifications or enhancements !* are made to this software, the SMS Development team !* (sms-info@fsl.noaa.gov) should be notified. !* !*---------------------------------------------------------------------------- !* !* WRF NetCDF I/O ! Author: Jacques Middlecoff jacquesm@fsl.noaa.gov !* Date: October 6, 2000 !* !*---------------------------------------------------------------------------- use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: Element character*(*),intent(in) :: Data integer,parameter :: Count=1 integer ,intent(out) :: Status type(wrf_data_handle) ,pointer :: DH integer :: stat integer :: stat2 integer ,allocatable :: Buffer(:) integer :: i call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning Status = ',Status,' in ',"ext_pnc_put_dom_ti.code",' ','CHAR',', line', 56 call wrf_debug ( WARN , msg) return endif ! Do nothing unless it is time to write time-independent domain metadata. IF ( ncd_ok_to_put_dom_ti( DataHandle ) ) THEN if(DH%FileStatus == WRF_FILE_NOT_OPENED) then Status = WRF_WARN_FILE_NOT_OPENED write(msg,*) & 'Warning FILE NOT OPENED in ',"ext_pnc_put_dom_ti.code",' ','CHAR',', line', 65 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_READ) then STATUS = WRF_WARN_WRITE_RONLY_FILE write(msg,*) & 'Warning WRITE READ ONLY FILE in ',"ext_pnc_put_dom_ti.code",' ','CHAR',', line', 70 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_NOT_COMMITTED) then stat = NFMPI_PUT_ATT_TEXT (DH%NCID,NF_GLOBAL,Element,i2offset(len_trim(Data)),Data) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ',"ext_pnc_put_dom_ti.code",' ','CHAR',', line', 101,' Element ',Element call wrf_debug ( WARN , msg) return endif elseif (DH%FileStatus == WRF_FILE_OPENED_FOR_WRITE) then stat = NFMPI_REDEF(DH%NCID) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_put_dom_ti.code",' ','CHAR',', line', 110,' Element ',Element call wrf_debug ( WARN , msg) return endif stat = NFMPI_PUT_ATT_TEXT (DH%NCID,NF_GLOBAL,Element,i2offset(len_trim(Data)),Data) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_put_dom_ti.code",' ','CHAR',', line', 145,' Element ',Element call wrf_debug ( WARN , msg) return endif ! stat = NFMPI_ENDDEF(DH%NCID) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_put_dom_ti.code",' ','CHAR',', line', 153,' Element ',Element call wrf_debug ( WARN , msg) return endif else Status = WRF_ERR_FATAL_BAD_FILE_STATUS write(msg,*) & 'Fatal error BAD FILE STATUS in ',"ext_pnc_put_dom_ti.code",' ','CHAR',', line', 160 call wrf_debug ( FATAL , msg) endif ENDIF return end subroutine ext_pnc_put_dom_ti_char subroutine ext_pnc_put_var_ti_real(DataHandle,Element,Var,Data,Count,Status) !*------------------------------------------------------------------------------ !* Standard Disclaimer !* !* Forecast Systems Laboratory !* NOAA/OAR/ERL/FSL !* 325 Broadway !* Boulder, CO 80303 !* !* AVIATION DIVISION !* ADVANCED COMPUTING BRANCH !* SMS/NNT Version: 2.0.0 !* !* This software and its documentation are in the public domain and !* are furnished "as is". The United States government, its !* instrumentalities, officers, employees, and agents make no !* warranty, express or implied, as to the usefulness of the software !* and documentation for any purpose. They assume no !* responsibility (1) for the use of the software and documentation; !* or (2) to provide technical support to users. !* !* Permission to use, copy, modify, and distribute this software is !* hereby granted, provided that this disclaimer notice appears in !* all copies. All modifications to this software must be clearly !* documented, and are solely the responsibility of the agent making !* the modification. If significant modifications or enhancements !* are made to this software, the SMS Development team !* (sms-info@fsl.noaa.gov) should be notified. !* !*---------------------------------------------------------------------------- !* !* WRF NetCDF I/O ! Author: Jacques Middlecoff jacquesm@fsl.noaa.gov !* Date: October 6, 2000 !* !*---------------------------------------------------------------------------- use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: Element character*(*) ,intent(in) :: Var real ,intent(in) :: Data(*) integer ,intent(in) :: Count integer ,intent(out) :: Status type(wrf_data_handle) ,pointer :: DH character (VarNameLen) :: VarName integer :: stat integer ,allocatable :: Buffer(:) integer :: i integer :: NVar character*1 :: null null=char(0) VarName = Var call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning Status = ',Status,' in ',"ext_pnc_put_var_ti.code",' ','REAL',', line', 61 call wrf_debug ( WARN , msg) return endif if(DH%FileStatus == WRF_FILE_NOT_OPENED) then Status = WRF_WARN_FILE_NOT_OPENED write(msg,*) & 'Warning FILE NOT OPENED in ',"ext_pnc_put_var_ti.code",' ','REAL',', line', 68 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_READ) then Status = WRF_WARN_WRITE_RONLY_FILE write(msg,*) & 'Warning WRITE READ ONLY FILE in ',"ext_pnc_put_var_ti.code",' ','REAL',', line', 73 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_WRITE) then Status = WRF_WARN_MD_AFTER_OPEN write(msg,*) & 'Warning WRITE METADATA AFTER OPEN in ',"ext_pnc_put_var_ti.code",' ','REAL',', line', 78 call wrf_debug ( WARN , msg) return elseif(DH%FileStatus == WRF_FILE_OPENED_NOT_COMMITTED) then do NVar=1,MaxVars if(TRIM(DH%VarNames(NVar)) == TRIM(VarName)) then exit elseif(NVar == MaxVars) then Status = WRF_WARN_VAR_NF write(msg,*) & 'Warning VARIABLE NOT FOUND in ',"ext_pnc_put_var_ti.code",' ','REAL',', line', 88 & ,NVar,VarName call wrf_debug ( WARN , msg) return endif enddo stat = NFMPI_PUT_ATT_REAL(DH%NCID,DH%VarIDs(NVar),trim(Element), NF_FLOAT,i2offset(Count),Data ) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error for Var ',TRIM(Var),& ' Element ',trim(Element),' in ',"ext_pnc_put_var_ti.code",' ','REAL',', line', 124 call wrf_debug ( WARN , msg) endif else Status = WRF_ERR_FATAL_BAD_FILE_STATUS write(msg,*) & 'Fatal error BAD FILE STATUS in ',"ext_pnc_put_var_ti.code",' ','REAL',', line', 140 call wrf_debug ( FATAL , msg) return endif return end subroutine ext_pnc_put_var_ti_real subroutine ext_pnc_put_var_td_real(DataHandle,Element,DateStr,Var,Data,Count,Status) !*------------------------------------------------------------------------------ !* Standard Disclaimer !* !* Forecast Systems Laboratory !* NOAA/OAR/ERL/FSL !* 325 Broadway !* Boulder, CO 80303 !* !* AVIATION DIVISION !* ADVANCED COMPUTING BRANCH !* SMS/NNT Version: 2.0.0 !* !* This software and its documentation are in the public domain and !* are furnished "as is". The United States government, its !* instrumentalities, officers, employees, and agents make no !* warranty, express or implied, as to the usefulness of the software !* and documentation for any purpose. They assume no !* responsibility (1) for the use of the software and documentation; !* or (2) to provide technical support to users. !* !* Permission to use, copy, modify, and distribute this software is !* hereby granted, provided that this disclaimer notice appears in !* all copies. All modifications to this software must be clearly !* documented, and are solely the responsibility of the agent making !* the modification. If significant modifications or enhancements !* are made to this software, the SMS Development team !* (sms-info@fsl.noaa.gov) should be notified. !* !*---------------------------------------------------------------------------- !* !* WRF NetCDF I/O ! Author: Jacques Middlecoff jacquesm@fsl.noaa.gov !* Date: October 6, 2000 !* !*---------------------------------------------------------------------------- use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: Element character*(*) ,intent(in) :: DateStr character*(*) ,intent(in) :: Var real ,intent(in) :: Data(*) integer ,intent(in) :: Count integer ,intent(out) :: Status type(wrf_data_handle) ,pointer :: DH character (VarNameLen) :: VarName character (40+len(Element)) :: Name integer :: stat integer :: stat2 integer ,allocatable :: Buffer(:) integer :: i integer :: VDims (2) integer(KIND=MPI_OFFSET_KIND) :: VStart(2) integer(KIND=MPI_OFFSET_KIND) :: VCount(2) integer :: NVar integer :: TimeIndex integer :: NCID VarName = Var call DateCheck(DateStr,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning DATE STRING ERROR in ',"ext_pnc_put_var_td.code",' ','REAL',', line', 67 call wrf_debug ( WARN , msg) return endif call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning Status = ',Status,' in ',"ext_pnc_put_var_td.code",' ','REAL',', line', 74 call wrf_debug ( WARN , msg) return endif NCID = DH%NCID call GetName(Element, VarName, Name, Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning Status = ',Status,' in ',"ext_pnc_put_var_td.code",' ','REAL',', line', 82 call wrf_debug ( WARN , msg) return endif if(DH%FileStatus == WRF_FILE_NOT_OPENED) then Status = WRF_WARN_FILE_NOT_OPENED write(msg,*) & 'Warning FILE NOT OPENED in ',"ext_pnc_put_var_td.code",' ','REAL',', line', 89 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_READ) then Status = WRF_WARN_WRITE_RONLY_FILE write(msg,*) & 'Warning WRITE READ ONLY FILE in ',"ext_pnc_put_var_td.code",' ','REAL',', line', 94 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_NOT_COMMITTED) then if(Count < 1) then Status = WRF_WARN_ZERO_LENGTH_PUT return endif do NVar=1,MaxVars if(DH%MDVarNames(NVar) == Name) then Status = WRF_WARN_2DRYRUNS_1VARIABLE return elseif(DH%MDVarNames(NVar) == NO_NAME) then DH%MDVarNames(NVar) = Name exit elseif(NVar == MaxVars) then Status = WRF_WARN_TOO_MANY_VARIABLES write(msg,*) & 'Warning TOO MANY VARIABLES in ',"ext_pnc_put_var_td.code",' ','REAL',', line', 111 call wrf_debug ( WARN , msg) return endif enddo do i=1,MaxDims if(DH%DimLengths(i) == Count) then exit elseif(DH%DimLengths(i) == NO_DIM) then stat = NFMPI_DEF_DIM(NCID,DH%DimNames(i),i2offset(Count),DH%DimIDs(i)) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_put_var_td.code",' ','REAL',', line', 124,' Element ',Element call wrf_debug ( WARN , msg) return endif DH%DimLengths(i) = Count exit elseif(i == MaxDims) then Status = WRF_WARN_TOO_MANY_DIMS write(msg,*) & 'Warning TOO MANY DIMENSIONS in ',"ext_pnc_put_var_td.code",' ','REAL',', line', 133 call wrf_debug ( WARN , msg) return endif enddo DH%MDVarDimLens(NVar) = Count VDims(1) = DH%DimIDs(i) VDims(2) = DH%DimUnlimID stat = NFMPI_DEF_VAR(NCID,Name,NF_FLOAT,2,VDims,DH%MDVarIDs(NVar)) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_put_var_td.code",' ','REAL',', line', 145,' Element ',Element call wrf_debug ( WARN , msg) return endif elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_WRITE) then do NVar=1,MaxVars if(DH%MDVarNames(NVar) == Name) then exit elseif(DH%MDVarNames(NVar) == NO_NAME) then Status = WRF_WARN_MD_NF write(msg,*) & 'Warning METADATA NOT FOUND in ',"ext_pnc_put_var_td.code",' ','REAL',', line', 156 call wrf_debug ( WARN , msg) return elseif(NVar == MaxVars) then Status = WRF_WARN_TOO_MANY_VARIABLES write(msg,*) & 'Warning TOO MANY VARIABLES in ',"ext_pnc_put_var_td.code",' ','REAL',', line', 162 call wrf_debug ( WARN , msg) return endif enddo if(Count > DH%MDVarDimLens(NVar)) then Status = WRF_WARN_COUNT_TOO_LONG write(msg,*) & 'Warning COUNT TOO LONG in ',"ext_pnc_put_var_td.code",' ','REAL',', line', 170 call wrf_debug ( WARN , msg) return elseif(Count < 1) then Status = WRF_WARN_ZERO_LENGTH_PUT write(msg,*) & 'Warning ZERO LENGTH PUT in ',"ext_pnc_put_var_td.code",' ','REAL',', line', 176 call wrf_debug ( WARN , msg) return endif call GetTimeIndex('write',DataHandle,DateStr,TimeIndex,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning in ',"ext_pnc_put_var_td.code",' ','REAL',', line', 183 call wrf_debug ( WARN , msg) return endif VStart(1) = 1 VStart(2) = TimeIndex VCount(1) = Count VCount(2) = 1 stat = NFMPI_PUT_VARA_REAL_ALL (NCID,DH%MDVarIDs(NVar),VStart,VCount,Data) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_put_var_td.code",' ','REAL',', line', 222,' Element ',Element call wrf_debug ( WARN , msg) return endif else Status = WRF_ERR_FATAL_BAD_FILE_STATUS write(msg,*) & 'Fatal error BAD FILE STATUS in ',"ext_pnc_put_var_td.code",' ','REAL',', line', 229 call wrf_debug ( FATAL , msg) return endif return end subroutine ext_pnc_put_var_td_real subroutine ext_pnc_put_var_ti_double(DataHandle,Element,Var,Data,Count,Status) !*------------------------------------------------------------------------------ !* Standard Disclaimer !* !* Forecast Systems Laboratory !* NOAA/OAR/ERL/FSL !* 325 Broadway !* Boulder, CO 80303 !* !* AVIATION DIVISION !* ADVANCED COMPUTING BRANCH !* SMS/NNT Version: 2.0.0 !* !* This software and its documentation are in the public domain and !* are furnished "as is". The United States government, its !* instrumentalities, officers, employees, and agents make no !* warranty, express or implied, as to the usefulness of the software !* and documentation for any purpose. They assume no !* responsibility (1) for the use of the software and documentation; !* or (2) to provide technical support to users. !* !* Permission to use, copy, modify, and distribute this software is !* hereby granted, provided that this disclaimer notice appears in !* all copies. All modifications to this software must be clearly !* documented, and are solely the responsibility of the agent making !* the modification. If significant modifications or enhancements !* are made to this software, the SMS Development team !* (sms-info@fsl.noaa.gov) should be notified. !* !*---------------------------------------------------------------------------- !* !* WRF NetCDF I/O ! Author: Jacques Middlecoff jacquesm@fsl.noaa.gov !* Date: October 6, 2000 !* !*---------------------------------------------------------------------------- use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: Element character*(*) ,intent(in) :: Var real*8 ,intent(in) :: Data(*) integer ,intent(in) :: Count integer ,intent(out) :: Status type(wrf_data_handle) ,pointer :: DH character (VarNameLen) :: VarName integer :: stat integer ,allocatable :: Buffer(:) integer :: i integer :: NVar character*1 :: null null=char(0) VarName = Var call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning Status = ',Status,' in ',"ext_pnc_put_var_ti.code",' ','DOUBLE',', line', 61 call wrf_debug ( WARN , msg) return endif if(DH%FileStatus == WRF_FILE_NOT_OPENED) then Status = WRF_WARN_FILE_NOT_OPENED write(msg,*) & 'Warning FILE NOT OPENED in ',"ext_pnc_put_var_ti.code",' ','DOUBLE',', line', 68 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_READ) then Status = WRF_WARN_WRITE_RONLY_FILE write(msg,*) & 'Warning WRITE READ ONLY FILE in ',"ext_pnc_put_var_ti.code",' ','DOUBLE',', line', 73 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_WRITE) then Status = WRF_WARN_MD_AFTER_OPEN write(msg,*) & 'Warning WRITE METADATA AFTER OPEN in ',"ext_pnc_put_var_ti.code",' ','DOUBLE',', line', 78 call wrf_debug ( WARN , msg) return elseif(DH%FileStatus == WRF_FILE_OPENED_NOT_COMMITTED) then do NVar=1,MaxVars if(TRIM(DH%VarNames(NVar)) == TRIM(VarName)) then exit elseif(NVar == MaxVars) then Status = WRF_WARN_VAR_NF write(msg,*) & 'Warning VARIABLE NOT FOUND in ',"ext_pnc_put_var_ti.code",' ','DOUBLE',', line', 88 & ,NVar,VarName call wrf_debug ( WARN , msg) return endif enddo stat = NFMPI_PUT_ATT_DOUBLE(DH%NCID,DH%VarIDs(NVar),trim(Element), NF_DOUBLE,i2offset(Count),Data ) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error for Var ',TRIM(Var),& ' Element ',trim(Element),' in ',"ext_pnc_put_var_ti.code",' ','DOUBLE',', line', 124 call wrf_debug ( WARN , msg) endif else Status = WRF_ERR_FATAL_BAD_FILE_STATUS write(msg,*) & 'Fatal error BAD FILE STATUS in ',"ext_pnc_put_var_ti.code",' ','DOUBLE',', line', 140 call wrf_debug ( FATAL , msg) return endif return end subroutine ext_pnc_put_var_ti_double subroutine ext_pnc_put_var_td_double(DataHandle,Element,DateStr,Var,Data,Count,Status) !*------------------------------------------------------------------------------ !* Standard Disclaimer !* !* Forecast Systems Laboratory !* NOAA/OAR/ERL/FSL !* 325 Broadway !* Boulder, CO 80303 !* !* AVIATION DIVISION !* ADVANCED COMPUTING BRANCH !* SMS/NNT Version: 2.0.0 !* !* This software and its documentation are in the public domain and !* are furnished "as is". The United States government, its !* instrumentalities, officers, employees, and agents make no !* warranty, express or implied, as to the usefulness of the software !* and documentation for any purpose. They assume no !* responsibility (1) for the use of the software and documentation; !* or (2) to provide technical support to users. !* !* Permission to use, copy, modify, and distribute this software is !* hereby granted, provided that this disclaimer notice appears in !* all copies. All modifications to this software must be clearly !* documented, and are solely the responsibility of the agent making !* the modification. If significant modifications or enhancements !* are made to this software, the SMS Development team !* (sms-info@fsl.noaa.gov) should be notified. !* !*---------------------------------------------------------------------------- !* !* WRF NetCDF I/O ! Author: Jacques Middlecoff jacquesm@fsl.noaa.gov !* Date: October 6, 2000 !* !*---------------------------------------------------------------------------- use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: Element character*(*) ,intent(in) :: DateStr character*(*) ,intent(in) :: Var real*8,intent(in) :: Data(*) integer ,intent(in) :: Count integer ,intent(out) :: Status type(wrf_data_handle) ,pointer :: DH character (VarNameLen) :: VarName character (40+len(Element)) :: Name integer :: stat integer :: stat2 integer ,allocatable :: Buffer(:) integer :: i integer :: VDims (2) integer(KIND=MPI_OFFSET_KIND) :: VStart(2) integer(KIND=MPI_OFFSET_KIND) :: VCount(2) integer :: NVar integer :: TimeIndex integer :: NCID VarName = Var call DateCheck(DateStr,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning DATE STRING ERROR in ',"ext_pnc_put_var_td.code",' ','DOUBLE',', line', 67 call wrf_debug ( WARN , msg) return endif call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning Status = ',Status,' in ',"ext_pnc_put_var_td.code",' ','DOUBLE',', line', 74 call wrf_debug ( WARN , msg) return endif NCID = DH%NCID call GetName(Element, VarName, Name, Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning Status = ',Status,' in ',"ext_pnc_put_var_td.code",' ','DOUBLE',', line', 82 call wrf_debug ( WARN , msg) return endif if(DH%FileStatus == WRF_FILE_NOT_OPENED) then Status = WRF_WARN_FILE_NOT_OPENED write(msg,*) & 'Warning FILE NOT OPENED in ',"ext_pnc_put_var_td.code",' ','DOUBLE',', line', 89 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_READ) then Status = WRF_WARN_WRITE_RONLY_FILE write(msg,*) & 'Warning WRITE READ ONLY FILE in ',"ext_pnc_put_var_td.code",' ','DOUBLE',', line', 94 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_NOT_COMMITTED) then if(Count < 1) then Status = WRF_WARN_ZERO_LENGTH_PUT return endif do NVar=1,MaxVars if(DH%MDVarNames(NVar) == Name) then Status = WRF_WARN_2DRYRUNS_1VARIABLE return elseif(DH%MDVarNames(NVar) == NO_NAME) then DH%MDVarNames(NVar) = Name exit elseif(NVar == MaxVars) then Status = WRF_WARN_TOO_MANY_VARIABLES write(msg,*) & 'Warning TOO MANY VARIABLES in ',"ext_pnc_put_var_td.code",' ','DOUBLE',', line', 111 call wrf_debug ( WARN , msg) return endif enddo do i=1,MaxDims if(DH%DimLengths(i) == Count) then exit elseif(DH%DimLengths(i) == NO_DIM) then stat = NFMPI_DEF_DIM(NCID,DH%DimNames(i),i2offset(Count),DH%DimIDs(i)) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_put_var_td.code",' ','DOUBLE',', line', 124,' Element ',Element call wrf_debug ( WARN , msg) return endif DH%DimLengths(i) = Count exit elseif(i == MaxDims) then Status = WRF_WARN_TOO_MANY_DIMS write(msg,*) & 'Warning TOO MANY DIMENSIONS in ',"ext_pnc_put_var_td.code",' ','DOUBLE',', line', 133 call wrf_debug ( WARN , msg) return endif enddo DH%MDVarDimLens(NVar) = Count VDims(1) = DH%DimIDs(i) VDims(2) = DH%DimUnlimID stat = NFMPI_DEF_VAR(NCID,Name,NF_DOUBLE,2,VDims,DH%MDVarIDs(NVar)) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_put_var_td.code",' ','DOUBLE',', line', 145,' Element ',Element call wrf_debug ( WARN , msg) return endif elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_WRITE) then do NVar=1,MaxVars if(DH%MDVarNames(NVar) == Name) then exit elseif(DH%MDVarNames(NVar) == NO_NAME) then Status = WRF_WARN_MD_NF write(msg,*) & 'Warning METADATA NOT FOUND in ',"ext_pnc_put_var_td.code",' ','DOUBLE',', line', 156 call wrf_debug ( WARN , msg) return elseif(NVar == MaxVars) then Status = WRF_WARN_TOO_MANY_VARIABLES write(msg,*) & 'Warning TOO MANY VARIABLES in ',"ext_pnc_put_var_td.code",' ','DOUBLE',', line', 162 call wrf_debug ( WARN , msg) return endif enddo if(Count > DH%MDVarDimLens(NVar)) then Status = WRF_WARN_COUNT_TOO_LONG write(msg,*) & 'Warning COUNT TOO LONG in ',"ext_pnc_put_var_td.code",' ','DOUBLE',', line', 170 call wrf_debug ( WARN , msg) return elseif(Count < 1) then Status = WRF_WARN_ZERO_LENGTH_PUT write(msg,*) & 'Warning ZERO LENGTH PUT in ',"ext_pnc_put_var_td.code",' ','DOUBLE',', line', 176 call wrf_debug ( WARN , msg) return endif call GetTimeIndex('write',DataHandle,DateStr,TimeIndex,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning in ',"ext_pnc_put_var_td.code",' ','DOUBLE',', line', 183 call wrf_debug ( WARN , msg) return endif VStart(1) = 1 VStart(2) = TimeIndex VCount(1) = Count VCount(2) = 1 stat = NFMPI_PUT_VARA_DOUBLE_ALL (NCID,DH%MDVarIDs(NVar),VStart,VCount,Data) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_put_var_td.code",' ','DOUBLE',', line', 222,' Element ',Element call wrf_debug ( WARN , msg) return endif else Status = WRF_ERR_FATAL_BAD_FILE_STATUS write(msg,*) & 'Fatal error BAD FILE STATUS in ',"ext_pnc_put_var_td.code",' ','DOUBLE',', line', 229 call wrf_debug ( FATAL , msg) return endif return end subroutine ext_pnc_put_var_td_double subroutine ext_pnc_put_var_ti_integer(DataHandle,Element,Var,Data,Count,Status) !*------------------------------------------------------------------------------ !* Standard Disclaimer !* !* Forecast Systems Laboratory !* NOAA/OAR/ERL/FSL !* 325 Broadway !* Boulder, CO 80303 !* !* AVIATION DIVISION !* ADVANCED COMPUTING BRANCH !* SMS/NNT Version: 2.0.0 !* !* This software and its documentation are in the public domain and !* are furnished "as is". The United States government, its !* instrumentalities, officers, employees, and agents make no !* warranty, express or implied, as to the usefulness of the software !* and documentation for any purpose. They assume no !* responsibility (1) for the use of the software and documentation; !* or (2) to provide technical support to users. !* !* Permission to use, copy, modify, and distribute this software is !* hereby granted, provided that this disclaimer notice appears in !* all copies. All modifications to this software must be clearly !* documented, and are solely the responsibility of the agent making !* the modification. If significant modifications or enhancements !* are made to this software, the SMS Development team !* (sms-info@fsl.noaa.gov) should be notified. !* !*---------------------------------------------------------------------------- !* !* WRF NetCDF I/O ! Author: Jacques Middlecoff jacquesm@fsl.noaa.gov !* Date: October 6, 2000 !* !*---------------------------------------------------------------------------- use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: Element character*(*) ,intent(in) :: Var integer ,intent(in) :: Data(*) integer ,intent(in) :: Count integer ,intent(out) :: Status type(wrf_data_handle) ,pointer :: DH character (VarNameLen) :: VarName integer :: stat integer ,allocatable :: Buffer(:) integer :: i integer :: NVar character*1 :: null null=char(0) VarName = Var call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning Status = ',Status,' in ',"ext_pnc_put_var_ti.code",' ','INTEGER',', line', 61 call wrf_debug ( WARN , msg) return endif if(DH%FileStatus == WRF_FILE_NOT_OPENED) then Status = WRF_WARN_FILE_NOT_OPENED write(msg,*) & 'Warning FILE NOT OPENED in ',"ext_pnc_put_var_ti.code",' ','INTEGER',', line', 68 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_READ) then Status = WRF_WARN_WRITE_RONLY_FILE write(msg,*) & 'Warning WRITE READ ONLY FILE in ',"ext_pnc_put_var_ti.code",' ','INTEGER',', line', 73 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_WRITE) then Status = WRF_WARN_MD_AFTER_OPEN write(msg,*) & 'Warning WRITE METADATA AFTER OPEN in ',"ext_pnc_put_var_ti.code",' ','INTEGER',', line', 78 call wrf_debug ( WARN , msg) return elseif(DH%FileStatus == WRF_FILE_OPENED_NOT_COMMITTED) then do NVar=1,MaxVars if(TRIM(DH%VarNames(NVar)) == TRIM(VarName)) then exit elseif(NVar == MaxVars) then Status = WRF_WARN_VAR_NF write(msg,*) & 'Warning VARIABLE NOT FOUND in ',"ext_pnc_put_var_ti.code",' ','INTEGER',', line', 88 & ,NVar,VarName call wrf_debug ( WARN , msg) return endif enddo stat = NFMPI_PUT_ATT_INT(DH%NCID,DH%VarIDs(NVar),trim(Element), NF_INT,i2offset(Count),Data ) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error for Var ',TRIM(Var),& ' Element ',trim(Element),' in ',"ext_pnc_put_var_ti.code",' ','INTEGER',', line', 124 call wrf_debug ( WARN , msg) endif else Status = WRF_ERR_FATAL_BAD_FILE_STATUS write(msg,*) & 'Fatal error BAD FILE STATUS in ',"ext_pnc_put_var_ti.code",' ','INTEGER',', line', 140 call wrf_debug ( FATAL , msg) return endif return end subroutine ext_pnc_put_var_ti_integer subroutine ext_pnc_put_var_td_integer(DataHandle,Element,DateStr,Var,Data,Count,Status) !*------------------------------------------------------------------------------ !* Standard Disclaimer !* !* Forecast Systems Laboratory !* NOAA/OAR/ERL/FSL !* 325 Broadway !* Boulder, CO 80303 !* !* AVIATION DIVISION !* ADVANCED COMPUTING BRANCH !* SMS/NNT Version: 2.0.0 !* !* This software and its documentation are in the public domain and !* are furnished "as is". The United States government, its !* instrumentalities, officers, employees, and agents make no !* warranty, express or implied, as to the usefulness of the software !* and documentation for any purpose. They assume no !* responsibility (1) for the use of the software and documentation; !* or (2) to provide technical support to users. !* !* Permission to use, copy, modify, and distribute this software is !* hereby granted, provided that this disclaimer notice appears in !* all copies. All modifications to this software must be clearly !* documented, and are solely the responsibility of the agent making !* the modification. If significant modifications or enhancements !* are made to this software, the SMS Development team !* (sms-info@fsl.noaa.gov) should be notified. !* !*---------------------------------------------------------------------------- !* !* WRF NetCDF I/O ! Author: Jacques Middlecoff jacquesm@fsl.noaa.gov !* Date: October 6, 2000 !* !*---------------------------------------------------------------------------- use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: Element character*(*) ,intent(in) :: DateStr character*(*) ,intent(in) :: Var integer ,intent(in) :: Data(*) integer ,intent(in) :: Count integer ,intent(out) :: Status type(wrf_data_handle) ,pointer :: DH character (VarNameLen) :: VarName character (40+len(Element)) :: Name integer :: stat integer :: stat2 integer ,allocatable :: Buffer(:) integer :: i integer :: VDims (2) integer(KIND=MPI_OFFSET_KIND) :: VStart(2) integer(KIND=MPI_OFFSET_KIND) :: VCount(2) integer :: NVar integer :: TimeIndex integer :: NCID VarName = Var call DateCheck(DateStr,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning DATE STRING ERROR in ',"ext_pnc_put_var_td.code",' ','INTEGER',', line', 67 call wrf_debug ( WARN , msg) return endif call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning Status = ',Status,' in ',"ext_pnc_put_var_td.code",' ','INTEGER',', line', 74 call wrf_debug ( WARN , msg) return endif NCID = DH%NCID call GetName(Element, VarName, Name, Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning Status = ',Status,' in ',"ext_pnc_put_var_td.code",' ','INTEGER',', line', 82 call wrf_debug ( WARN , msg) return endif if(DH%FileStatus == WRF_FILE_NOT_OPENED) then Status = WRF_WARN_FILE_NOT_OPENED write(msg,*) & 'Warning FILE NOT OPENED in ',"ext_pnc_put_var_td.code",' ','INTEGER',', line', 89 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_READ) then Status = WRF_WARN_WRITE_RONLY_FILE write(msg,*) & 'Warning WRITE READ ONLY FILE in ',"ext_pnc_put_var_td.code",' ','INTEGER',', line', 94 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_NOT_COMMITTED) then if(Count < 1) then Status = WRF_WARN_ZERO_LENGTH_PUT return endif do NVar=1,MaxVars if(DH%MDVarNames(NVar) == Name) then Status = WRF_WARN_2DRYRUNS_1VARIABLE return elseif(DH%MDVarNames(NVar) == NO_NAME) then DH%MDVarNames(NVar) = Name exit elseif(NVar == MaxVars) then Status = WRF_WARN_TOO_MANY_VARIABLES write(msg,*) & 'Warning TOO MANY VARIABLES in ',"ext_pnc_put_var_td.code",' ','INTEGER',', line', 111 call wrf_debug ( WARN , msg) return endif enddo do i=1,MaxDims if(DH%DimLengths(i) == Count) then exit elseif(DH%DimLengths(i) == NO_DIM) then stat = NFMPI_DEF_DIM(NCID,DH%DimNames(i),i2offset(Count),DH%DimIDs(i)) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_put_var_td.code",' ','INTEGER',', line', 124,' Element ',Element call wrf_debug ( WARN , msg) return endif DH%DimLengths(i) = Count exit elseif(i == MaxDims) then Status = WRF_WARN_TOO_MANY_DIMS write(msg,*) & 'Warning TOO MANY DIMENSIONS in ',"ext_pnc_put_var_td.code",' ','INTEGER',', line', 133 call wrf_debug ( WARN , msg) return endif enddo DH%MDVarDimLens(NVar) = Count VDims(1) = DH%DimIDs(i) VDims(2) = DH%DimUnlimID stat = NFMPI_DEF_VAR(NCID,Name,NF_INT,2,VDims,DH%MDVarIDs(NVar)) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_put_var_td.code",' ','INTEGER',', line', 145,' Element ',Element call wrf_debug ( WARN , msg) return endif elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_WRITE) then do NVar=1,MaxVars if(DH%MDVarNames(NVar) == Name) then exit elseif(DH%MDVarNames(NVar) == NO_NAME) then Status = WRF_WARN_MD_NF write(msg,*) & 'Warning METADATA NOT FOUND in ',"ext_pnc_put_var_td.code",' ','INTEGER',', line', 156 call wrf_debug ( WARN , msg) return elseif(NVar == MaxVars) then Status = WRF_WARN_TOO_MANY_VARIABLES write(msg,*) & 'Warning TOO MANY VARIABLES in ',"ext_pnc_put_var_td.code",' ','INTEGER',', line', 162 call wrf_debug ( WARN , msg) return endif enddo if(Count > DH%MDVarDimLens(NVar)) then Status = WRF_WARN_COUNT_TOO_LONG write(msg,*) & 'Warning COUNT TOO LONG in ',"ext_pnc_put_var_td.code",' ','INTEGER',', line', 170 call wrf_debug ( WARN , msg) return elseif(Count < 1) then Status = WRF_WARN_ZERO_LENGTH_PUT write(msg,*) & 'Warning ZERO LENGTH PUT in ',"ext_pnc_put_var_td.code",' ','INTEGER',', line', 176 call wrf_debug ( WARN , msg) return endif call GetTimeIndex('write',DataHandle,DateStr,TimeIndex,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning in ',"ext_pnc_put_var_td.code",' ','INTEGER',', line', 183 call wrf_debug ( WARN , msg) return endif VStart(1) = 1 VStart(2) = TimeIndex VCount(1) = Count VCount(2) = 1 stat = NFMPI_PUT_VARA_INT_ALL (NCID,DH%MDVarIDs(NVar),VStart,VCount,Data) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_put_var_td.code",' ','INTEGER',', line', 222,' Element ',Element call wrf_debug ( WARN , msg) return endif else Status = WRF_ERR_FATAL_BAD_FILE_STATUS write(msg,*) & 'Fatal error BAD FILE STATUS in ',"ext_pnc_put_var_td.code",' ','INTEGER',', line', 229 call wrf_debug ( FATAL , msg) return endif return end subroutine ext_pnc_put_var_td_integer subroutine ext_pnc_put_var_ti_logical(DataHandle,Element,Var,Data,Count,Status) !*------------------------------------------------------------------------------ !* Standard Disclaimer !* !* Forecast Systems Laboratory !* NOAA/OAR/ERL/FSL !* 325 Broadway !* Boulder, CO 80303 !* !* AVIATION DIVISION !* ADVANCED COMPUTING BRANCH !* SMS/NNT Version: 2.0.0 !* !* This software and its documentation are in the public domain and !* are furnished "as is". The United States government, its !* instrumentalities, officers, employees, and agents make no !* warranty, express or implied, as to the usefulness of the software !* and documentation for any purpose. They assume no !* responsibility (1) for the use of the software and documentation; !* or (2) to provide technical support to users. !* !* Permission to use, copy, modify, and distribute this software is !* hereby granted, provided that this disclaimer notice appears in !* all copies. All modifications to this software must be clearly !* documented, and are solely the responsibility of the agent making !* the modification. If significant modifications or enhancements !* are made to this software, the SMS Development team !* (sms-info@fsl.noaa.gov) should be notified. !* !*---------------------------------------------------------------------------- !* !* WRF NetCDF I/O ! Author: Jacques Middlecoff jacquesm@fsl.noaa.gov !* Date: October 6, 2000 !* !*---------------------------------------------------------------------------- use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: Element character*(*) ,intent(in) :: Var logical ,intent(in) :: Data(*) integer ,intent(in) :: Count integer ,intent(out) :: Status type(wrf_data_handle) ,pointer :: DH character (VarNameLen) :: VarName integer :: stat integer ,allocatable :: Buffer(:) integer :: i integer :: NVar character*1 :: null null=char(0) VarName = Var call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning Status = ',Status,' in ',"ext_pnc_put_var_ti.code",' ','LOGICAL',', line', 61 call wrf_debug ( WARN , msg) return endif if(DH%FileStatus == WRF_FILE_NOT_OPENED) then Status = WRF_WARN_FILE_NOT_OPENED write(msg,*) & 'Warning FILE NOT OPENED in ',"ext_pnc_put_var_ti.code",' ','LOGICAL',', line', 68 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_READ) then Status = WRF_WARN_WRITE_RONLY_FILE write(msg,*) & 'Warning WRITE READ ONLY FILE in ',"ext_pnc_put_var_ti.code",' ','LOGICAL',', line', 73 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_WRITE) then Status = WRF_WARN_MD_AFTER_OPEN write(msg,*) & 'Warning WRITE METADATA AFTER OPEN in ',"ext_pnc_put_var_ti.code",' ','LOGICAL',', line', 78 call wrf_debug ( WARN , msg) return elseif(DH%FileStatus == WRF_FILE_OPENED_NOT_COMMITTED) then do NVar=1,MaxVars if(TRIM(DH%VarNames(NVar)) == TRIM(VarName)) then exit elseif(NVar == MaxVars) then Status = WRF_WARN_VAR_NF write(msg,*) & 'Warning VARIABLE NOT FOUND in ',"ext_pnc_put_var_ti.code",' ','LOGICAL',', line', 88 & ,NVar,VarName call wrf_debug ( WARN , msg) return endif enddo allocate(Buffer(Count), STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_ALLOCATION_ERROR write(msg,*) & 'Fatal ALLOCATION ERROR in ',"ext_pnc_put_var_ti.code",' ','LOGICAL',', line', 99 call wrf_debug ( FATAL , msg) return endif do i=1,Count if(data(i)) then Buffer(i)=1 else Buffer(i)=0 endif enddo stat = NFMPI_PUT_ATT_INT(DH%NCID,DH%VarIDs(NVar),trim(Element), NF_INT,i2offset(Count),Buffer ) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error for Var ',TRIM(Var),& ' Element ',trim(Element),' in ',"ext_pnc_put_var_ti.code",' ','LOGICAL',', line', 124 call wrf_debug ( WARN , msg) endif deallocate(Buffer, STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_DEALLOCATION_ERR write(msg,*) & 'Fatal DEALLOCATION ERROR in ',"ext_pnc_put_var_ti.code",' ','LOGICAL',', line', 132 call wrf_debug ( FATAL , msg) return endif else Status = WRF_ERR_FATAL_BAD_FILE_STATUS write(msg,*) & 'Fatal error BAD FILE STATUS in ',"ext_pnc_put_var_ti.code",' ','LOGICAL',', line', 140 call wrf_debug ( FATAL , msg) return endif return end subroutine ext_pnc_put_var_ti_logical subroutine ext_pnc_put_var_td_logical(DataHandle,Element,DateStr,Var,Data,Count,Status) !*------------------------------------------------------------------------------ !* Standard Disclaimer !* !* Forecast Systems Laboratory !* NOAA/OAR/ERL/FSL !* 325 Broadway !* Boulder, CO 80303 !* !* AVIATION DIVISION !* ADVANCED COMPUTING BRANCH !* SMS/NNT Version: 2.0.0 !* !* This software and its documentation are in the public domain and !* are furnished "as is". The United States government, its !* instrumentalities, officers, employees, and agents make no !* warranty, express or implied, as to the usefulness of the software !* and documentation for any purpose. They assume no !* responsibility (1) for the use of the software and documentation; !* or (2) to provide technical support to users. !* !* Permission to use, copy, modify, and distribute this software is !* hereby granted, provided that this disclaimer notice appears in !* all copies. All modifications to this software must be clearly !* documented, and are solely the responsibility of the agent making !* the modification. If significant modifications or enhancements !* are made to this software, the SMS Development team !* (sms-info@fsl.noaa.gov) should be notified. !* !*---------------------------------------------------------------------------- !* !* WRF NetCDF I/O ! Author: Jacques Middlecoff jacquesm@fsl.noaa.gov !* Date: October 6, 2000 !* !*---------------------------------------------------------------------------- use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: Element character*(*) ,intent(in) :: DateStr character*(*) ,intent(in) :: Var logical ,intent(in) :: Data(*) integer ,intent(in) :: Count integer ,intent(out) :: Status type(wrf_data_handle) ,pointer :: DH character (VarNameLen) :: VarName character (40+len(Element)) :: Name integer :: stat integer :: stat2 integer ,allocatable :: Buffer(:) integer :: i integer :: VDims (2) integer(KIND=MPI_OFFSET_KIND) :: VStart(2) integer(KIND=MPI_OFFSET_KIND) :: VCount(2) integer :: NVar integer :: TimeIndex integer :: NCID VarName = Var call DateCheck(DateStr,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning DATE STRING ERROR in ',"ext_pnc_put_var_td.code",' ','LOGICAL',', line', 67 call wrf_debug ( WARN , msg) return endif call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning Status = ',Status,' in ',"ext_pnc_put_var_td.code",' ','LOGICAL',', line', 74 call wrf_debug ( WARN , msg) return endif NCID = DH%NCID call GetName(Element, VarName, Name, Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning Status = ',Status,' in ',"ext_pnc_put_var_td.code",' ','LOGICAL',', line', 82 call wrf_debug ( WARN , msg) return endif if(DH%FileStatus == WRF_FILE_NOT_OPENED) then Status = WRF_WARN_FILE_NOT_OPENED write(msg,*) & 'Warning FILE NOT OPENED in ',"ext_pnc_put_var_td.code",' ','LOGICAL',', line', 89 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_READ) then Status = WRF_WARN_WRITE_RONLY_FILE write(msg,*) & 'Warning WRITE READ ONLY FILE in ',"ext_pnc_put_var_td.code",' ','LOGICAL',', line', 94 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_NOT_COMMITTED) then if(Count < 1) then Status = WRF_WARN_ZERO_LENGTH_PUT return endif do NVar=1,MaxVars if(DH%MDVarNames(NVar) == Name) then Status = WRF_WARN_2DRYRUNS_1VARIABLE return elseif(DH%MDVarNames(NVar) == NO_NAME) then DH%MDVarNames(NVar) = Name exit elseif(NVar == MaxVars) then Status = WRF_WARN_TOO_MANY_VARIABLES write(msg,*) & 'Warning TOO MANY VARIABLES in ',"ext_pnc_put_var_td.code",' ','LOGICAL',', line', 111 call wrf_debug ( WARN , msg) return endif enddo do i=1,MaxDims if(DH%DimLengths(i) == Count) then exit elseif(DH%DimLengths(i) == NO_DIM) then stat = NFMPI_DEF_DIM(NCID,DH%DimNames(i),i2offset(Count),DH%DimIDs(i)) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_put_var_td.code",' ','LOGICAL',', line', 124,' Element ',Element call wrf_debug ( WARN , msg) return endif DH%DimLengths(i) = Count exit elseif(i == MaxDims) then Status = WRF_WARN_TOO_MANY_DIMS write(msg,*) & 'Warning TOO MANY DIMENSIONS in ',"ext_pnc_put_var_td.code",' ','LOGICAL',', line', 133 call wrf_debug ( WARN , msg) return endif enddo DH%MDVarDimLens(NVar) = Count VDims(1) = DH%DimIDs(i) VDims(2) = DH%DimUnlimID stat = NFMPI_DEF_VAR(NCID,Name,NF_INT,2,VDims,DH%MDVarIDs(NVar)) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_put_var_td.code",' ','LOGICAL',', line', 145,' Element ',Element call wrf_debug ( WARN , msg) return endif elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_WRITE) then do NVar=1,MaxVars if(DH%MDVarNames(NVar) == Name) then exit elseif(DH%MDVarNames(NVar) == NO_NAME) then Status = WRF_WARN_MD_NF write(msg,*) & 'Warning METADATA NOT FOUND in ',"ext_pnc_put_var_td.code",' ','LOGICAL',', line', 156 call wrf_debug ( WARN , msg) return elseif(NVar == MaxVars) then Status = WRF_WARN_TOO_MANY_VARIABLES write(msg,*) & 'Warning TOO MANY VARIABLES in ',"ext_pnc_put_var_td.code",' ','LOGICAL',', line', 162 call wrf_debug ( WARN , msg) return endif enddo if(Count > DH%MDVarDimLens(NVar)) then Status = WRF_WARN_COUNT_TOO_LONG write(msg,*) & 'Warning COUNT TOO LONG in ',"ext_pnc_put_var_td.code",' ','LOGICAL',', line', 170 call wrf_debug ( WARN , msg) return elseif(Count < 1) then Status = WRF_WARN_ZERO_LENGTH_PUT write(msg,*) & 'Warning ZERO LENGTH PUT in ',"ext_pnc_put_var_td.code",' ','LOGICAL',', line', 176 call wrf_debug ( WARN , msg) return endif call GetTimeIndex('write',DataHandle,DateStr,TimeIndex,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning in ',"ext_pnc_put_var_td.code",' ','LOGICAL',', line', 183 call wrf_debug ( WARN , msg) return endif VStart(1) = 1 VStart(2) = TimeIndex VCount(1) = Count VCount(2) = 1 allocate(Buffer(Count), STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_ALLOCATION_ERROR write(msg,*) & 'Fatal ALLOCATION ERROR in ',"ext_pnc_put_var_td.code",' ','LOGICAL',', line', 196 call wrf_debug ( FATAL , msg) return endif do i=1,Count if(data(i)) then Buffer(i)=1 else Buffer(i)=0 endif enddo stat = NFMPI_PUT_VARA_INT_ALL (NCID,DH%MDVarIDs(NVar),VStart,VCount,Buffer) deallocate(Buffer, STAT=stat2) if(stat2/= 0) then Status = WRF_ERR_FATAL_DEALLOCATION_ERR write(msg,*) & 'Fatal DEALLOCATION ERROR in ',"ext_pnc_put_var_td.code",' ','LOGICAL',', line', 212 call wrf_debug ( FATAL , msg) return endif call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_put_var_td.code",' ','LOGICAL',', line', 222,' Element ',Element call wrf_debug ( WARN , msg) return endif else Status = WRF_ERR_FATAL_BAD_FILE_STATUS write(msg,*) & 'Fatal error BAD FILE STATUS in ',"ext_pnc_put_var_td.code",' ','LOGICAL',', line', 229 call wrf_debug ( FATAL , msg) return endif return end subroutine ext_pnc_put_var_td_logical subroutine ext_pnc_put_var_ti_char(DataHandle,Element,Var,Data,Status) !*------------------------------------------------------------------------------ !* Standard Disclaimer !* !* Forecast Systems Laboratory !* NOAA/OAR/ERL/FSL !* 325 Broadway !* Boulder, CO 80303 !* !* AVIATION DIVISION !* ADVANCED COMPUTING BRANCH !* SMS/NNT Version: 2.0.0 !* !* This software and its documentation are in the public domain and !* are furnished "as is". The United States government, its !* instrumentalities, officers, employees, and agents make no !* warranty, express or implied, as to the usefulness of the software !* and documentation for any purpose. They assume no !* responsibility (1) for the use of the software and documentation; !* or (2) to provide technical support to users. !* !* Permission to use, copy, modify, and distribute this software is !* hereby granted, provided that this disclaimer notice appears in !* all copies. All modifications to this software must be clearly !* documented, and are solely the responsibility of the agent making !* the modification. If significant modifications or enhancements !* are made to this software, the SMS Development team !* (sms-info@fsl.noaa.gov) should be notified. !* !*---------------------------------------------------------------------------- !* !* WRF NetCDF I/O ! Author: Jacques Middlecoff jacquesm@fsl.noaa.gov !* Date: October 6, 2000 !* !*---------------------------------------------------------------------------- use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: Element character*(*) ,intent(in) :: Var character*(*) ,intent(in) :: Data integer ,intent(out) :: Status type(wrf_data_handle) ,pointer :: DH character (VarNameLen) :: VarName integer :: stat integer ,allocatable :: Buffer(:) integer :: i integer :: NVar character*1 :: null null=char(0) VarName = Var call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning Status = ',Status,' in ',"ext_pnc_put_var_ti.code",' ','CHAR',', line', 61 call wrf_debug ( WARN , msg) return endif if(DH%FileStatus == WRF_FILE_NOT_OPENED) then Status = WRF_WARN_FILE_NOT_OPENED write(msg,*) & 'Warning FILE NOT OPENED in ',"ext_pnc_put_var_ti.code",' ','CHAR',', line', 68 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_READ) then Status = WRF_WARN_WRITE_RONLY_FILE write(msg,*) & 'Warning WRITE READ ONLY FILE in ',"ext_pnc_put_var_ti.code",' ','CHAR',', line', 73 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_WRITE) then Status = WRF_WARN_MD_AFTER_OPEN write(msg,*) & 'Warning WRITE METADATA AFTER OPEN in ',"ext_pnc_put_var_ti.code",' ','CHAR',', line', 78 call wrf_debug ( WARN , msg) return elseif(DH%FileStatus == WRF_FILE_OPENED_NOT_COMMITTED) then do NVar=1,MaxVars if(TRIM(DH%VarNames(NVar)) == TRIM(VarName)) then exit elseif(NVar == MaxVars) then Status = WRF_WARN_VAR_NF write(msg,*) & 'Warning VARIABLE NOT FOUND in ',"ext_pnc_put_var_ti.code",' ','CHAR',', line', 88 & ,NVar,VarName call wrf_debug ( WARN , msg) return endif enddo if(len_trim(Data).le.0) then stat = NFMPI_PUT_ATT_TEXT(DH%NCID,DH%VarIDs(NVar),trim(Element),i2offset(len_trim(null)),null) else stat = NFMPI_PUT_ATT_TEXT(DH%NCID,DH%VarIDs(NVar),trim(Element), i2offset(len_trim(Data)),trim(Data) ) endif call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error for Var ',TRIM(Var),& ' Element ',trim(Element),' in ',"ext_pnc_put_var_ti.code",' ','CHAR',', line', 124 call wrf_debug ( WARN , msg) endif else Status = WRF_ERR_FATAL_BAD_FILE_STATUS write(msg,*) & 'Fatal error BAD FILE STATUS in ',"ext_pnc_put_var_ti.code",' ','CHAR',', line', 140 call wrf_debug ( FATAL , msg) return endif return end subroutine ext_pnc_put_var_ti_char subroutine ext_pnc_put_var_td_char(DataHandle,Element,DateStr,Var,Data,Status) !*------------------------------------------------------------------------------ !* Standard Disclaimer !* !* Forecast Systems Laboratory !* NOAA/OAR/ERL/FSL !* 325 Broadway !* Boulder, CO 80303 !* !* AVIATION DIVISION !* ADVANCED COMPUTING BRANCH !* SMS/NNT Version: 2.0.0 !* !* This software and its documentation are in the public domain and !* are furnished "as is". The United States government, its !* instrumentalities, officers, employees, and agents make no !* warranty, express or implied, as to the usefulness of the software !* and documentation for any purpose. They assume no !* responsibility (1) for the use of the software and documentation; !* or (2) to provide technical support to users. !* !* Permission to use, copy, modify, and distribute this software is !* hereby granted, provided that this disclaimer notice appears in !* all copies. All modifications to this software must be clearly !* documented, and are solely the responsibility of the agent making !* the modification. If significant modifications or enhancements !* are made to this software, the SMS Development team !* (sms-info@fsl.noaa.gov) should be notified. !* !*---------------------------------------------------------------------------- !* !* WRF NetCDF I/O ! Author: Jacques Middlecoff jacquesm@fsl.noaa.gov !* Date: October 6, 2000 !* !*---------------------------------------------------------------------------- use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: Element character*(*) ,intent(in) :: DateStr character*(*) ,intent(in) :: Var character*(*) ,intent(in) :: Data integer ,intent(out) :: Status type(wrf_data_handle) ,pointer :: DH character (VarNameLen) :: VarName character (40+len(Element)) :: Name integer :: stat integer :: stat2 integer ,allocatable :: Buffer(:) integer :: i integer :: VDims (2) integer(KIND=MPI_OFFSET_KIND) :: VStart(2) integer(KIND=MPI_OFFSET_KIND) :: VCount(2) integer :: NVar integer :: TimeIndex integer :: NCID VarName = Var call DateCheck(DateStr,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning DATE STRING ERROR in ',"ext_pnc_put_var_td.code",' ','CHAR',', line', 67 call wrf_debug ( WARN , msg) return endif call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning Status = ',Status,' in ',"ext_pnc_put_var_td.code",' ','CHAR',', line', 74 call wrf_debug ( WARN , msg) return endif NCID = DH%NCID call GetName(Element, VarName, Name, Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning Status = ',Status,' in ',"ext_pnc_put_var_td.code",' ','CHAR',', line', 82 call wrf_debug ( WARN , msg) return endif if(DH%FileStatus == WRF_FILE_NOT_OPENED) then Status = WRF_WARN_FILE_NOT_OPENED write(msg,*) & 'Warning FILE NOT OPENED in ',"ext_pnc_put_var_td.code",' ','CHAR',', line', 89 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_READ) then Status = WRF_WARN_WRITE_RONLY_FILE write(msg,*) & 'Warning WRITE READ ONLY FILE in ',"ext_pnc_put_var_td.code",' ','CHAR',', line', 94 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_NOT_COMMITTED) then if(len(Data) < 1) then Status = WRF_WARN_ZERO_LENGTH_PUT return endif do NVar=1,MaxVars if(DH%MDVarNames(NVar) == Name) then Status = WRF_WARN_2DRYRUNS_1VARIABLE return elseif(DH%MDVarNames(NVar) == NO_NAME) then DH%MDVarNames(NVar) = Name exit elseif(NVar == MaxVars) then Status = WRF_WARN_TOO_MANY_VARIABLES write(msg,*) & 'Warning TOO MANY VARIABLES in ',"ext_pnc_put_var_td.code",' ','CHAR',', line', 111 call wrf_debug ( WARN , msg) return endif enddo do i=1,MaxDims if(DH%DimLengths(i) == len(Data)) then exit elseif(DH%DimLengths(i) == NO_DIM) then stat = NFMPI_DEF_DIM(NCID,DH%DimNames(i),i2offset(len(Data)),DH%DimIDs(i)) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_put_var_td.code",' ','CHAR',', line', 124,' Element ',Element call wrf_debug ( WARN , msg) return endif DH%DimLengths(i) = len(Data) exit elseif(i == MaxDims) then Status = WRF_WARN_TOO_MANY_DIMS write(msg,*) & 'Warning TOO MANY DIMENSIONS in ',"ext_pnc_put_var_td.code",' ','CHAR',', line', 133 call wrf_debug ( WARN , msg) return endif enddo DH%MDVarDimLens(NVar) = len(Data) VDims(1) = DH%DimIDs(i) VDims(2) = DH%DimUnlimID stat = NFMPI_DEF_VAR(NCID,Name,NF_CHAR,2,VDims,DH%MDVarIDs(NVar)) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_put_var_td.code",' ','CHAR',', line', 145,' Element ',Element call wrf_debug ( WARN , msg) return endif elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_WRITE) then do NVar=1,MaxVars if(DH%MDVarNames(NVar) == Name) then exit elseif(DH%MDVarNames(NVar) == NO_NAME) then Status = WRF_WARN_MD_NF write(msg,*) & 'Warning METADATA NOT FOUND in ',"ext_pnc_put_var_td.code",' ','CHAR',', line', 156 call wrf_debug ( WARN , msg) return elseif(NVar == MaxVars) then Status = WRF_WARN_TOO_MANY_VARIABLES write(msg,*) & 'Warning TOO MANY VARIABLES in ',"ext_pnc_put_var_td.code",' ','CHAR',', line', 162 call wrf_debug ( WARN , msg) return endif enddo if(len(Data) > DH%MDVarDimLens(NVar)) then Status = WRF_WARN_COUNT_TOO_LONG write(msg,*) & 'Warning COUNT TOO LONG in ',"ext_pnc_put_var_td.code",' ','CHAR',', line', 170 call wrf_debug ( WARN , msg) return elseif(len(Data) < 1) then Status = WRF_WARN_ZERO_LENGTH_PUT write(msg,*) & 'Warning ZERO LENGTH PUT in ',"ext_pnc_put_var_td.code",' ','CHAR',', line', 176 call wrf_debug ( WARN , msg) return endif call GetTimeIndex('write',DataHandle,DateStr,TimeIndex,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning in ',"ext_pnc_put_var_td.code",' ','CHAR',', line', 183 call wrf_debug ( WARN , msg) return endif VStart(1) = 1 VStart(2) = TimeIndex VCount(1) = len(Data) VCount(2) = 1 stat = NFMPI_PUT_VARA_TEXT_ALL (NCID,DH%MDVarIDs(NVar),VStart,VCount,Data) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_put_var_td.code",' ','CHAR',', line', 222,' Element ',Element call wrf_debug ( WARN , msg) return endif else Status = WRF_ERR_FATAL_BAD_FILE_STATUS write(msg,*) & 'Fatal error BAD FILE STATUS in ',"ext_pnc_put_var_td.code",' ','CHAR',', line', 229 call wrf_debug ( FATAL , msg) return endif return end subroutine ext_pnc_put_var_td_char subroutine ext_pnc_get_var_ti_real(DataHandle,Element,Var,Data,Count,OutCount,Status) !*------------------------------------------------------------------------------ !* Standard Disclaimer !* !* Forecast Systems Laboratory !* NOAA/OAR/ERL/FSL !* 325 Broadway !* Boulder, CO 80303 !* !* AVIATION DIVISION !* ADVANCED COMPUTING BRANCH !* SMS/NNT Version: 2.0.0 !* !* This software and its documentation are in the public domain and !* are furnished "as is". The United States government, its !* instrumentalities, officers, employees, and agents make no !* warranty, express or implied, as to the usefulness of the software !* and documentation for any purpose. They assume no !* responsibility (1) for the use of the software and documentation; !* or (2) to provide technical support to users. !* !* Permission to use, copy, modify, and distribute this software is !* hereby granted, provided that this disclaimer notice appears in !* all copies. All modifications to this software must be clearly !* documented, and are solely the responsibility of the agent making !* the modification. If significant modifications or enhancements !* are made to this software, the SMS Development team !* (sms-info@fsl.noaa.gov) should be notified. !* !*---------------------------------------------------------------------------- !* !* WRF NetCDF I/O ! Author: Jacques Middlecoff jacquesm@fsl.noaa.gov !* Date: October 6, 2000 !* !*---------------------------------------------------------------------------- use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: Element character*(*) ,intent(in) :: Var real ,intent(out) :: Data(*) integer,intent(in) :: Count integer,intent(out) :: OutCount integer ,intent(out) :: Status type(wrf_data_handle) ,pointer :: DH integer :: XLen integer(KIND=MPI_OFFSET_KIND) :: XLen_offset real ,allocatable :: Buffer(:) character (VarNameLen) :: VarName integer :: stat integer :: NVar integer :: XType if(Count <= 0) then Status = WRF_WARN_ZERO_LENGTH_GET write(msg,*) & 'Warning ZERO LENGTH GET in ',"ext_pnc_get_var_ti.code",' ','REAL',', line', 61 call wrf_debug ( WARN , msg) return endif VarName = Var call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning Status = ',Status,' in ',"ext_pnc_get_var_ti.code",' ','REAL',', line', 69 call wrf_debug ( WARN , msg) return endif if(DH%FileStatus == WRF_FILE_NOT_OPENED) then Status = WRF_WARN_FILE_NOT_OPENED write(msg,*) & 'Warning FILE NOT OPENED in ',"ext_pnc_get_var_ti.code",' ','REAL',', line', 76 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_NOT_COMMITTED) then Status = WRF_WARN_DRYRUN_READ write(msg,*) & 'Warning DRYRUN READ in ',"ext_pnc_get_var_ti.code",' ','REAL',', line', 81 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_WRITE) then Status = WRF_WARN_READ_WONLY_FILE write(msg,*) & 'Warning READ WONLY FILE in ',"ext_pnc_get_var_ti.code",' ','REAL',', line', 86 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_READ) then do NVar=1,DH%NumVars if(DH%VarNames(NVar) == VarName) then exit elseif(NVar == DH%NumVars) then Status = WRF_WARN_VAR_NF write(msg,*) & 'Warning VARIABLE NOT FOUND in ',"ext_pnc_get_var_ti.code",' ','REAL',', line', 95 call wrf_debug ( WARN , msg) return endif enddo XLen_offset = i2offset(XLen) stat = NFMPI_INQ_ATT(DH%NCID,DH%VarIDs(NVar),trim(Element),XType,XLen_offset) XLen = XLen_offset call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_get_var_ti.code",' ','REAL',', line', 106,' Element ',Element call wrf_debug ( WARN , msg) endif if ( NF_FLOAT == NF_DOUBLE .OR. NF_FLOAT == NF_FLOAT ) then if( .NOT. ( XType==NF_FLOAT .OR. XType==NF_DOUBLE) ) then Status = WRF_WARN_TYPE_MISMATCH write(msg,*) & 'Warning TYPE MISMATCH in ',"ext_pnc_get_var_ti.code",' ','REAL',', line', 113 call wrf_debug ( WARN , msg) return endif else if(XType /= NF_FLOAT) then Status = WRF_WARN_TYPE_MISMATCH write(msg,*) & 'Warning TYPE MISMATCH in ',"ext_pnc_get_var_ti.code",' ','REAL',', line', 121 call wrf_debug ( WARN , msg) return endif endif allocate(Buffer(XLen), STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_ALLOCATION_ERROR write(msg,*) & 'Fatal ALLOCATION ERROR in ',"ext_pnc_get_var_ti.code",' ','REAL',', line', 131 call wrf_debug ( FATAL , msg) return endif stat = NFMPI_GET_ATT_REAL(DH%NCID,DH%VarIDs(NVar),trim(Element), Buffer ) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_get_var_ti.code",' ','REAL',', line', 149,' Element ',Element call wrf_debug ( WARN , msg) endif Data(1:min(XLen,Count)) = Buffer(1:min(XLen,Count)) deallocate(Buffer, STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_DEALLOCATION_ERR write(msg,*) & 'Fatal DEALLOCATION ERROR in ',"ext_pnc_get_var_ti.code",' ','REAL',', line', 158 call wrf_debug ( FATAL , msg) return endif if(XLen > Count) then OutCount = Count Status = WRF_WARN_MORE_DATA_IN_FILE else OutCount = XLen Status = WRF_NO_ERR endif else Status = WRF_ERR_FATAL_BAD_FILE_STATUS write(msg,*) & 'Fatal error BAD FILE STATUS in ',"ext_pnc_get_var_ti.code",' ','REAL',', line', 173 call wrf_debug ( FATAL , msg) return endif return end subroutine ext_pnc_get_var_ti_real subroutine ext_pnc_get_var_td_real(DataHandle,Element,DateStr,Var,Data,Count,OutCount,Status) !*------------------------------------------------------------------------------ !* Standard Disclaimer !* !* Forecast Systems Laboratory !* NOAA/OAR/ERL/FSL !* 325 Broadway !* Boulder, CO 80303 !* !* AVIATION DIVISION !* ADVANCED COMPUTING BRANCH !* SMS/NNT Version: 2.0.0 !* !* This software and its documentation are in the public domain and !* are furnished "as is". The United States government, its !* instrumentalities, officers, employees, and agents make no !* warranty, express or implied, as to the usefulness of the software !* and documentation for any purpose. They assume no !* responsibility (1) for the use of the software and documentation; !* or (2) to provide technical support to users. !* !* Permission to use, copy, modify, and distribute this software is !* hereby granted, provided that this disclaimer notice appears in !* all copies. All modifications to this software must be clearly !* documented, and are solely the responsibility of the agent making !* the modification. If significant modifications or enhancements !* are made to this software, the SMS Development team !* (sms-info@fsl.noaa.gov) should be notified. !* !*---------------------------------------------------------------------------- !* !* WRF NetCDF I/O ! Author: Jacques Middlecoff jacquesm@fsl.noaa.gov !* Date: October 6, 2000 !* !*---------------------------------------------------------------------------- use wrf_data_pnc use ext_pnc_support_routines implicit none ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all include 'wrf_status_codes.h' integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: Element character (DateStrLen),intent(in) :: DateStr character*(*) ,intent(in) :: Var real ,intent(out) :: Data(*) integer,intent(in) :: Count integer,intent(out) :: OutCount integer ,intent(out) :: Status type(wrf_data_handle) ,pointer :: DH character (VarNameLen) :: VarName character (40+len(Element)) :: Name character (40+len(Element)) :: FName integer :: stat real ,allocatable :: Buffer(:) integer :: i integer :: VDims (2) integer(KIND=MPI_OFFSET_KIND) :: VStart(2) integer(KIND=MPI_OFFSET_KIND) :: VCount(2) integer :: NVar integer :: TimeIndex integer :: NCID integer :: DimIDs(2) integer :: VarID integer :: XType integer :: NDims integer :: NAtts integer(KIND=MPI_OFFSET_KIND) :: Len1_okind integer :: Len1 if(Count <= 0) then Status = WRF_WARN_ZERO_LENGTH_GET write(msg,*) & 'Warning ZERO LENGTH GET in ',"ext_pnc_get_var_td.code",' ','REAL',', line', 74 call wrf_debug ( WARN , msg) return endif VarName = Var call DateCheck(DateStr,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning DATE STRING ERROR in ',"ext_pnc_get_var_td.code",' ','REAL',', line', 82 call wrf_debug ( WARN , msg) return endif call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning Status = ',Status,' in ',"ext_pnc_get_var_td.code",' ','REAL',', line', 89 call wrf_debug ( WARN , msg) return endif NCID = DH%NCID call GetName(Element, VarName, Name, Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning Status = ',Status,' in ',"ext_pnc_get_var_td.code",' ','REAL',', line', 97 call wrf_debug ( WARN , msg) return endif if(DH%FileStatus == WRF_FILE_NOT_OPENED) then Status = WRF_WARN_FILE_NOT_OPENED write(msg,*) & 'Warning FILE NOT OPENED in ',"ext_pnc_get_var_td.code",' ','REAL',', line', 104 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_NOT_COMMITTED) then Status = WRF_WARN_DRYRUN_READ write(msg,*) & 'Warning DRYRUN READ in ',"ext_pnc_get_var_td.code",' ','REAL',', line', 109 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_WRITE) then Status = WRF_WARN_READ_WONLY_FILE write(msg,*) & 'Warning READ WONLY FILE in ',"ext_pnc_get_var_td.code",' ','REAL',', line', 114 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_READ) then stat = NFMPI_INQ_VARID(NCID,Name,VarID) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_get_var_td.code",' ','REAL',', line', 121,' Element ',Element call wrf_debug ( WARN , msg) return endif stat = NFMPI_INQ_VAR(NCID,VarID,FName,XType,NDims,DimIDs,NAtts) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_get_var_td.code",' ','REAL',', line', 129,' Element ',Element call wrf_debug ( WARN , msg) return endif if ( NF_FLOAT == NF_DOUBLE .OR. NF_FLOAT == NF_FLOAT ) then if( .NOT. ( XType==NF_FLOAT .OR. XType==NF_DOUBLE) ) then Status = WRF_WARN_TYPE_MISMATCH write(msg,*) & 'Warning TYPE MISMATCH in ',"ext_pnc_get_var_td.code",' ','REAL',', line', 137 call wrf_debug ( WARN , msg) return endif else if(XType /= NF_FLOAT) then Status = WRF_WARN_TYPE_MISMATCH write(msg,*) & 'Warning TYPE MISMATCH in ',"ext_pnc_get_var_td.code",' ','REAL',', line', 145 call wrf_debug ( WARN , msg) return endif endif if(NDims /= NMDVarDims) then Status = WRF_ERR_FATAL_MDVAR_DIM_NOT_1D write(msg,*) & 'Fatal MDVAR DIM NOT 1D in ',"ext_pnc_get_var_td.code",' ','REAL',', line', 153 call wrf_debug ( FATAL , msg) return endif stat = NFMPI_INQ_DIMLEN(NCID,DimIDs(1),Len1_okind) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_get_var_td.code",' ','REAL',', line', 161,' DimIDs(1) ',DimIDs(1) call wrf_debug ( WARN , msg) return endif Len1 = Len1_okind call GetTimeIndex('read',DataHandle,DateStr,TimeIndex,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning in ',"ext_pnc_get_var_td.code",' ','REAL',', line', 169 call wrf_debug ( WARN , msg) return endif VStart(1) = 1 VStart(2) = TimeIndex VCount(1) = min(Count,Len1) VCount(2) = 1 allocate(Buffer(VCount(1)), STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_ALLOCATION_ERROR write(msg,*) & 'Fatal ALLOCATION ERROR in ',"ext_pnc_get_var_td.code",' ','REAL',', line', 182 call wrf_debug ( FATAL , msg) return endif stat = NFMPI_GET_VARA_REAL_ALL (NCID,VarID,VStart,VCount,Buffer) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_get_var_td.code",' ','REAL',', line', 201 call wrf_debug ( WARN , msg) return endif Data(1:min(Len1,Count)) = Buffer(1:min(Len1,Count)) deallocate(Buffer, STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_DEALLOCATION_ERR write(msg,*) & 'Fatal DEALLOCATION ERROR in ',"ext_pnc_get_var_td.code",' ','REAL',', line', 211 call wrf_debug ( FATAL , msg) return endif if(Len1 > Count) then OutCount = Count Status = WRF_WARN_MORE_DATA_IN_FILE else OutCount = Len1 Status = WRF_NO_ERR endif else Status = WRF_ERR_FATAL_BAD_FILE_STATUS write(msg,*) & 'Fatal error BAD FILE STATUS in ',"ext_pnc_get_var_td.code",' ','REAL',', line', 226 call wrf_debug ( FATAL , msg) endif return end subroutine ext_pnc_get_var_td_real subroutine ext_pnc_get_var_ti_double(DataHandle,Element,Var,Data,Count,OutCount,Status) !*------------------------------------------------------------------------------ !* Standard Disclaimer !* !* Forecast Systems Laboratory !* NOAA/OAR/ERL/FSL !* 325 Broadway !* Boulder, CO 80303 !* !* AVIATION DIVISION !* ADVANCED COMPUTING BRANCH !* SMS/NNT Version: 2.0.0 !* !* This software and its documentation are in the public domain and !* are furnished "as is". The United States government, its !* instrumentalities, officers, employees, and agents make no !* warranty, express or implied, as to the usefulness of the software !* and documentation for any purpose. They assume no !* responsibility (1) for the use of the software and documentation; !* or (2) to provide technical support to users. !* !* Permission to use, copy, modify, and distribute this software is !* hereby granted, provided that this disclaimer notice appears in !* all copies. All modifications to this software must be clearly !* documented, and are solely the responsibility of the agent making !* the modification. If significant modifications or enhancements !* are made to this software, the SMS Development team !* (sms-info@fsl.noaa.gov) should be notified. !* !*---------------------------------------------------------------------------- !* !* WRF NetCDF I/O ! Author: Jacques Middlecoff jacquesm@fsl.noaa.gov !* Date: October 6, 2000 !* !*---------------------------------------------------------------------------- use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: Element character*(*) ,intent(in) :: Var real*8 ,intent(out) :: Data(*) integer,intent(in) :: Count integer,intent(out) :: OutCount integer ,intent(out) :: Status type(wrf_data_handle) ,pointer :: DH integer :: XLen integer(KIND=MPI_OFFSET_KIND) :: XLen_offset real*8 ,allocatable :: Buffer(:) character (VarNameLen) :: VarName integer :: stat integer :: NVar integer :: XType if(Count <= 0) then Status = WRF_WARN_ZERO_LENGTH_GET write(msg,*) & 'Warning ZERO LENGTH GET in ',"ext_pnc_get_var_ti.code",' ','DOUBLE',', line', 61 call wrf_debug ( WARN , msg) return endif VarName = Var call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning Status = ',Status,' in ',"ext_pnc_get_var_ti.code",' ','DOUBLE',', line', 69 call wrf_debug ( WARN , msg) return endif if(DH%FileStatus == WRF_FILE_NOT_OPENED) then Status = WRF_WARN_FILE_NOT_OPENED write(msg,*) & 'Warning FILE NOT OPENED in ',"ext_pnc_get_var_ti.code",' ','DOUBLE',', line', 76 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_NOT_COMMITTED) then Status = WRF_WARN_DRYRUN_READ write(msg,*) & 'Warning DRYRUN READ in ',"ext_pnc_get_var_ti.code",' ','DOUBLE',', line', 81 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_WRITE) then Status = WRF_WARN_READ_WONLY_FILE write(msg,*) & 'Warning READ WONLY FILE in ',"ext_pnc_get_var_ti.code",' ','DOUBLE',', line', 86 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_READ) then do NVar=1,DH%NumVars if(DH%VarNames(NVar) == VarName) then exit elseif(NVar == DH%NumVars) then Status = WRF_WARN_VAR_NF write(msg,*) & 'Warning VARIABLE NOT FOUND in ',"ext_pnc_get_var_ti.code",' ','DOUBLE',', line', 95 call wrf_debug ( WARN , msg) return endif enddo XLen_offset = i2offset(XLen) stat = NFMPI_INQ_ATT(DH%NCID,DH%VarIDs(NVar),trim(Element),XType,XLen_offset) XLen = XLen_offset call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_get_var_ti.code",' ','DOUBLE',', line', 106,' Element ',Element call wrf_debug ( WARN , msg) endif if ( NF_DOUBLE == NF_DOUBLE .OR. NF_DOUBLE == NF_FLOAT ) then if( .NOT. ( XType==NF_FLOAT .OR. XType==NF_DOUBLE) ) then Status = WRF_WARN_TYPE_MISMATCH write(msg,*) & 'Warning TYPE MISMATCH in ',"ext_pnc_get_var_ti.code",' ','DOUBLE',', line', 113 call wrf_debug ( WARN , msg) return endif else if(XType /= NF_DOUBLE) then Status = WRF_WARN_TYPE_MISMATCH write(msg,*) & 'Warning TYPE MISMATCH in ',"ext_pnc_get_var_ti.code",' ','DOUBLE',', line', 121 call wrf_debug ( WARN , msg) return endif endif allocate(Buffer(XLen), STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_ALLOCATION_ERROR write(msg,*) & 'Fatal ALLOCATION ERROR in ',"ext_pnc_get_var_ti.code",' ','DOUBLE',', line', 131 call wrf_debug ( FATAL , msg) return endif stat = NFMPI_GET_ATT_DOUBLE(DH%NCID,DH%VarIDs(NVar),trim(Element), Buffer ) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_get_var_ti.code",' ','DOUBLE',', line', 149,' Element ',Element call wrf_debug ( WARN , msg) endif Data(1:min(XLen,Count)) = Buffer(1:min(XLen,Count)) deallocate(Buffer, STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_DEALLOCATION_ERR write(msg,*) & 'Fatal DEALLOCATION ERROR in ',"ext_pnc_get_var_ti.code",' ','DOUBLE',', line', 158 call wrf_debug ( FATAL , msg) return endif if(XLen > Count) then OutCount = Count Status = WRF_WARN_MORE_DATA_IN_FILE else OutCount = XLen Status = WRF_NO_ERR endif else Status = WRF_ERR_FATAL_BAD_FILE_STATUS write(msg,*) & 'Fatal error BAD FILE STATUS in ',"ext_pnc_get_var_ti.code",' ','DOUBLE',', line', 173 call wrf_debug ( FATAL , msg) return endif return end subroutine ext_pnc_get_var_ti_double subroutine ext_pnc_get_var_td_double(DataHandle,Element,DateStr,Var,Data,Count,OutCount,Status) !*------------------------------------------------------------------------------ !* Standard Disclaimer !* !* Forecast Systems Laboratory !* NOAA/OAR/ERL/FSL !* 325 Broadway !* Boulder, CO 80303 !* !* AVIATION DIVISION !* ADVANCED COMPUTING BRANCH !* SMS/NNT Version: 2.0.0 !* !* This software and its documentation are in the public domain and !* are furnished "as is". The United States government, its !* instrumentalities, officers, employees, and agents make no !* warranty, express or implied, as to the usefulness of the software !* and documentation for any purpose. They assume no !* responsibility (1) for the use of the software and documentation; !* or (2) to provide technical support to users. !* !* Permission to use, copy, modify, and distribute this software is !* hereby granted, provided that this disclaimer notice appears in !* all copies. All modifications to this software must be clearly !* documented, and are solely the responsibility of the agent making !* the modification. If significant modifications or enhancements !* are made to this software, the SMS Development team !* (sms-info@fsl.noaa.gov) should be notified. !* !*---------------------------------------------------------------------------- !* !* WRF NetCDF I/O ! Author: Jacques Middlecoff jacquesm@fsl.noaa.gov !* Date: October 6, 2000 !* !*---------------------------------------------------------------------------- use wrf_data_pnc use ext_pnc_support_routines implicit none ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all include 'wrf_status_codes.h' integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: Element character (DateStrLen),intent(in) :: DateStr character*(*) ,intent(in) :: Var real*8 ,intent(out) :: Data(*) integer,intent(in) :: Count integer,intent(out) :: OutCount integer ,intent(out) :: Status type(wrf_data_handle) ,pointer :: DH character (VarNameLen) :: VarName character (40+len(Element)) :: Name character (40+len(Element)) :: FName integer :: stat real*8 ,allocatable :: Buffer(:) integer :: i integer :: VDims (2) integer(KIND=MPI_OFFSET_KIND) :: VStart(2) integer(KIND=MPI_OFFSET_KIND) :: VCount(2) integer :: NVar integer :: TimeIndex integer :: NCID integer :: DimIDs(2) integer :: VarID integer :: XType integer :: NDims integer :: NAtts integer(KIND=MPI_OFFSET_KIND) :: Len1_okind integer :: Len1 if(Count <= 0) then Status = WRF_WARN_ZERO_LENGTH_GET write(msg,*) & 'Warning ZERO LENGTH GET in ',"ext_pnc_get_var_td.code",' ','DOUBLE',', line', 74 call wrf_debug ( WARN , msg) return endif VarName = Var call DateCheck(DateStr,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning DATE STRING ERROR in ',"ext_pnc_get_var_td.code",' ','DOUBLE',', line', 82 call wrf_debug ( WARN , msg) return endif call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning Status = ',Status,' in ',"ext_pnc_get_var_td.code",' ','DOUBLE',', line', 89 call wrf_debug ( WARN , msg) return endif NCID = DH%NCID call GetName(Element, VarName, Name, Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning Status = ',Status,' in ',"ext_pnc_get_var_td.code",' ','DOUBLE',', line', 97 call wrf_debug ( WARN , msg) return endif if(DH%FileStatus == WRF_FILE_NOT_OPENED) then Status = WRF_WARN_FILE_NOT_OPENED write(msg,*) & 'Warning FILE NOT OPENED in ',"ext_pnc_get_var_td.code",' ','DOUBLE',', line', 104 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_NOT_COMMITTED) then Status = WRF_WARN_DRYRUN_READ write(msg,*) & 'Warning DRYRUN READ in ',"ext_pnc_get_var_td.code",' ','DOUBLE',', line', 109 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_WRITE) then Status = WRF_WARN_READ_WONLY_FILE write(msg,*) & 'Warning READ WONLY FILE in ',"ext_pnc_get_var_td.code",' ','DOUBLE',', line', 114 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_READ) then stat = NFMPI_INQ_VARID(NCID,Name,VarID) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_get_var_td.code",' ','DOUBLE',', line', 121,' Element ',Element call wrf_debug ( WARN , msg) return endif stat = NFMPI_INQ_VAR(NCID,VarID,FName,XType,NDims,DimIDs,NAtts) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_get_var_td.code",' ','DOUBLE',', line', 129,' Element ',Element call wrf_debug ( WARN , msg) return endif if ( NF_DOUBLE == NF_DOUBLE .OR. NF_DOUBLE == NF_FLOAT ) then if( .NOT. ( XType==NF_FLOAT .OR. XType==NF_DOUBLE) ) then Status = WRF_WARN_TYPE_MISMATCH write(msg,*) & 'Warning TYPE MISMATCH in ',"ext_pnc_get_var_td.code",' ','DOUBLE',', line', 137 call wrf_debug ( WARN , msg) return endif else if(XType /= NF_DOUBLE) then Status = WRF_WARN_TYPE_MISMATCH write(msg,*) & 'Warning TYPE MISMATCH in ',"ext_pnc_get_var_td.code",' ','DOUBLE',', line', 145 call wrf_debug ( WARN , msg) return endif endif if(NDims /= NMDVarDims) then Status = WRF_ERR_FATAL_MDVAR_DIM_NOT_1D write(msg,*) & 'Fatal MDVAR DIM NOT 1D in ',"ext_pnc_get_var_td.code",' ','DOUBLE',', line', 153 call wrf_debug ( FATAL , msg) return endif stat = NFMPI_INQ_DIMLEN(NCID,DimIDs(1),Len1_okind) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_get_var_td.code",' ','DOUBLE',', line', 161,' DimIDs(1) ',DimIDs(1) call wrf_debug ( WARN , msg) return endif Len1 = Len1_okind call GetTimeIndex('read',DataHandle,DateStr,TimeIndex,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning in ',"ext_pnc_get_var_td.code",' ','DOUBLE',', line', 169 call wrf_debug ( WARN , msg) return endif VStart(1) = 1 VStart(2) = TimeIndex VCount(1) = min(Count,Len1) VCount(2) = 1 allocate(Buffer(VCount(1)), STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_ALLOCATION_ERROR write(msg,*) & 'Fatal ALLOCATION ERROR in ',"ext_pnc_get_var_td.code",' ','DOUBLE',', line', 182 call wrf_debug ( FATAL , msg) return endif stat = NFMPI_GET_VARA_DOUBLE_ALL (NCID,VarID,VStart,VCount,Buffer) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_get_var_td.code",' ','DOUBLE',', line', 201 call wrf_debug ( WARN , msg) return endif Data(1:min(Len1,Count)) = Buffer(1:min(Len1,Count)) deallocate(Buffer, STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_DEALLOCATION_ERR write(msg,*) & 'Fatal DEALLOCATION ERROR in ',"ext_pnc_get_var_td.code",' ','DOUBLE',', line', 211 call wrf_debug ( FATAL , msg) return endif if(Len1 > Count) then OutCount = Count Status = WRF_WARN_MORE_DATA_IN_FILE else OutCount = Len1 Status = WRF_NO_ERR endif else Status = WRF_ERR_FATAL_BAD_FILE_STATUS write(msg,*) & 'Fatal error BAD FILE STATUS in ',"ext_pnc_get_var_td.code",' ','DOUBLE',', line', 226 call wrf_debug ( FATAL , msg) endif return end subroutine ext_pnc_get_var_td_double subroutine ext_pnc_get_var_ti_integer(DataHandle,Element,Var,Data,Count,OutCount,Status) !*------------------------------------------------------------------------------ !* Standard Disclaimer !* !* Forecast Systems Laboratory !* NOAA/OAR/ERL/FSL !* 325 Broadway !* Boulder, CO 80303 !* !* AVIATION DIVISION !* ADVANCED COMPUTING BRANCH !* SMS/NNT Version: 2.0.0 !* !* This software and its documentation are in the public domain and !* are furnished "as is". The United States government, its !* instrumentalities, officers, employees, and agents make no !* warranty, express or implied, as to the usefulness of the software !* and documentation for any purpose. They assume no !* responsibility (1) for the use of the software and documentation; !* or (2) to provide technical support to users. !* !* Permission to use, copy, modify, and distribute this software is !* hereby granted, provided that this disclaimer notice appears in !* all copies. All modifications to this software must be clearly !* documented, and are solely the responsibility of the agent making !* the modification. If significant modifications or enhancements !* are made to this software, the SMS Development team !* (sms-info@fsl.noaa.gov) should be notified. !* !*---------------------------------------------------------------------------- !* !* WRF NetCDF I/O ! Author: Jacques Middlecoff jacquesm@fsl.noaa.gov !* Date: October 6, 2000 !* !*---------------------------------------------------------------------------- use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: Element character*(*) ,intent(in) :: Var integer,intent(out) :: Data(*) integer,intent(in) :: Count integer,intent(out) :: OutCount integer ,intent(out) :: Status type(wrf_data_handle) ,pointer :: DH integer :: XLen integer(KIND=MPI_OFFSET_KIND) :: XLen_offset integer,allocatable :: Buffer(:) character (VarNameLen) :: VarName integer :: stat integer :: NVar integer :: XType if(Count <= 0) then Status = WRF_WARN_ZERO_LENGTH_GET write(msg,*) & 'Warning ZERO LENGTH GET in ',"ext_pnc_get_var_ti.code",' ','INTEGER',', line', 61 call wrf_debug ( WARN , msg) return endif VarName = Var call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning Status = ',Status,' in ',"ext_pnc_get_var_ti.code",' ','INTEGER',', line', 69 call wrf_debug ( WARN , msg) return endif if(DH%FileStatus == WRF_FILE_NOT_OPENED) then Status = WRF_WARN_FILE_NOT_OPENED write(msg,*) & 'Warning FILE NOT OPENED in ',"ext_pnc_get_var_ti.code",' ','INTEGER',', line', 76 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_NOT_COMMITTED) then Status = WRF_WARN_DRYRUN_READ write(msg,*) & 'Warning DRYRUN READ in ',"ext_pnc_get_var_ti.code",' ','INTEGER',', line', 81 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_WRITE) then Status = WRF_WARN_READ_WONLY_FILE write(msg,*) & 'Warning READ WONLY FILE in ',"ext_pnc_get_var_ti.code",' ','INTEGER',', line', 86 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_READ) then do NVar=1,DH%NumVars if(DH%VarNames(NVar) == VarName) then exit elseif(NVar == DH%NumVars) then Status = WRF_WARN_VAR_NF write(msg,*) & 'Warning VARIABLE NOT FOUND in ',"ext_pnc_get_var_ti.code",' ','INTEGER',', line', 95 call wrf_debug ( WARN , msg) return endif enddo XLen_offset = i2offset(XLen) stat = NFMPI_INQ_ATT(DH%NCID,DH%VarIDs(NVar),trim(Element),XType,XLen_offset) XLen = XLen_offset call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_get_var_ti.code",' ','INTEGER',', line', 106,' Element ',Element call wrf_debug ( WARN , msg) endif if ( NF_INT == NF_DOUBLE .OR. NF_INT == NF_FLOAT ) then if( .NOT. ( XType==NF_FLOAT .OR. XType==NF_DOUBLE) ) then Status = WRF_WARN_TYPE_MISMATCH write(msg,*) & 'Warning TYPE MISMATCH in ',"ext_pnc_get_var_ti.code",' ','INTEGER',', line', 113 call wrf_debug ( WARN , msg) return endif else if(XType /= NF_INT) then Status = WRF_WARN_TYPE_MISMATCH write(msg,*) & 'Warning TYPE MISMATCH in ',"ext_pnc_get_var_ti.code",' ','INTEGER',', line', 121 call wrf_debug ( WARN , msg) return endif endif allocate(Buffer(XLen), STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_ALLOCATION_ERROR write(msg,*) & 'Fatal ALLOCATION ERROR in ',"ext_pnc_get_var_ti.code",' ','INTEGER',', line', 131 call wrf_debug ( FATAL , msg) return endif stat = NFMPI_GET_ATT_INT(DH%NCID,DH%VarIDs(NVar),trim(Element), Buffer ) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_get_var_ti.code",' ','INTEGER',', line', 149,' Element ',Element call wrf_debug ( WARN , msg) endif Data(1:min(XLen,Count)) = Buffer(1:min(XLen,Count)) deallocate(Buffer, STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_DEALLOCATION_ERR write(msg,*) & 'Fatal DEALLOCATION ERROR in ',"ext_pnc_get_var_ti.code",' ','INTEGER',', line', 158 call wrf_debug ( FATAL , msg) return endif if(XLen > Count) then OutCount = Count Status = WRF_WARN_MORE_DATA_IN_FILE else OutCount = XLen Status = WRF_NO_ERR endif else Status = WRF_ERR_FATAL_BAD_FILE_STATUS write(msg,*) & 'Fatal error BAD FILE STATUS in ',"ext_pnc_get_var_ti.code",' ','INTEGER',', line', 173 call wrf_debug ( FATAL , msg) return endif return end subroutine ext_pnc_get_var_ti_integer subroutine ext_pnc_get_var_td_integer(DataHandle,Element,DateStr,Var,Data,Count,OutCount,Status) !*------------------------------------------------------------------------------ !* Standard Disclaimer !* !* Forecast Systems Laboratory !* NOAA/OAR/ERL/FSL !* 325 Broadway !* Boulder, CO 80303 !* !* AVIATION DIVISION !* ADVANCED COMPUTING BRANCH !* SMS/NNT Version: 2.0.0 !* !* This software and its documentation are in the public domain and !* are furnished "as is". The United States government, its !* instrumentalities, officers, employees, and agents make no !* warranty, express or implied, as to the usefulness of the software !* and documentation for any purpose. They assume no !* responsibility (1) for the use of the software and documentation; !* or (2) to provide technical support to users. !* !* Permission to use, copy, modify, and distribute this software is !* hereby granted, provided that this disclaimer notice appears in !* all copies. All modifications to this software must be clearly !* documented, and are solely the responsibility of the agent making !* the modification. If significant modifications or enhancements !* are made to this software, the SMS Development team !* (sms-info@fsl.noaa.gov) should be notified. !* !*---------------------------------------------------------------------------- !* !* WRF NetCDF I/O ! Author: Jacques Middlecoff jacquesm@fsl.noaa.gov !* Date: October 6, 2000 !* !*---------------------------------------------------------------------------- use wrf_data_pnc use ext_pnc_support_routines implicit none ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all include 'wrf_status_codes.h' integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: Element character (DateStrLen),intent(in) :: DateStr character*(*) ,intent(in) :: Var integer,intent(out) :: Data(*) integer,intent(in) :: Count integer,intent(out) :: OutCount integer ,intent(out) :: Status type(wrf_data_handle) ,pointer :: DH character (VarNameLen) :: VarName character (40+len(Element)) :: Name character (40+len(Element)) :: FName integer :: stat integer ,allocatable :: Buffer(:) integer :: i integer :: VDims (2) integer(KIND=MPI_OFFSET_KIND) :: VStart(2) integer(KIND=MPI_OFFSET_KIND) :: VCount(2) integer :: NVar integer :: TimeIndex integer :: NCID integer :: DimIDs(2) integer :: VarID integer :: XType integer :: NDims integer :: NAtts integer(KIND=MPI_OFFSET_KIND) :: Len1_okind integer :: Len1 if(Count <= 0) then Status = WRF_WARN_ZERO_LENGTH_GET write(msg,*) & 'Warning ZERO LENGTH GET in ',"ext_pnc_get_var_td.code",' ','INTEGER',', line', 74 call wrf_debug ( WARN , msg) return endif VarName = Var call DateCheck(DateStr,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning DATE STRING ERROR in ',"ext_pnc_get_var_td.code",' ','INTEGER',', line', 82 call wrf_debug ( WARN , msg) return endif call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning Status = ',Status,' in ',"ext_pnc_get_var_td.code",' ','INTEGER',', line', 89 call wrf_debug ( WARN , msg) return endif NCID = DH%NCID call GetName(Element, VarName, Name, Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning Status = ',Status,' in ',"ext_pnc_get_var_td.code",' ','INTEGER',', line', 97 call wrf_debug ( WARN , msg) return endif if(DH%FileStatus == WRF_FILE_NOT_OPENED) then Status = WRF_WARN_FILE_NOT_OPENED write(msg,*) & 'Warning FILE NOT OPENED in ',"ext_pnc_get_var_td.code",' ','INTEGER',', line', 104 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_NOT_COMMITTED) then Status = WRF_WARN_DRYRUN_READ write(msg,*) & 'Warning DRYRUN READ in ',"ext_pnc_get_var_td.code",' ','INTEGER',', line', 109 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_WRITE) then Status = WRF_WARN_READ_WONLY_FILE write(msg,*) & 'Warning READ WONLY FILE in ',"ext_pnc_get_var_td.code",' ','INTEGER',', line', 114 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_READ) then stat = NFMPI_INQ_VARID(NCID,Name,VarID) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_get_var_td.code",' ','INTEGER',', line', 121,' Element ',Element call wrf_debug ( WARN , msg) return endif stat = NFMPI_INQ_VAR(NCID,VarID,FName,XType,NDims,DimIDs,NAtts) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_get_var_td.code",' ','INTEGER',', line', 129,' Element ',Element call wrf_debug ( WARN , msg) return endif if ( NF_INT == NF_DOUBLE .OR. NF_INT == NF_FLOAT ) then if( .NOT. ( XType==NF_FLOAT .OR. XType==NF_DOUBLE) ) then Status = WRF_WARN_TYPE_MISMATCH write(msg,*) & 'Warning TYPE MISMATCH in ',"ext_pnc_get_var_td.code",' ','INTEGER',', line', 137 call wrf_debug ( WARN , msg) return endif else if(XType /= NF_INT) then Status = WRF_WARN_TYPE_MISMATCH write(msg,*) & 'Warning TYPE MISMATCH in ',"ext_pnc_get_var_td.code",' ','INTEGER',', line', 145 call wrf_debug ( WARN , msg) return endif endif if(NDims /= NMDVarDims) then Status = WRF_ERR_FATAL_MDVAR_DIM_NOT_1D write(msg,*) & 'Fatal MDVAR DIM NOT 1D in ',"ext_pnc_get_var_td.code",' ','INTEGER',', line', 153 call wrf_debug ( FATAL , msg) return endif stat = NFMPI_INQ_DIMLEN(NCID,DimIDs(1),Len1_okind) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_get_var_td.code",' ','INTEGER',', line', 161,' DimIDs(1) ',DimIDs(1) call wrf_debug ( WARN , msg) return endif Len1 = Len1_okind call GetTimeIndex('read',DataHandle,DateStr,TimeIndex,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning in ',"ext_pnc_get_var_td.code",' ','INTEGER',', line', 169 call wrf_debug ( WARN , msg) return endif VStart(1) = 1 VStart(2) = TimeIndex VCount(1) = min(Count,Len1) VCount(2) = 1 allocate(Buffer(VCount(1)), STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_ALLOCATION_ERROR write(msg,*) & 'Fatal ALLOCATION ERROR in ',"ext_pnc_get_var_td.code",' ','INTEGER',', line', 182 call wrf_debug ( FATAL , msg) return endif stat = NFMPI_GET_VARA_INT_ALL (NCID,VarID,VStart,VCount,Buffer) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_get_var_td.code",' ','INTEGER',', line', 201 call wrf_debug ( WARN , msg) return endif Data(1:min(Len1,Count)) = Buffer(1:min(Len1,Count)) deallocate(Buffer, STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_DEALLOCATION_ERR write(msg,*) & 'Fatal DEALLOCATION ERROR in ',"ext_pnc_get_var_td.code",' ','INTEGER',', line', 211 call wrf_debug ( FATAL , msg) return endif if(Len1 > Count) then OutCount = Count Status = WRF_WARN_MORE_DATA_IN_FILE else OutCount = Len1 Status = WRF_NO_ERR endif else Status = WRF_ERR_FATAL_BAD_FILE_STATUS write(msg,*) & 'Fatal error BAD FILE STATUS in ',"ext_pnc_get_var_td.code",' ','INTEGER',', line', 226 call wrf_debug ( FATAL , msg) endif return end subroutine ext_pnc_get_var_td_integer subroutine ext_pnc_get_var_ti_logical(DataHandle,Element,Var,Data,Count,OutCount,Status) !*------------------------------------------------------------------------------ !* Standard Disclaimer !* !* Forecast Systems Laboratory !* NOAA/OAR/ERL/FSL !* 325 Broadway !* Boulder, CO 80303 !* !* AVIATION DIVISION !* ADVANCED COMPUTING BRANCH !* SMS/NNT Version: 2.0.0 !* !* This software and its documentation are in the public domain and !* are furnished "as is". The United States government, its !* instrumentalities, officers, employees, and agents make no !* warranty, express or implied, as to the usefulness of the software !* and documentation for any purpose. They assume no !* responsibility (1) for the use of the software and documentation; !* or (2) to provide technical support to users. !* !* Permission to use, copy, modify, and distribute this software is !* hereby granted, provided that this disclaimer notice appears in !* all copies. All modifications to this software must be clearly !* documented, and are solely the responsibility of the agent making !* the modification. If significant modifications or enhancements !* are made to this software, the SMS Development team !* (sms-info@fsl.noaa.gov) should be notified. !* !*---------------------------------------------------------------------------- !* !* WRF NetCDF I/O ! Author: Jacques Middlecoff jacquesm@fsl.noaa.gov !* Date: October 6, 2000 !* !*---------------------------------------------------------------------------- use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: Element character*(*) ,intent(in) :: Var logical,intent(out) :: Data(*) integer,intent(in) :: Count integer,intent(out) :: OutCount integer ,intent(out) :: Status type(wrf_data_handle) ,pointer :: DH integer :: XLen integer(KIND=MPI_OFFSET_KIND) :: XLen_offset integer,allocatable :: Buffer(:) character (VarNameLen) :: VarName integer :: stat integer :: NVar integer :: XType if(Count <= 0) then Status = WRF_WARN_ZERO_LENGTH_GET write(msg,*) & 'Warning ZERO LENGTH GET in ',"ext_pnc_get_var_ti.code",' ','LOGICAL',', line', 61 call wrf_debug ( WARN , msg) return endif VarName = Var call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning Status = ',Status,' in ',"ext_pnc_get_var_ti.code",' ','LOGICAL',', line', 69 call wrf_debug ( WARN , msg) return endif if(DH%FileStatus == WRF_FILE_NOT_OPENED) then Status = WRF_WARN_FILE_NOT_OPENED write(msg,*) & 'Warning FILE NOT OPENED in ',"ext_pnc_get_var_ti.code",' ','LOGICAL',', line', 76 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_NOT_COMMITTED) then Status = WRF_WARN_DRYRUN_READ write(msg,*) & 'Warning DRYRUN READ in ',"ext_pnc_get_var_ti.code",' ','LOGICAL',', line', 81 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_WRITE) then Status = WRF_WARN_READ_WONLY_FILE write(msg,*) & 'Warning READ WONLY FILE in ',"ext_pnc_get_var_ti.code",' ','LOGICAL',', line', 86 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_READ) then do NVar=1,DH%NumVars if(DH%VarNames(NVar) == VarName) then exit elseif(NVar == DH%NumVars) then Status = WRF_WARN_VAR_NF write(msg,*) & 'Warning VARIABLE NOT FOUND in ',"ext_pnc_get_var_ti.code",' ','LOGICAL',', line', 95 call wrf_debug ( WARN , msg) return endif enddo XLen_offset = i2offset(XLen) stat = NFMPI_INQ_ATT(DH%NCID,DH%VarIDs(NVar),trim(Element),XType,XLen_offset) XLen = XLen_offset call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_get_var_ti.code",' ','LOGICAL',', line', 106,' Element ',Element call wrf_debug ( WARN , msg) endif if ( NF_INT == NF_DOUBLE .OR. NF_INT == NF_FLOAT ) then if( .NOT. ( XType==NF_FLOAT .OR. XType==NF_DOUBLE) ) then Status = WRF_WARN_TYPE_MISMATCH write(msg,*) & 'Warning TYPE MISMATCH in ',"ext_pnc_get_var_ti.code",' ','LOGICAL',', line', 113 call wrf_debug ( WARN , msg) return endif else if(XType /= NF_INT) then Status = WRF_WARN_TYPE_MISMATCH write(msg,*) & 'Warning TYPE MISMATCH in ',"ext_pnc_get_var_ti.code",' ','LOGICAL',', line', 121 call wrf_debug ( WARN , msg) return endif endif allocate(Buffer(XLen), STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_ALLOCATION_ERROR write(msg,*) & 'Fatal ALLOCATION ERROR in ',"ext_pnc_get_var_ti.code",' ','LOGICAL',', line', 131 call wrf_debug ( FATAL , msg) return endif stat = NFMPI_GET_ATT_INT(DH%NCID,DH%VarIDs(NVar),trim(Element), Buffer ) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_get_var_ti.code",' ','LOGICAL',', line', 149,' Element ',Element call wrf_debug ( WARN , msg) endif Data(1:min(XLen,Count)) = Buffer(1:min(XLen,Count))==1 deallocate(Buffer, STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_DEALLOCATION_ERR write(msg,*) & 'Fatal DEALLOCATION ERROR in ',"ext_pnc_get_var_ti.code",' ','LOGICAL',', line', 158 call wrf_debug ( FATAL , msg) return endif if(XLen > Count) then OutCount = Count Status = WRF_WARN_MORE_DATA_IN_FILE else OutCount = XLen Status = WRF_NO_ERR endif else Status = WRF_ERR_FATAL_BAD_FILE_STATUS write(msg,*) & 'Fatal error BAD FILE STATUS in ',"ext_pnc_get_var_ti.code",' ','LOGICAL',', line', 173 call wrf_debug ( FATAL , msg) return endif return end subroutine ext_pnc_get_var_ti_logical subroutine ext_pnc_get_var_td_logical(DataHandle,Element,DateStr,Var,Data,Count,OutCount,Status) !*------------------------------------------------------------------------------ !* Standard Disclaimer !* !* Forecast Systems Laboratory !* NOAA/OAR/ERL/FSL !* 325 Broadway !* Boulder, CO 80303 !* !* AVIATION DIVISION !* ADVANCED COMPUTING BRANCH !* SMS/NNT Version: 2.0.0 !* !* This software and its documentation are in the public domain and !* are furnished "as is". The United States government, its !* instrumentalities, officers, employees, and agents make no !* warranty, express or implied, as to the usefulness of the software !* and documentation for any purpose. They assume no !* responsibility (1) for the use of the software and documentation; !* or (2) to provide technical support to users. !* !* Permission to use, copy, modify, and distribute this software is !* hereby granted, provided that this disclaimer notice appears in !* all copies. All modifications to this software must be clearly !* documented, and are solely the responsibility of the agent making !* the modification. If significant modifications or enhancements !* are made to this software, the SMS Development team !* (sms-info@fsl.noaa.gov) should be notified. !* !*---------------------------------------------------------------------------- !* !* WRF NetCDF I/O ! Author: Jacques Middlecoff jacquesm@fsl.noaa.gov !* Date: October 6, 2000 !* !*---------------------------------------------------------------------------- use wrf_data_pnc use ext_pnc_support_routines implicit none ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all include 'wrf_status_codes.h' integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: Element character (DateStrLen),intent(in) :: DateStr character*(*) ,intent(in) :: Var logical,intent(out) :: Data(*) integer,intent(in) :: Count integer,intent(out) :: OutCount integer ,intent(out) :: Status type(wrf_data_handle) ,pointer :: DH character (VarNameLen) :: VarName character (40+len(Element)) :: Name character (40+len(Element)) :: FName integer :: stat integer ,allocatable :: Buffer(:) integer :: i integer :: VDims (2) integer(KIND=MPI_OFFSET_KIND) :: VStart(2) integer(KIND=MPI_OFFSET_KIND) :: VCount(2) integer :: NVar integer :: TimeIndex integer :: NCID integer :: DimIDs(2) integer :: VarID integer :: XType integer :: NDims integer :: NAtts integer(KIND=MPI_OFFSET_KIND) :: Len1_okind integer :: Len1 if(Count <= 0) then Status = WRF_WARN_ZERO_LENGTH_GET write(msg,*) & 'Warning ZERO LENGTH GET in ',"ext_pnc_get_var_td.code",' ','LOGICAL',', line', 74 call wrf_debug ( WARN , msg) return endif VarName = Var call DateCheck(DateStr,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning DATE STRING ERROR in ',"ext_pnc_get_var_td.code",' ','LOGICAL',', line', 82 call wrf_debug ( WARN , msg) return endif call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning Status = ',Status,' in ',"ext_pnc_get_var_td.code",' ','LOGICAL',', line', 89 call wrf_debug ( WARN , msg) return endif NCID = DH%NCID call GetName(Element, VarName, Name, Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning Status = ',Status,' in ',"ext_pnc_get_var_td.code",' ','LOGICAL',', line', 97 call wrf_debug ( WARN , msg) return endif if(DH%FileStatus == WRF_FILE_NOT_OPENED) then Status = WRF_WARN_FILE_NOT_OPENED write(msg,*) & 'Warning FILE NOT OPENED in ',"ext_pnc_get_var_td.code",' ','LOGICAL',', line', 104 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_NOT_COMMITTED) then Status = WRF_WARN_DRYRUN_READ write(msg,*) & 'Warning DRYRUN READ in ',"ext_pnc_get_var_td.code",' ','LOGICAL',', line', 109 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_WRITE) then Status = WRF_WARN_READ_WONLY_FILE write(msg,*) & 'Warning READ WONLY FILE in ',"ext_pnc_get_var_td.code",' ','LOGICAL',', line', 114 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_READ) then stat = NFMPI_INQ_VARID(NCID,Name,VarID) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_get_var_td.code",' ','LOGICAL',', line', 121,' Element ',Element call wrf_debug ( WARN , msg) return endif stat = NFMPI_INQ_VAR(NCID,VarID,FName,XType,NDims,DimIDs,NAtts) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_get_var_td.code",' ','LOGICAL',', line', 129,' Element ',Element call wrf_debug ( WARN , msg) return endif if ( NF_INT == NF_DOUBLE .OR. NF_INT == NF_FLOAT ) then if( .NOT. ( XType==NF_FLOAT .OR. XType==NF_DOUBLE) ) then Status = WRF_WARN_TYPE_MISMATCH write(msg,*) & 'Warning TYPE MISMATCH in ',"ext_pnc_get_var_td.code",' ','LOGICAL',', line', 137 call wrf_debug ( WARN , msg) return endif else if(XType /= NF_INT) then Status = WRF_WARN_TYPE_MISMATCH write(msg,*) & 'Warning TYPE MISMATCH in ',"ext_pnc_get_var_td.code",' ','LOGICAL',', line', 145 call wrf_debug ( WARN , msg) return endif endif if(NDims /= NMDVarDims) then Status = WRF_ERR_FATAL_MDVAR_DIM_NOT_1D write(msg,*) & 'Fatal MDVAR DIM NOT 1D in ',"ext_pnc_get_var_td.code",' ','LOGICAL',', line', 153 call wrf_debug ( FATAL , msg) return endif stat = NFMPI_INQ_DIMLEN(NCID,DimIDs(1),Len1_okind) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_get_var_td.code",' ','LOGICAL',', line', 161,' DimIDs(1) ',DimIDs(1) call wrf_debug ( WARN , msg) return endif Len1 = Len1_okind call GetTimeIndex('read',DataHandle,DateStr,TimeIndex,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning in ',"ext_pnc_get_var_td.code",' ','LOGICAL',', line', 169 call wrf_debug ( WARN , msg) return endif VStart(1) = 1 VStart(2) = TimeIndex VCount(1) = min(Count,Len1) VCount(2) = 1 allocate(Buffer(VCount(1)), STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_ALLOCATION_ERROR write(msg,*) & 'Fatal ALLOCATION ERROR in ',"ext_pnc_get_var_td.code",' ','LOGICAL',', line', 182 call wrf_debug ( FATAL , msg) return endif stat = NFMPI_GET_VARA_INT_ALL (NCID,VarID,VStart,VCount,Buffer) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_get_var_td.code",' ','LOGICAL',', line', 201 call wrf_debug ( WARN , msg) return endif Data(1:min(Len1,Count)) = Buffer(1:min(Len1,Count))==1 deallocate(Buffer, STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_DEALLOCATION_ERR write(msg,*) & 'Fatal DEALLOCATION ERROR in ',"ext_pnc_get_var_td.code",' ','LOGICAL',', line', 211 call wrf_debug ( FATAL , msg) return endif if(Len1 > Count) then OutCount = Count Status = WRF_WARN_MORE_DATA_IN_FILE else OutCount = Len1 Status = WRF_NO_ERR endif else Status = WRF_ERR_FATAL_BAD_FILE_STATUS write(msg,*) & 'Fatal error BAD FILE STATUS in ',"ext_pnc_get_var_td.code",' ','LOGICAL',', line', 226 call wrf_debug ( FATAL , msg) endif return end subroutine ext_pnc_get_var_td_logical subroutine ext_pnc_get_var_ti_char(DataHandle,Element,Var,Data,Status) !*------------------------------------------------------------------------------ !* Standard Disclaimer !* !* Forecast Systems Laboratory !* NOAA/OAR/ERL/FSL !* 325 Broadway !* Boulder, CO 80303 !* !* AVIATION DIVISION !* ADVANCED COMPUTING BRANCH !* SMS/NNT Version: 2.0.0 !* !* This software and its documentation are in the public domain and !* are furnished "as is". The United States government, its !* instrumentalities, officers, employees, and agents make no !* warranty, express or implied, as to the usefulness of the software !* and documentation for any purpose. They assume no !* responsibility (1) for the use of the software and documentation; !* or (2) to provide technical support to users. !* !* Permission to use, copy, modify, and distribute this software is !* hereby granted, provided that this disclaimer notice appears in !* all copies. All modifications to this software must be clearly !* documented, and are solely the responsibility of the agent making !* the modification. If significant modifications or enhancements !* are made to this software, the SMS Development team !* (sms-info@fsl.noaa.gov) should be notified. !* !*---------------------------------------------------------------------------- !* !* WRF NetCDF I/O ! Author: Jacques Middlecoff jacquesm@fsl.noaa.gov !* Date: October 6, 2000 !* !*---------------------------------------------------------------------------- use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: Element character*(*) ,intent(in) :: Var character*(*) ,intent(out) :: Data integer :: Count = 1 integer ,intent(out) :: Status type(wrf_data_handle) ,pointer :: DH integer :: XLen integer(KIND=MPI_OFFSET_KIND) :: XLen_offset character (VarNameLen) :: VarName integer :: stat integer :: NVar integer :: XType if(Count <= 0) then Status = WRF_WARN_ZERO_LENGTH_GET write(msg,*) & 'Warning ZERO LENGTH GET in ',"ext_pnc_get_var_ti.code",' ','CHAR',', line', 61 call wrf_debug ( WARN , msg) return endif VarName = Var call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning Status = ',Status,' in ',"ext_pnc_get_var_ti.code",' ','CHAR',', line', 69 call wrf_debug ( WARN , msg) return endif if(DH%FileStatus == WRF_FILE_NOT_OPENED) then Status = WRF_WARN_FILE_NOT_OPENED write(msg,*) & 'Warning FILE NOT OPENED in ',"ext_pnc_get_var_ti.code",' ','CHAR',', line', 76 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_NOT_COMMITTED) then Status = WRF_WARN_DRYRUN_READ write(msg,*) & 'Warning DRYRUN READ in ',"ext_pnc_get_var_ti.code",' ','CHAR',', line', 81 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_WRITE) then Status = WRF_WARN_READ_WONLY_FILE write(msg,*) & 'Warning READ WONLY FILE in ',"ext_pnc_get_var_ti.code",' ','CHAR',', line', 86 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_READ) then do NVar=1,DH%NumVars if(DH%VarNames(NVar) == VarName) then exit elseif(NVar == DH%NumVars) then Status = WRF_WARN_VAR_NF write(msg,*) & 'Warning VARIABLE NOT FOUND in ',"ext_pnc_get_var_ti.code",' ','CHAR',', line', 95 call wrf_debug ( WARN , msg) return endif enddo XLen_offset = i2offset(XLen) stat = NFMPI_INQ_ATT(DH%NCID,DH%VarIDs(NVar),trim(Element),XType,XLen_offset) XLen = XLen_offset call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_get_var_ti.code",' ','CHAR',', line', 106,' Element ',Element call wrf_debug ( WARN , msg) endif if ( NF_CHAR == NF_DOUBLE .OR. NF_CHAR == NF_FLOAT ) then if( .NOT. ( XType==NF_FLOAT .OR. XType==NF_DOUBLE) ) then Status = WRF_WARN_TYPE_MISMATCH write(msg,*) & 'Warning TYPE MISMATCH in ',"ext_pnc_get_var_ti.code",' ','CHAR',', line', 113 call wrf_debug ( WARN , msg) return endif else if(XType /= NF_CHAR) then Status = WRF_WARN_TYPE_MISMATCH write(msg,*) & 'Warning TYPE MISMATCH in ',"ext_pnc_get_var_ti.code",' ','CHAR',', line', 121 call wrf_debug ( WARN , msg) return endif endif if(XLen > len(Data)) then Status = WRF_WARN_CHARSTR_GT_LENDATA write(msg,*) & 'Warning LEN CHAR STRING > LEN DATA in ',"ext_pnc_get_var_ti.code",' ','CHAR',', line', 140 call wrf_debug ( WARN , msg) return endif stat = NFMPI_GET_ATT_TEXT(DH%NCID,DH%VarIDs(NVar),trim(Element), Data ) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_get_var_ti.code",' ','CHAR',', line', 149,' Element ',Element call wrf_debug ( WARN , msg) endif else Status = WRF_ERR_FATAL_BAD_FILE_STATUS write(msg,*) & 'Fatal error BAD FILE STATUS in ',"ext_pnc_get_var_ti.code",' ','CHAR',', line', 173 call wrf_debug ( FATAL , msg) return endif return end subroutine ext_pnc_get_var_ti_char subroutine ext_pnc_get_var_td_char(DataHandle,Element,DateStr,Var,Data,Status) !*------------------------------------------------------------------------------ !* Standard Disclaimer !* !* Forecast Systems Laboratory !* NOAA/OAR/ERL/FSL !* 325 Broadway !* Boulder, CO 80303 !* !* AVIATION DIVISION !* ADVANCED COMPUTING BRANCH !* SMS/NNT Version: 2.0.0 !* !* This software and its documentation are in the public domain and !* are furnished "as is". The United States government, its !* instrumentalities, officers, employees, and agents make no !* warranty, express or implied, as to the usefulness of the software !* and documentation for any purpose. They assume no !* responsibility (1) for the use of the software and documentation; !* or (2) to provide technical support to users. !* !* Permission to use, copy, modify, and distribute this software is !* hereby granted, provided that this disclaimer notice appears in !* all copies. All modifications to this software must be clearly !* documented, and are solely the responsibility of the agent making !* the modification. If significant modifications or enhancements !* are made to this software, the SMS Development team !* (sms-info@fsl.noaa.gov) should be notified. !* !*---------------------------------------------------------------------------- !* !* WRF NetCDF I/O ! Author: Jacques Middlecoff jacquesm@fsl.noaa.gov !* Date: October 6, 2000 !* !*---------------------------------------------------------------------------- use wrf_data_pnc use ext_pnc_support_routines implicit none ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all include 'wrf_status_codes.h' integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: Element character (DateStrLen),intent(in) :: DateStr character*(*) ,intent(in) :: Var character*(*) ,intent(out) :: Data integer :: Count = 1 integer ,intent(out) :: Status type(wrf_data_handle) ,pointer :: DH character (VarNameLen) :: VarName character (40+len(Element)) :: Name character (40+len(Element)) :: FName integer :: stat character (80) ,allocatable :: Buffer(:) integer :: i integer :: VDims (2) integer(KIND=MPI_OFFSET_KIND) :: VStart(2) integer(KIND=MPI_OFFSET_KIND) :: VCount(2) integer :: NVar integer :: TimeIndex integer :: NCID integer :: DimIDs(2) integer :: VarID integer :: XType integer :: NDims integer :: NAtts integer(KIND=MPI_OFFSET_KIND) :: Len1_okind integer :: Len1 if(Count <= 0) then Status = WRF_WARN_ZERO_LENGTH_GET write(msg,*) & 'Warning ZERO LENGTH GET in ',"ext_pnc_get_var_td.code",' ','CHAR',', line', 74 call wrf_debug ( WARN , msg) return endif VarName = Var call DateCheck(DateStr,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning DATE STRING ERROR in ',"ext_pnc_get_var_td.code",' ','CHAR',', line', 82 call wrf_debug ( WARN , msg) return endif call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning Status = ',Status,' in ',"ext_pnc_get_var_td.code",' ','CHAR',', line', 89 call wrf_debug ( WARN , msg) return endif NCID = DH%NCID call GetName(Element, VarName, Name, Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning Status = ',Status,' in ',"ext_pnc_get_var_td.code",' ','CHAR',', line', 97 call wrf_debug ( WARN , msg) return endif if(DH%FileStatus == WRF_FILE_NOT_OPENED) then Status = WRF_WARN_FILE_NOT_OPENED write(msg,*) & 'Warning FILE NOT OPENED in ',"ext_pnc_get_var_td.code",' ','CHAR',', line', 104 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_NOT_COMMITTED) then Status = WRF_WARN_DRYRUN_READ write(msg,*) & 'Warning DRYRUN READ in ',"ext_pnc_get_var_td.code",' ','CHAR',', line', 109 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_WRITE) then Status = WRF_WARN_READ_WONLY_FILE write(msg,*) & 'Warning READ WONLY FILE in ',"ext_pnc_get_var_td.code",' ','CHAR',', line', 114 call wrf_debug ( WARN , msg) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_READ) then stat = NFMPI_INQ_VARID(NCID,Name,VarID) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_get_var_td.code",' ','CHAR',', line', 121,' Element ',Element call wrf_debug ( WARN , msg) return endif stat = NFMPI_INQ_VAR(NCID,VarID,FName,XType,NDims,DimIDs,NAtts) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_get_var_td.code",' ','CHAR',', line', 129,' Element ',Element call wrf_debug ( WARN , msg) return endif if ( NF_CHAR == NF_DOUBLE .OR. NF_CHAR == NF_FLOAT ) then if( .NOT. ( XType==NF_FLOAT .OR. XType==NF_DOUBLE) ) then Status = WRF_WARN_TYPE_MISMATCH write(msg,*) & 'Warning TYPE MISMATCH in ',"ext_pnc_get_var_td.code",' ','CHAR',', line', 137 call wrf_debug ( WARN , msg) return endif else if(XType /= NF_CHAR) then Status = WRF_WARN_TYPE_MISMATCH write(msg,*) & 'Warning TYPE MISMATCH in ',"ext_pnc_get_var_td.code",' ','CHAR',', line', 145 call wrf_debug ( WARN , msg) return endif endif if(NDims /= NMDVarDims) then Status = WRF_ERR_FATAL_MDVAR_DIM_NOT_1D write(msg,*) & 'Fatal MDVAR DIM NOT 1D in ',"ext_pnc_get_var_td.code",' ','CHAR',', line', 153 call wrf_debug ( FATAL , msg) return endif stat = NFMPI_INQ_DIMLEN(NCID,DimIDs(1),Len1_okind) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_get_var_td.code",' ','CHAR',', line', 161,' DimIDs(1) ',DimIDs(1) call wrf_debug ( WARN , msg) return endif Len1 = Len1_okind call GetTimeIndex('read',DataHandle,DateStr,TimeIndex,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'Warning in ',"ext_pnc_get_var_td.code",' ','CHAR',', line', 169 call wrf_debug ( WARN , msg) return endif VStart(1) = 1 VStart(2) = TimeIndex VCount(1) = Len1 VCount(2) = 1 if(Len1 > len(Data)) then Status = WRF_WARN_CHARSTR_GT_LENDATA write(msg,*) & 'Warning LEN CHAR STRING > LEN DATA in ',"ext_pnc_get_var_td.code",' ','CHAR',', line', 191 call wrf_debug ( WARN , msg) return endif Data = '' stat = NFMPI_GET_VARA_TEXT_ALL (NCID,VarID,VStart,VCount,Data) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) & 'NetCDF error in ',"ext_pnc_get_var_td.code",' ','CHAR',', line', 201 call wrf_debug ( WARN , msg) return endif else Status = WRF_ERR_FATAL_BAD_FILE_STATUS write(msg,*) & 'Fatal error BAD FILE STATUS in ',"ext_pnc_get_var_td.code",' ','CHAR',', line', 226 call wrf_debug ( FATAL , msg) endif return end subroutine ext_pnc_get_var_td_char subroutine ext_pnc_put_dom_td_real(DataHandle,Element,DateStr,Data,Count,Status) integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: Element character*(*) ,intent(in) :: DateStr real ,intent(in) :: Data(*) integer ,intent(in) :: Count integer ,intent(out) :: Status call ext_pnc_put_var_td_real(DataHandle,Element,DateStr, & 'E_X_T_D_O_M_A_I_N_M_E_T_A_DATA_' ,Data,Count,Status) return end subroutine ext_pnc_put_dom_td_real subroutine ext_pnc_put_dom_td_integer(DataHandle,Element,DateStr,Data,Count,Status) integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: Element character*(*) ,intent(in) :: DateStr integer ,intent(in) :: Data(*) integer ,intent(in) :: Count integer ,intent(out) :: Status call ext_pnc_put_var_td_integer(DataHandle,Element,DateStr, & 'E_X_T_D_O_M_A_I_N_M_E_T_A_DATA_' ,Data,Count,Status) return end subroutine ext_pnc_put_dom_td_integer subroutine ext_pnc_put_dom_td_double(DataHandle,Element,DateStr,Data,Count,Status) integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: Element character*(*) ,intent(in) :: DateStr real*8 ,intent(in) :: Data(*) integer ,intent(in) :: Count integer ,intent(out) :: Status call ext_pnc_put_var_td_double(DataHandle,Element,DateStr, & 'E_X_T_D_O_M_A_I_N_M_E_T_A_DATA_' ,Data,Count,Status) return end subroutine ext_pnc_put_dom_td_double subroutine ext_pnc_put_dom_td_logical(DataHandle,Element,DateStr,Data,Count,Status) integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: Element character*(*) ,intent(in) :: DateStr logical ,intent(in) :: Data(*) integer ,intent(in) :: Count integer ,intent(out) :: Status call ext_pnc_put_var_td_logical(DataHandle,Element,DateStr, & 'E_X_T_D_O_M_A_I_N_M_E_T_A_DATA_' ,Data,Count,Status) return end subroutine ext_pnc_put_dom_td_logical subroutine ext_pnc_put_dom_td_char(DataHandle,Element,DateStr,Data,Status) integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: Element character*(*) ,intent(in) :: DateStr character*(*) ,intent(in) :: Data integer ,intent(out) :: Status call ext_pnc_put_var_td_char(DataHandle,Element,DateStr, & 'E_X_T_D_O_M_A_I_N_M_E_T_A_DATA_' ,Data,Status) return end subroutine ext_pnc_put_dom_td_char subroutine ext_pnc_get_dom_td_real(DataHandle,Element,DateStr,Data,Count,OutCount,Status) integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: Element character*(*) ,intent(in) :: DateStr real ,intent(out) :: Data(*) integer ,intent(in) :: Count integer ,intent(out) :: OutCount integer ,intent(out) :: Status call ext_pnc_get_var_td_real(DataHandle,Element,DateStr, & 'E_X_T_D_O_M_A_I_N_M_E_T_A_DATA_' ,Data,Count,OutCount,Status) return end subroutine ext_pnc_get_dom_td_real subroutine ext_pnc_get_dom_td_integer(DataHandle,Element,DateStr,Data,Count,OutCount,Status) integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: Element character*(*) ,intent(in) :: DateStr integer ,intent(out) :: Data(*) integer ,intent(in) :: Count integer ,intent(out) :: OutCount integer ,intent(out) :: Status call ext_pnc_get_var_td_integer(DataHandle,Element,DateStr, & 'E_X_T_D_O_M_A_I_N_M_E_T_A_DATA_' ,Data,Count,OutCount,Status) return end subroutine ext_pnc_get_dom_td_integer subroutine ext_pnc_get_dom_td_double(DataHandle,Element,DateStr,Data,Count,OutCount,Status) integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: Element character*(*) ,intent(in) :: DateStr real*8 ,intent(out) :: Data(*) integer ,intent(in) :: Count integer ,intent(out) :: OutCount integer ,intent(out) :: Status call ext_pnc_get_var_td_double(DataHandle,Element,DateStr, & 'E_X_T_D_O_M_A_I_N_M_E_T_A_DATA_' ,Data,Count,OutCount,Status) return end subroutine ext_pnc_get_dom_td_double subroutine ext_pnc_get_dom_td_logical(DataHandle,Element,DateStr,Data,Count,OutCount,Status) integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: Element character*(*) ,intent(in) :: DateStr logical ,intent(out) :: Data(*) integer ,intent(in) :: Count integer ,intent(out) :: OutCount integer ,intent(out) :: Status call ext_pnc_get_var_td_logical(DataHandle,Element,DateStr, & 'E_X_T_D_O_M_A_I_N_M_E_T_A_DATA_' ,Data,Count,OutCount,Status) return end subroutine ext_pnc_get_dom_td_logical subroutine ext_pnc_get_dom_td_char(DataHandle,Element,DateStr,Data,Status) integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: Element character*(*) ,intent(in) :: DateStr character*(*) ,intent(out) :: Data integer ,intent(out) :: Status call ext_pnc_get_var_td_char(DataHandle,Element,DateStr, & 'E_X_T_D_O_M_A_I_N_M_E_T_A_DATA_' ,Data,Status) return end subroutine ext_pnc_get_dom_td_char subroutine ext_pnc_write_field(DataHandle,DateStr,Var,Field,FieldType,Comm, & IOComm, DomainDesc, MemoryOrdIn, Stagger, DimNames, & DomainStart,DomainEnd,MemoryStart,MemoryEnd,PatchStart,PatchEnd,Status) use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: DateStr character*(*) ,intent(in) :: Var integer ,intent(inout) :: Field(*) integer ,intent(in) :: FieldType integer ,intent(inout) :: Comm integer ,intent(inout) :: IOComm integer ,intent(in) :: DomainDesc character*(*) ,intent(in) :: MemoryOrdIn character*(*) ,intent(in) :: Stagger ! Dummy for now character*(*) ,dimension(*) ,intent(in) :: DimNames integer ,dimension(*) ,intent(in) :: DomainStart, DomainEnd integer ,dimension(*) ,intent(in) :: MemoryStart, MemoryEnd integer ,dimension(*) ,intent(in) :: PatchStart, PatchEnd integer ,intent(out) :: Status character (3) :: MemoryOrder type(wrf_data_handle) ,pointer :: DH integer :: NCID integer :: NDim character (VarNameLen) :: VarName character (3) :: MemO character (3) :: UCMemO integer :: VarID integer ,dimension(NVarDims) :: Length_global, Length_native integer ,dimension(NVarDims) :: Length integer ,dimension(NVarDims) :: VDimIDs character(80),dimension(NVarDims) :: RODimNames integer ,dimension(NVarDims) :: StoredStart integer ,dimension(:,:,:,:),allocatable :: XField integer :: stat integer :: NVar integer :: i,j integer :: i1,i2,j1,j2,k1,k2 integer :: x1,x2,y1,y2,z1,z2 integer :: p1,p2,q1,q2,r1,r2 integer :: l1,l2,m1,m2,n1,n2 integer :: XType integer :: di character (80) :: NullName logical :: NotFound logical :: quilting ! Local, possibly adjusted, copies of MemoryStart and MemoryEnd integer ,dimension(NVarDims) :: lMemoryStart, lMemoryEnd MemoryOrder = trim(adjustl(MemoryOrdIn)) NullName=char(0) call GetDim(MemoryOrder,NDim,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'Warning BAD MEMORY ORDER |',MemoryOrder,'| in ',"wrf_io.F90",', line', 2358 call wrf_debug ( WARN , TRIM(msg)) return endif call DateCheck(DateStr,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'Warning DATE STRING ERROR |',DateStr,'| in ',"wrf_io.F90",', line', 2364 call wrf_debug ( WARN , TRIM(msg)) return endif VarName = Var call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'Warning Status = ',Status,' in ',"wrf_io.F90",', line', 2371 call wrf_debug ( WARN , TRIM(msg)) return endif NCID = DH%NCID write(msg,*)'ext_pnc_write_field: called for ',TRIM(Var) CALL wrf_debug( 100, msg ) !jm 20061024 Length(1:NDim) = PatchEnd(1:NDim)-PatchStart(1:NDim)+1 Length_native(1:NDim) = Length(1:NDim) Length_global(1:NDim) = DomainEnd(1:NDim)-DomainStart(1:NDim)+1 call ExtOrder(MemoryOrder,Length,Status) call ExtOrder(MemoryOrder,Length_global,Status) call ExtOrderStr(MemoryOrder,DimNames,RODimNames,Status) ! Magic number to identify call from IO server when doing quilting quilting = (MemoryStart(1) == -998899 .AND. MemoryEnd(1) == -998899) IF(quilting)THEN lMemoryStart(1:NDim) = 1 lMemoryEnd(1:NDim) = Length(1:NDim) ELSE lMemoryStart(1:NDim) = MemoryStart(1:NDim) lMemoryEnd(1:NDim) = MemoryEnd(1:NDim) END IF if(DH%FileStatus == WRF_FILE_NOT_OPENED) then Status = WRF_WARN_FILE_NOT_OPENED write(msg,*) 'Warning FILE NOT OPENED in ',"wrf_io.F90",', line', 2402 call wrf_debug ( WARN , TRIM(msg)) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_READ) then Status = WRF_WARN_WRITE_RONLY_FILE write(msg,*) 'Warning WRITE READ ONLY FILE in ',"wrf_io.F90",', line', 2406 call wrf_debug ( WARN , TRIM(msg)) elseif(DH%FileStatus == WRF_FILE_OPENED_NOT_COMMITTED) then do NVar=1,MaxVars if(DH%VarNames(NVar) == VarName ) then Status = WRF_WARN_2DRYRUNS_1VARIABLE write(msg,*) 'Warning 2 DRYRUNS 1 VARIABLE (',TRIM(VarName),') in ',"wrf_io.F90",', line', 2412 call wrf_debug ( WARN , TRIM(msg)) return elseif(DH%VarNames(NVar) == NO_NAME) then DH%VarNames(NVar) = VarName DH%NumVars = NVar exit elseif(NVar == MaxVars) then Status = WRF_WARN_TOO_MANY_VARIABLES write(msg,*) 'Warning TOO MANY VARIABLES in ',"wrf_io.F90",', line', 2421 call wrf_debug ( WARN , TRIM(msg)) return endif enddo do j = 1,NDim if(RODimNames(j) == NullName .or. RODimNames(j) == '') then do i=1,MaxDims if(DH%DimLengths(i) == Length_global(j)) then exit elseif(DH%DimLengths(i) == NO_DIM) then stat = NFMPI_DEF_DIM(NCID,DH%DimNames(i),i2offset(Length_global(j)),DH%DimIDs(i)) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ',"wrf_io.F90",', line', 2435 call wrf_debug ( WARN , TRIM(msg)) return endif DH%DimLengths(i) = Length_global(j) exit elseif(i == MaxDims) then Status = WRF_WARN_TOO_MANY_DIMS write(msg,*) 'Warning TOO MANY DIMENSIONS (',i,') in (',TRIM(VarName),') ',"wrf_io.F90",', line', 2443 call wrf_debug ( WARN , TRIM(msg)) return endif enddo else !look for input name and check if already defined NotFound = .true. do i=1,MaxDims if (DH%DimNames(i) == RODimNames(j)) then if (DH%DimLengths(i) == Length_global(j)) then NotFound = .false. exit else Status = WRF_WARN_DIMNAME_REDEFINED write(msg,*) 'Warning DIM ',i,', NAME ',TRIM(DH%DimNames(i)),' REDEFINED by var ', & TRIM(Var),' ',DH%DimLengths(i),Length_global(j) ,' in ', "wrf_io.F90" ,' line', 2458 call wrf_debug ( WARN , TRIM(msg)) return endif endif enddo if (NotFound) then do i=1,MaxDims if (DH%DimLengths(i) == NO_DIM) then DH%DimNames(i) = RODimNames(j) stat = NFMPI_DEF_DIM(NCID,DH%DimNames(i),i2offset(Length_global(j)),DH%DimIDs(i)) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ',"wrf_io.F90",', line', 2471 call wrf_debug ( WARN , TRIM(msg)) return endif DH%DimLengths(i) = Length_global(j) exit elseif(i == MaxDims) then Status = WRF_WARN_TOO_MANY_DIMS write(msg,*) 'Warning TOO MANY DIMENSIONS in ',"wrf_io.F90",', line', 2479 call wrf_debug ( WARN , TRIM(msg)) return endif enddo endif endif VDimIDs(j) = DH%DimIDs(i) DH%VarDimLens(j,NVar) = Length_global(j) enddo VDimIDs(NDim+1) = DH%DimUnlimID select case (FieldType) case (WRF_REAL) XType = NF_FLOAT case (WRF_DOUBLE) Xtype = NF_DOUBLE case (WRF_INTEGER) XType = NF_INT case (WRF_LOGICAL) XType = NF_INT case default Status = WRF_WARN_DATA_TYPE_NOT_FOUND write(msg,*) 'Warning DATA TYPE NOT FOUND in ',"wrf_io.F90",', line', 2501 call wrf_debug ( WARN , TRIM(msg)) return end select stat = NFMPI_DEF_VAR(NCID,VarName,XType,NDim+1,VDimIDs,VarID) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'ext_pnc_write_field: NetCDF error for ',TRIM(VarName),' in ',"wrf_io.F90",', line', 2510 call wrf_debug ( WARN , TRIM(msg)) return endif DH%VarIDs(NVar) = VarID stat = NFMPI_PUT_ATT_INT(NCID,VarID,'FieldType',NF_INT,i2offset(1),FieldType) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'ext_pnc_write_field: NetCDF error in ',"wrf_io.F90",', line', 2518 call wrf_debug ( WARN , TRIM(msg)) return endif call reorder(MemoryOrder,MemO) call uppercase(MemO,UCMemO) stat = NFMPI_PUT_ATT_TEXT(NCID,VarID,'MemoryOrder',i2offset(3),UCMemO) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'ext_pnc_write_field: NetCDF error in ',"wrf_io.F90",', line', 2527 call wrf_debug ( WARN , TRIM(msg)) return endif elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_WRITE .OR. DH%FileStatus == WRF_FILE_OPENED_FOR_UPDATE) then do NVar=1,DH%NumVars if(DH%VarNames(NVar) == VarName) then exit elseif(NVar == DH%NumVars) then Status = WRF_WARN_VAR_NF write(msg,*) 'Warning VARIABLE NOT FOUND in ',"wrf_io.F90",', line', 2537 call wrf_debug ( WARN , TRIM(msg)) return endif enddo VarID = DH%VarIDs(NVar) do j=1,NDim if(Length_global(j) /= DH%VarDimLens(j,NVar) .AND. DH%FileStatus /= WRF_FILE_OPENED_FOR_UPDATE ) then Status = WRF_WARN_WRTLEN_NE_DRRUNLEN write(msg,*) 'Warning LENGTH != DRY RUN LENGTH for |', & VarName,'| dim ',j,' in ',"wrf_io.F90",', line', 2547 call wrf_debug ( WARN , TRIM(msg)) write(msg,*) ' LENGTH ',Length_global(j),' DRY RUN LENGTH ',DH%VarDimLens(j,NVar) call wrf_debug ( WARN , TRIM(msg)) return !jm 061024 elseif(PatchStart(j) < MemoryStart(j)) then !jm elseif(DomainStart(j) < MemoryStart(j)) then elseif(PatchStart(j) < lMemoryStart(j)) then Status = WRF_WARN_DIMENSION_ERROR write(msg,*) 'Warning DIMENSION ERROR for |',VarName, & '| in ',"wrf_io.F90",', line', 2557 call wrf_debug ( WARN , TRIM(msg)) return endif enddo StoredStart = 1 call GetIndices(NDim,lMemoryStart,lMemoryEnd,l1,l2,m1,m2,n1,n2) call GetIndices(NDim,StoredStart,Length ,x1,x2,y1,y2,z1,z2) call GetIndices(NDim,StoredStart,Length_native ,p1,p2,q1,q2,r1,r2) call GetIndices(NDim,PatchStart, PatchEnd ,i1,i2,j1,j2,k1,k2) di=1 if(FieldType == WRF_DOUBLE) di=2 allocate(XField(di,x1:x2,y1:y2,z1:z2), STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_ALLOCATION_ERROR write(msg,*) 'Fatal ALLOCATION ERROR in ',"wrf_io.F90",', line', 2572 call wrf_debug ( FATAL , TRIM(msg)) return endif IF(quilting)THEN ! Don't pass in PatchStart and PatchEnd here since we want to ! take transpose of whole patch of data which has been sent to ! the IO server and passed down to us. ! JM: the field and patch dimensions must be reordered or xpose is a noop call Transpose('write',MemoryOrder,di, Field,p1,p2,q1,q2,r1,r2 & ,XField,x1,x2,y1,y2,z1,z2 & ,p1,p2,q1,q2,r1,r2 ) ELSE call Transpose('write',MemoryOrder,di, Field,l1,l2,m1,m2,n1,n2 & ,XField,x1,x2,y1,y2,z1,z2 & ,i1,i2,j1,j2,k1,k2 ) END IF StoredStart(1:NDim) = PatchStart(1:NDim) call ExtOrder(MemoryOrder,StoredStart,Status) call FieldIO('write',DataHandle,DateStr,StoredStart,Length,MemoryOrder, & FieldType,NCID,VarID,XField,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'Warning Status = ',Status,' in ',"wrf_io.F90",', line', 2605 call wrf_debug ( WARN , TRIM(msg)) return endif deallocate(XField, STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_DEALLOCATION_ERR write(msg,*) 'Fatal DEALLOCATION ERROR in ',"wrf_io.F90",', line', 2612 call wrf_debug ( FATAL , TRIM(msg)) return endif else Status = WRF_ERR_FATAL_BAD_FILE_STATUS write(msg,*) 'Fatal error BAD FILE STATUS in ',"wrf_io.F90",', line', 2618 call wrf_debug ( FATAL , TRIM(msg)) endif DH%first_operation = .FALSE. return end subroutine ext_pnc_write_field subroutine ext_pnc_read_field(DataHandle,DateStr,Var,Field,FieldType,Comm, & IOComm, DomainDesc, MemoryOrdIn, Stagger, DimNames, & DomainStart,DomainEnd,MemoryStart,MemoryEnd,PatchStart,PatchEnd,Status) use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: DateStr character*(*) ,intent(in) :: Var integer ,intent(out) :: Field(*) integer ,intent(in) :: FieldType integer ,intent(inout) :: Comm integer ,intent(inout) :: IOComm integer ,intent(in) :: DomainDesc character*(*) ,intent(in) :: MemoryOrdIn character*(*) ,intent(in) :: Stagger ! Dummy for now character*(*) , dimension (*) ,intent(in) :: DimNames integer ,dimension(*) ,intent(in) :: DomainStart, DomainEnd integer ,dimension(*) ,intent(in) :: MemoryStart, MemoryEnd integer ,dimension(*) ,intent(in) :: PatchStart, PatchEnd integer ,intent(out) :: Status character (3) :: MemoryOrder character (NF_MAX_NAME) :: dimname type(wrf_data_handle) ,pointer :: DH integer :: NDim integer :: NCID character (VarNameLen) :: VarName integer :: VarID integer ,dimension(NVarDims) :: VCount integer ,dimension(NVarDims) :: VStart integer ,dimension(NVarDims) :: Length integer ,dimension(NVarDims) :: VDimIDs integer ,dimension(NVarDims) :: MemS integer ,dimension(NVarDims) :: MemE integer ,dimension(NVarDims) :: StoredStart integer ,dimension(NVarDims) :: StoredLen integer(KIND=MPI_OFFSET_KIND) ,dimension(NVarDims) :: StoredLen_okind integer ,dimension(:,:,:,:) ,allocatable :: XField integer :: NVar integer :: j integer :: i1,i2,j1,j2,k1,k2 integer :: x1,x2,y1,y2,z1,z2 integer :: l1,l2,m1,m2,n1,n2 character (VarNameLen) :: Name integer :: XType integer :: StoredDim integer :: NAtts integer(KIND=MPI_OFFSET_KIND) :: Len integer :: stat integer :: di integer :: FType MemoryOrder = trim(adjustl(MemoryOrdIn)) call GetDim(MemoryOrder,NDim,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'Warning BAD MEMORY ORDER |',TRIM(MemoryOrder),'| for |', & TRIM(Var),'| in ext_pnc_read_field ',"wrf_io.F90",', line', 2683 call wrf_debug ( WARN , TRIM(msg)) return endif call DateCheck(DateStr,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'Warning DATE STRING ERROR |',TRIM(DateStr),'| for |',TRIM(Var), & '| in ext_pnc_read_field ',"wrf_io.F90",', line', 2690 call wrf_debug ( WARN , TRIM(msg)) return endif VarName = Var call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'Warning Status = ',Status,' in ext_pnc_read_field ',"wrf_io.F90",', line', 2697 call wrf_debug ( WARN , TRIM(msg)) return endif if(DH%FileStatus == WRF_FILE_NOT_OPENED) then Status = WRF_WARN_FILE_NOT_OPENED write(msg,*) 'Warning FILE NOT OPENED in ',"wrf_io.F90",', line', 2703 call wrf_debug ( WARN , TRIM(msg)) elseif(DH%FileStatus == WRF_FILE_OPENED_NOT_COMMITTED) then ! jm it is okay to have a dry run read. means read is called between ofrb and ofrc. Just return. ! Status = WRF_WARN_DRYRUN_READ ! write(msg,*) 'Warning DRYRUN READ in ',"wrf_io.F90",', line', 2708 ! call wrf_debug ( WARN , TRIM(msg)) Status = WRF_NO_ERR RETURN elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_WRITE) then Status = WRF_WARN_READ_WONLY_FILE write(msg,*) 'Warning READ WRITE ONLY FILE in ',"wrf_io.F90",', line', 2714 call wrf_debug ( WARN , TRIM(msg)) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_READ .OR. DH%FileStatus == WRF_FILE_OPENED_FOR_UPDATE ) then NCID = DH%NCID Length(1:NDim) = PatchEnd(1:NDim)-PatchStart(1:NDim)+1 StoredStart(1:NDim) = PatchStart(1:NDim) call ExtOrder(MemoryOrder,Length,Status) stat = NFMPI_INQ_VARID(NCID,VarName,VarID) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ',"wrf_io.F90",', line', 2727,' Varname ',Varname call wrf_debug ( WARN , TRIM(msg)) return endif stat = NFMPI_INQ_VAR(NCID,VarID,Name,XType,StoredDim,VDimIDs,NAtts) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ',"wrf_io.F90",', line', 2734 call wrf_debug ( WARN , TRIM(msg)) return endif stat = NFMPI_GET_ATT_INT(NCID,VarID,'FieldType',FType) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ',"wrf_io.F90",', line', 2741 call wrf_debug ( WARN , TRIM(msg)) return endif ! allow coercion between double and single prec real !jm if(FieldType /= Ftype) then if( (FieldType == WRF_REAL .OR. FieldType == WRF_DOUBLE) ) then if ( .NOT. (Ftype == WRF_REAL .OR. Ftype == WRF_DOUBLE )) then Status = WRF_WARN_TYPE_MISMATCH write(msg,*) 'Warning TYPE MISMATCH in ',"wrf_io.F90",', line', 2750 call wrf_debug ( WARN , TRIM(msg)) return endif else if(FieldType /= Ftype) then Status = WRF_WARN_TYPE_MISMATCH write(msg,*) 'Warning TYPE MISMATCH in ',"wrf_io.F90",', line', 2756 call wrf_debug ( WARN , TRIM(msg)) return endif select case (FieldType) case (WRF_REAL) ! allow coercion between double and single prec real if(.NOT. (XType == NF_FLOAT .OR. XType == NF_DOUBLE) ) then Status = WRF_WARN_TYPE_MISMATCH write(msg,*) 'Warning REAL TYPE MISMATCH in ',"wrf_io.F90",', line', 2765 endif case (WRF_DOUBLE) ! allow coercion between double and single prec real if(.NOT. (XType == NF_FLOAT .OR. XType == NF_DOUBLE) ) then Status = WRF_WARN_TYPE_MISMATCH write(msg,*) 'Warning DOUBLE TYPE MISMATCH in ',"wrf_io.F90",', line', 2771 endif case (WRF_INTEGER) if(XType /= NF_INT) then Status = WRF_WARN_TYPE_MISMATCH write(msg,*) 'Warning INTEGER TYPE MISMATCH in ',"wrf_io.F90",', line', 2776 endif case (WRF_LOGICAL) if(XType /= NF_INT) then Status = WRF_WARN_TYPE_MISMATCH write(msg,*) 'Warning LOGICAL TYPE MISMATCH in ',"wrf_io.F90",', line', 2781 endif case default Status = WRF_WARN_DATA_TYPE_NOT_FOUND write(msg,*) 'Warning DATA TYPE NOT FOUND in ',"wrf_io.F90",', line', 2785 end select if(Status /= WRF_NO_ERR) then call wrf_debug ( WARN , TRIM(msg)) return endif ! NDim=0 for scalars. Handle read of old NDim=1 files. TBH: 20060502 IF ( ( NDim == 0 ) .AND. ( StoredDim == 2 ) ) THEN stat = NFMPI_INQ_DIMNAME(NCID,VDimIDs(1),dimname) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ',"wrf_io.F90",', line', 2796 call wrf_debug ( WARN , TRIM(msg)) return endif IF ( dimname(1:10) == 'ext_scalar' ) THEN NDim = 1 Length(1) = 1 ENDIF ENDIF if(StoredDim /= NDim+1) then Status = WRF_ERR_FATAL_BAD_VARIABLE_DIM write(msg,*) 'Fatal error BAD VARIABLE DIMENSION in ext_pnc_read_field ',TRIM(Var),TRIM(DateStr) call wrf_debug ( FATAL , msg) write(msg,*) ' StoredDim ', StoredDim, ' .NE. NDim+1 ', NDim+1 call wrf_debug ( FATAL , msg) return endif do j=1,NDim stat = NFMPI_INQ_DIMLEN(NCID,VDimIDs(j),StoredLen_okind(j)) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ',"wrf_io.F90",', line', 2817 call wrf_debug ( WARN , TRIM(msg)) return endif StoredLen(j) = StoredLen_okind(j) if(Length(j) > StoredLen(j)) then Status = WRF_WARN_READ_PAST_EOF write(msg,*) 'Warning READ PAST EOF in ext_pnc_read_field of ',TRIM(Var),Length(j),'>',StoredLen(j) call wrf_debug ( WARN , TRIM(msg)) return elseif(Length(j) <= 0) then Status = WRF_WARN_ZERO_LENGTH_READ write(msg,*) 'Warning ZERO LENGTH READ in ',"wrf_io.F90",', line', 2829 call wrf_debug ( WARN , TRIM(msg)) return endif enddo StoredStart = 1 call GetIndices(NDim,MemoryStart,MemoryEnd,l1,l2,m1,m2,n1,n2) call GetIndices(NDim,StoredStart,Length,x1,x2,y1,y2,z1,z2) !jm call GetIndices(NDim,DomainStart,DomainEnd,i1,i2,j1,j2,k1,k2) call GetIndices(NDim,PatchStart,PatchEnd,i1,i2,j1,j2,k1,k2) StoredStart(1:NDim) = PatchStart(1:NDim) call ExtOrder(MemoryOrder,StoredStart,Status) di=1 if(FieldType == WRF_DOUBLE) di=2 allocate(XField(di,x1:x2,y1:y2,z1:z2), STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_ALLOCATION_ERROR write(msg,*) 'Fatal ALLOCATION ERROR in ',"wrf_io.F90",', line', 2849 call wrf_debug ( FATAL , msg) return endif call FieldIO('read',DataHandle,DateStr,StoredStart,Length,MemoryOrder, & FieldType,NCID,VarID,XField,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'Warning Status = ',Status,' in ',"wrf_io.F90",', line', 2856 call wrf_debug ( WARN , TRIM(msg)) return endif call Transpose('read',MemoryOrder,di, Field,l1,l2,m1,m2,n1,n2 & ,XField,x1,x2,y1,y2,z1,z2 & ,i1,i2,j1,j2,k1,k2 ) deallocate(XField, STAT=stat) if(stat/= 0) then Status = WRF_ERR_FATAL_DEALLOCATION_ERR write(msg,*) 'Fatal DEALLOCATION ERROR in ',"wrf_io.F90",', line', 2866 call wrf_debug ( FATAL , msg) return endif else Status = WRF_ERR_FATAL_BAD_FILE_STATUS write(msg,*) 'Fatal error BAD FILE STATUS in ',"wrf_io.F90",', line', 2872 call wrf_debug ( FATAL , msg) endif DH%first_operation = .FALSE. return end subroutine ext_pnc_read_field subroutine ext_pnc_inquire_opened( DataHandle, FileName , FileStatus, Status ) use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: FileName integer ,intent(out) :: FileStatus integer ,intent(out) :: Status type(wrf_data_handle) ,pointer :: DH call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then FileStatus = WRF_FILE_NOT_OPENED return endif if(FileName /= DH%FileName) then FileStatus = WRF_FILE_NOT_OPENED else FileStatus = DH%FileStatus endif Status = WRF_NO_ERR return end subroutine ext_pnc_inquire_opened subroutine ext_pnc_inquire_filename( Datahandle, FileName, FileStatus, Status ) use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' integer ,intent(in) :: DataHandle character*(*) ,intent(out) :: FileName integer ,intent(out) :: FileStatus integer ,intent(out) :: Status type(wrf_data_handle) ,pointer :: DH FileStatus = WRF_FILE_NOT_OPENED call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'Warning Status = ',Status,' in ',"wrf_io.F90",', line', 2917 call wrf_debug ( WARN , TRIM(msg)) return endif FileName = DH%FileName FileStatus = DH%FileStatus Status = WRF_NO_ERR return end subroutine ext_pnc_inquire_filename subroutine ext_pnc_set_time(DataHandle, DateStr, Status) use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: DateStr integer ,intent(out) :: Status type(wrf_data_handle) ,pointer :: DH integer :: i call DateCheck(DateStr,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'Warning DATE STRING ERROR in ',"wrf_io.F90",', line', 2940 call wrf_debug ( WARN , TRIM(msg)) return endif call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'Warning Status = ',Status,' in ',"wrf_io.F90",', line', 2946 call wrf_debug ( WARN , TRIM(msg)) return endif if(DH%FileStatus == WRF_FILE_NOT_OPENED) then Status = WRF_WARN_FILE_NOT_OPENED write(msg,*) 'Warning FILE NOT OPENED in ',"wrf_io.F90",', line', 2952 call wrf_debug ( WARN , TRIM(msg)) elseif(DH%FileStatus == WRF_FILE_OPENED_NOT_COMMITTED) then Status = WRF_WARN_FILE_NOT_COMMITTED write(msg,*) 'Warning FILE NOT COMMITTED in ',"wrf_io.F90",', line', 2956 call wrf_debug ( WARN , TRIM(msg)) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_WRITE) then Status = WRF_WARN_READ_WONLY_FILE write(msg,*) 'Warning READ WRITE ONLY FILE in ',"wrf_io.F90",', line', 2960 call wrf_debug ( WARN , TRIM(msg)) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_READ) then do i=1,MaxTimes if(DH%Times(i)==DateStr) then DH%CurrentTime = i exit endif if(i==MaxTimes) then Status = WRF_WARN_TIME_NF return endif enddo DH%CurrentVariable = 0 Status = WRF_NO_ERR else Status = WRF_ERR_FATAL_BAD_FILE_STATUS write(msg,*) 'Fatal error BAD FILE STATUS in ',"wrf_io.F90",', line', 2977 call wrf_debug ( FATAL , msg) endif return end subroutine ext_pnc_set_time subroutine ext_pnc_get_next_time(DataHandle, DateStr, Status) use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' integer ,intent(in) :: DataHandle character*(*) ,intent(out) :: DateStr integer ,intent(out) :: Status type(wrf_data_handle) ,pointer :: DH call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'Warning Status = ',Status,' in ',"wrf_io.F90",', line', 2995 call wrf_debug ( WARN , TRIM(msg)) return endif if(DH%FileStatus == WRF_FILE_NOT_OPENED) then Status = WRF_WARN_FILE_NOT_OPENED write(msg,*) 'Warning FILE NOT OPENED in ',"wrf_io.F90",', line', 3001 call wrf_debug ( WARN , TRIM(msg)) elseif(DH%FileStatus == WRF_FILE_OPENED_NOT_COMMITTED) then Status = WRF_WARN_DRYRUN_READ write(msg,*) 'Warning DRYRUN READ in ',"wrf_io.F90",', line', 3005 call wrf_debug ( WARN , TRIM(msg)) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_WRITE) then Status = WRF_WARN_READ_WONLY_FILE write(msg,*) 'Warning READ WRITE ONLY FILE in ',"wrf_io.F90",', line', 3009 call wrf_debug ( WARN , TRIM(msg)) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_READ .OR. DH%FileStatus == WRF_FILE_OPENED_FOR_UPDATE ) then if(DH%CurrentTime >= DH%NumberTimes) then write(msg,*) 'Warning ext_pnc_get_next_time: DH%CurrentTime >= DH%NumberTimes ',DH%CurrentTime,DH%NumberTimes call wrf_debug ( WARN , TRIM(msg)) Status = WRF_WARN_TIME_EOF return endif DH%CurrentTime = DH%CurrentTime +1 DateStr = DH%Times(DH%CurrentTime) DH%CurrentVariable = 0 Status = WRF_NO_ERR else Status = WRF_ERR_FATAL_BAD_FILE_STATUS write(msg,*) 'Fatal error BAD FILE STATUS in ',"wrf_io.F90",', line', 3024 call wrf_debug ( FATAL , msg) endif return end subroutine ext_pnc_get_next_time subroutine ext_pnc_get_previous_time(DataHandle, DateStr, Status) use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' integer ,intent(in) :: DataHandle character*(*) ,intent(out) :: DateStr integer ,intent(out) :: Status type(wrf_data_handle) ,pointer :: DH call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'Warning Status = ',Status,' in ',"wrf_io.F90",', line', 3042 call wrf_debug ( WARN , TRIM(msg)) return endif if(DH%FileStatus == WRF_FILE_NOT_OPENED) then Status = WRF_WARN_FILE_NOT_OPENED write(msg,*) 'Warning FILE NOT OPENED in ',"wrf_io.F90",', line', 3048 call wrf_debug ( WARN , TRIM(msg)) elseif(DH%FileStatus == WRF_FILE_OPENED_NOT_COMMITTED) then Status = WRF_WARN_DRYRUN_READ write(msg,*) 'Warning DRYRUN READ in ',"wrf_io.F90",', line', 3052 call wrf_debug ( WARN , TRIM(msg)) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_WRITE) then Status = WRF_WARN_READ_WONLY_FILE write(msg,*) 'Warning READ WRITE ONLY FILE in ',"wrf_io.F90",', line', 3056 call wrf_debug ( WARN , TRIM(msg)) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_READ) then if(DH%CurrentTime.GT.0) then DH%CurrentTime = DH%CurrentTime -1 endif DateStr = DH%Times(DH%CurrentTime) DH%CurrentVariable = 0 Status = WRF_NO_ERR else Status = WRF_ERR_FATAL_BAD_FILE_STATUS write(msg,*) 'Fatal error BAD FILE STATUS in ',"wrf_io.F90",', line', 3067 call wrf_debug ( FATAL , msg) endif return end subroutine ext_pnc_get_previous_time subroutine ext_pnc_get_next_var(DataHandle, VarName, Status) use wrf_data_pnc use ext_pnc_support_routines implicit none include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all integer ,intent(in) :: DataHandle character*(*) ,intent(out) :: VarName integer ,intent(out) :: Status type(wrf_data_handle) ,pointer :: DH integer :: stat character (80) :: Name call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'Warning Status = ',Status,' in ',"wrf_io.F90",', line', 3088 call wrf_debug ( WARN , TRIM(msg)) return endif if(DH%FileStatus == WRF_FILE_NOT_OPENED) then Status = WRF_WARN_FILE_NOT_OPENED write(msg,*) 'Warning FILE NOT OPENED in ',"wrf_io.F90",', line', 3094 call wrf_debug ( WARN , TRIM(msg)) elseif(DH%FileStatus == WRF_FILE_OPENED_NOT_COMMITTED) then Status = WRF_WARN_DRYRUN_READ write(msg,*) 'Warning DRYRUN READ in ',"wrf_io.F90",', line', 3098 call wrf_debug ( WARN , TRIM(msg)) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_WRITE) then Status = WRF_WARN_READ_WONLY_FILE write(msg,*) 'Warning READ WRITE ONLY FILE in ',"wrf_io.F90",', line', 3102 call wrf_debug ( WARN , TRIM(msg)) elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_READ .OR. DH%FileStatus == WRF_FILE_OPENED_FOR_UPDATE) then DH%CurrentVariable = DH%CurrentVariable +1 if(DH%CurrentVariable > DH%NumVars) then Status = WRF_WARN_VAR_EOF return endif VarName = DH%VarNames(DH%CurrentVariable) Status = WRF_NO_ERR else Status = WRF_ERR_FATAL_BAD_FILE_STATUS write(msg,*) 'Fatal error BAD FILE STATUS in ',"wrf_io.F90",', line', 3115 call wrf_debug ( FATAL , msg) endif return end subroutine ext_pnc_get_next_var subroutine ext_pnc_end_of_frame(DataHandle, Status) use wrf_data_pnc use ext_pnc_support_routines implicit none ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all include 'wrf_status_codes.h' integer ,intent(in) :: DataHandle integer ,intent(out) :: Status type(wrf_data_handle) ,pointer :: DH call GetDH(DataHandle,DH,Status) return end subroutine ext_pnc_end_of_frame ! NOTE: For scalar variables NDim is set to zero and DomainStart and ! NOTE: DomainEnd are left unmodified. subroutine ext_pnc_get_var_info(DataHandle,Name,NDim,MemoryOrder,Stagger,DomainStart,DomainEnd,WrfType,Status) use wrf_data_pnc use ext_pnc_support_routines implicit none ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all include 'wrf_status_codes.h' integer ,intent(in) :: DataHandle character*(*) ,intent(in) :: Name integer ,intent(out) :: NDim character*(*) ,intent(out) :: MemoryOrder character*(*) :: Stagger ! Dummy for now integer ,dimension(*) ,intent(out) :: DomainStart, DomainEnd integer ,intent(out) :: WrfType integer ,intent(out) :: Status type(wrf_data_handle) ,pointer :: DH integer :: VarID integer ,dimension(NVarDims) :: VDimIDs integer :: j integer :: stat integer :: XType call GetDH(DataHandle,DH,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'Warning Status = ',Status,' in ',"wrf_io.F90",', line', 3160 call wrf_debug ( WARN , TRIM(msg)) return endif if(DH%FileStatus == WRF_FILE_NOT_OPENED) then Status = WRF_WARN_FILE_NOT_OPENED write(msg,*) 'Warning FILE NOT OPENED in ',"wrf_io.F90",', line', 3166 call wrf_debug ( WARN , TRIM(msg)) return elseif(DH%FileStatus == WRF_FILE_OPENED_NOT_COMMITTED) then Status = WRF_WARN_DRYRUN_READ write(msg,*) 'Warning DRYRUN READ in ',"wrf_io.F90",', line', 3171 call wrf_debug ( WARN , TRIM(msg)) return elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_WRITE) then Status = WRF_WARN_READ_WONLY_FILE write(msg,*) 'Warning READ WRITE ONLY FILE in ',"wrf_io.F90",', line', 3176 call wrf_debug ( WARN , TRIM(msg)) return elseif(DH%FileStatus == WRF_FILE_OPENED_FOR_READ .OR. DH%FileStatus == WRF_FILE_OPENED_FOR_UPDATE) then stat = NFMPI_INQ_VARID(DH%NCID,Name,VarID) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ',"wrf_io.F90",', line', 3183 call wrf_debug ( WARN , TRIM(msg)) return endif stat = NFMPI_INQ_VARTYPE(DH%NCID,VarID,XType) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ',"wrf_io.F90",', line', 3190 call wrf_debug ( WARN , TRIM(msg)) return endif stat = NFMPI_GET_ATT_INT(DH%NCID,VarID,'FieldType',WrfType) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ',"wrf_io.F90",', line', 3197 call wrf_debug ( WARN , TRIM(msg)) return endif select case (XType) case (NF_BYTE) Status = WRF_WARN_BAD_DATA_TYPE write(msg,*) 'Warning BYTE IS BAD DATA TYPE in ',"wrf_io.F90",', line', 3204 call wrf_debug ( WARN , TRIM(msg)) return case (NF_CHAR) Status = WRF_WARN_BAD_DATA_TYPE write(msg,*) 'Warning CHAR IS BAD DATA TYPE in ',"wrf_io.F90",', line', 3209 call wrf_debug ( WARN , TRIM(msg)) return case (NF_SHORT) Status = WRF_WARN_BAD_DATA_TYPE write(msg,*) 'Warning SHORT IS BAD DATA TYPE in ',"wrf_io.F90",', line', 3214 call wrf_debug ( WARN , TRIM(msg)) return case (NF_INT) if(WrfType /= WRF_INTEGER .and. WrfType /= WRF_LOGICAL) then Status = WRF_WARN_BAD_DATA_TYPE write(msg,*) 'Warning BAD DATA TYPE in ',"wrf_io.F90",', line', 3220 call wrf_debug ( WARN , TRIM(msg)) return endif case (NF_FLOAT) if(WrfType /= WRF_REAL) then Status = WRF_WARN_BAD_DATA_TYPE write(msg,*) 'Warning BAD DATA TYPE in ',"wrf_io.F90",', line', 3227 call wrf_debug ( WARN , TRIM(msg)) return endif case (NF_DOUBLE) if(WrfType /= WRF_DOUBLE) then Status = WRF_WARN_BAD_DATA_TYPE write(msg,*) 'Warning BAD DATA TYPE in ',"wrf_io.F90",', line', 3234 call wrf_debug ( WARN , TRIM(msg)) return endif case default Status = WRF_WARN_DATA_TYPE_NOT_FOUND write(msg,*) 'Warning DATA TYPE NOT FOUND in ',"wrf_io.F90",', line', 3240 call wrf_debug ( WARN , TRIM(msg)) return end select stat = NFMPI_GET_ATT_TEXT(DH%NCID,VarID,'MemoryOrder',MemoryOrder) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ',"wrf_io.F90",', line', 3248 call wrf_debug ( WARN , TRIM(msg)) return endif call GetDim(MemoryOrder,NDim,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'Warning BAD MEMORY ORDER ',TRIM(MemoryOrder),' in ',"wrf_io.F90",', line', 3254 call wrf_debug ( WARN , TRIM(msg)) return endif stat = NFMPI_INQ_VARDIMID(DH%NCID,VarID,VDimIDs) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ',"wrf_io.F90",', line', 3261 call wrf_debug ( WARN , TRIM(msg)) return endif do j = 1, NDim DomainStart(j) = 1 stat = NFMPI_INQ_DIMLEN(DH%NCID,VDimIDs(j),DomainEnd(j)) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ',"wrf_io.F90",', line', 3270 call wrf_debug ( WARN , TRIM(msg)) return endif enddo else Status = WRF_ERR_FATAL_BAD_FILE_STATUS write(msg,*) 'Fatal error BAD FILE STATUS in ',"wrf_io.F90",', line', 3277 call wrf_debug ( FATAL , msg) endif return end subroutine ext_pnc_get_var_info subroutine ext_pnc_warning_str( Code, ReturnString, Status) use wrf_data_pnc use ext_pnc_support_routines implicit none ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all include 'wrf_status_codes.h' integer , intent(in) ::Code character *(*), intent(out) :: ReturnString integer, intent(out) ::Status SELECT CASE (Code) CASE (0) ReturnString='No error' Status=WRF_NO_ERR return CASE (-1) ReturnString= 'File not found (or file is incomplete)' Status=WRF_NO_ERR return CASE (-2) ReturnString='Metadata not found' Status=WRF_NO_ERR return CASE (-3) ReturnString= 'Timestamp not found' Status=WRF_NO_ERR return CASE (-4) ReturnString= 'No more timestamps' Status=WRF_NO_ERR return CASE (-5) ReturnString= 'Variable not found' Status=WRF_NO_ERR return CASE (-6) ReturnString= 'No more variables for the current time' Status=WRF_NO_ERR return CASE (-7) ReturnString= 'Too many open files' Status=WRF_NO_ERR return CASE (-8) ReturnString= 'Data type mismatch' Status=WRF_NO_ERR return CASE (-9) ReturnString= 'Attempt to write read-only file' Status=WRF_NO_ERR return CASE (-10) ReturnString= 'Attempt to read write-only file' Status=WRF_NO_ERR return CASE (-11) ReturnString= 'Attempt to access unopened file' Status=WRF_NO_ERR return CASE (-12) ReturnString= 'Attempt to do 2 trainings for 1 variable' Status=WRF_NO_ERR return CASE (-13) ReturnString= 'Attempt to read past EOF' Status=WRF_NO_ERR return CASE (-14) ReturnString= 'Bad data handle' Status=WRF_NO_ERR return CASE (-15) ReturnString= 'Write length not equal to training length' Status=WRF_NO_ERR return CASE (-16) ReturnString= 'More dimensions requested than training' Status=WRF_NO_ERR return CASE (-17) ReturnString= 'Attempt to read more data than exists' Status=WRF_NO_ERR return CASE (-18) ReturnString= 'Input dimensions inconsistent' Status=WRF_NO_ERR return CASE (-19) ReturnString= 'Input MemoryOrder not recognized' Status=WRF_NO_ERR return CASE (-20) ReturnString= 'A dimension name with 2 different lengths' Status=WRF_NO_ERR return CASE (-21) ReturnString= 'String longer than provided storage' Status=WRF_NO_ERR return CASE (-22) ReturnString= 'Function not supportable' Status=WRF_NO_ERR return CASE (-23) ReturnString= 'Package implements this routine as NOOP' Status=WRF_NO_ERR return !netcdf-specific warning messages CASE (-1007) ReturnString= 'Bad data type' Status=WRF_NO_ERR return CASE (-1008) ReturnString= 'File not committed' Status=WRF_NO_ERR return CASE (-1009) ReturnString= 'File is opened for reading' Status=WRF_NO_ERR return CASE (-1011) ReturnString= 'Attempt to write metadata after open commit' Status=WRF_NO_ERR return CASE (-1010) ReturnString= 'I/O not initialized' Status=WRF_NO_ERR return CASE (-1012) ReturnString= 'Too many variables requested' Status=WRF_NO_ERR return CASE (-1013) ReturnString= 'Attempt to close file during a dry run' Status=WRF_NO_ERR return CASE (-1014) ReturnString= 'Date string not 19 characters in length' Status=WRF_NO_ERR return CASE (-1015) ReturnString= 'Attempt to read zero length words' Status=WRF_NO_ERR return CASE (-1016) ReturnString= 'Data type not found' Status=WRF_NO_ERR return CASE (-1017) ReturnString= 'Badly formatted date string' Status=WRF_NO_ERR return CASE (-1018) ReturnString= 'Attempt at read during a dry run' Status=WRF_NO_ERR return CASE (-1019) ReturnString= 'Attempt to get zero words' Status=WRF_NO_ERR return CASE (-1020) ReturnString= 'Attempt to put zero length words' Status=WRF_NO_ERR return CASE (-1021) ReturnString= 'NetCDF error' Status=WRF_NO_ERR return CASE (-1022) ReturnString= 'Requested length <= 1' Status=WRF_NO_ERR return CASE (-1023) ReturnString= 'More data available than requested' Status=WRF_NO_ERR return CASE (-1024) ReturnString= 'New date less than previous date' Status=WRF_NO_ERR return CASE DEFAULT ReturnString= 'This warning code is not supported or handled directly by WRF and NetCDF. & & Might be an erroneous number, or specific to an i/o package other than NetCDF; you may need & & to be calling a package-specific routine to return a message for this warning code.' Status=WRF_NO_ERR END SELECT return end subroutine ext_pnc_warning_str !returns message string for all WRF and netCDF warning/error status codes !Other i/o packages must provide their own routines to return their own status messages subroutine ext_pnc_error_str( Code, ReturnString, Status) use wrf_data_pnc use ext_pnc_support_routines implicit none ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all include 'wrf_status_codes.h' integer , intent(in) ::Code character *(*), intent(out) :: ReturnString integer, intent(out) ::Status SELECT CASE (Code) CASE (-100) ReturnString= 'Allocation Error' Status=WRF_NO_ERR return CASE (-101) ReturnString= 'Deallocation Error' Status=WRF_NO_ERR return CASE (-102) ReturnString= 'Bad File Status' Status=WRF_NO_ERR return CASE (-1004) ReturnString= 'Variable on disk is not 3D' Status=WRF_NO_ERR return CASE (-1005) ReturnString= 'Metadata on disk is not 1D' Status=WRF_NO_ERR return CASE (-1006) ReturnString= 'Time dimension too small' Status=WRF_NO_ERR return CASE DEFAULT ReturnString= 'This error code is not supported or handled directly by WRF and NetCDF. & & Might be an erroneous number, or specific to an i/o package other than NetCDF; you may need & & to be calling a package-specific routine to return a message for this error code.' Status=WRF_NO_ERR END SELECT return end subroutine ext_pnc_error_str !ARPaddition... subroutine ext_pnc_end_independent_mode(DataHandle, Status) use wrf_data_pnc use ext_pnc_support_routines include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all integer ,intent(in) :: DataHandle integer ,intent(out) :: Status type(wrf_data_handle) ,pointer :: DH integer :: stat DH => WrfDataHandles(DataHandle) DH%Collective = .TRUE. stat = NFMPI_END_INDEP_DATA(DH%NCID) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ',"wrf_io.F90",', line', 3543 call wrf_debug ( WARN , TRIM(msg)) endif return end subroutine ext_pnc_end_independent_mode subroutine ext_pnc_start_independent_mode(DataHandle, Status) use wrf_data_pnc use ext_pnc_support_routines include 'wrf_status_codes.h' ! ! Copyright (C) 2003, Northwestern University and Argonne National Laboratory ! See COPYRIGHT notice in top-level directory. ! ! src/binding/f77/pnetcdf.inc. Generated from pnetcdf.inc.in by configure. ! ! pnetcdf fortran defines ! ! ! PnetCDF library version numbers ! integer PNETCDF_VERSION_MAJOR integer PNETCDF_VERSION_MINOR integer PNETCDF_VERSION_SUB parameter (PNETCDF_VERSION_MAJOR = 1) parameter (PNETCDF_VERSION_MINOR = 12) parameter (PNETCDF_VERSION_SUB = 2) ! ! list of PnetCDF options enabled/disabled at configure time ! integer PNETCDF_ERANGE_FILL integer PNETCDF_SUBFILING integer PNETCDF_RELAX_COORD_BOUND integer PNETCDF_DEBUG_MODE integer PNETCDF_LARGE_SINGLE_REQ integer PNETCDF_NULL_BYTE_HEADER_PADDING integer PNETCDF_BYTE_SWAP_IN_PLACE integer PNETCDF_BURST_BUFFERING integer PNETCDF_THREAD_SAFE integer PNETCDF_DRIVER_NETCDF4 parameter (PNETCDF_ERANGE_FILL = 1) parameter (PNETCDF_SUBFILING = 0) parameter (PNETCDF_RELAX_COORD_BOUND = 1) parameter (PNETCDF_DEBUG_MODE = 0) parameter (PNETCDF_LARGE_SINGLE_REQ = 0) parameter (PNETCDF_NULL_BYTE_HEADER_PADDING = 0) parameter (PNETCDF_BYTE_SWAP_IN_PLACE = -1) ! -1 means auto parameter (PNETCDF_BURST_BUFFERING = 0) parameter (PNETCDF_THREAD_SAFE = 0) parameter (PNETCDF_DRIVER_NETCDF4 = 0) ! ! external netcdf data types: (must conform with netCDF release) ! integer nf_byte integer nf_int1 integer nf_char integer nf_short integer nf_int2 integer nf_int integer nf_int4 integer nf_float integer nf_real integer nf_real4 integer nf_double integer nf_real8 integer nf_ubyte integer nf_ushort integer nf_uint integer nf_int64 integer nf_uint64 parameter (nf_byte = 1) parameter (nf_int1 = nf_byte) parameter (nf_char = 2) parameter (nf_short = 3) parameter (nf_int2 = nf_short) parameter (nf_int = 4) parameter (nf_int4 = nf_int) parameter (nf_float = 5) parameter (nf_real = nf_float) parameter (nf_real4 = nf_float) parameter (nf_double = 6) parameter (nf_real8 = nf_double) parameter (nf_ubyte = 7) parameter (nf_ushort = 8) parameter (nf_uint = 9) parameter (nf_int64 = 10) parameter (nf_uint64 = 11) ! ! default fill values: ! integer nf_fill_byte integer nf_fill_int1 integer nf_fill_char integer nf_fill_short integer nf_fill_int2 integer nf_fill_int real nf_fill_float real nf_fill_real real nf_fill_real4 doubleprecision nf_fill_double doubleprecision nf_fill_real8 integer nf_fill_ubyte integer nf_fill_ushort integer*8 nf_fill_uint integer*8 nf_fill_int64 ! integer*8 nf_fill_uint64 ! no unsigned int*8 in Fortran doubleprecision nf_fill_uint64 parameter (nf_fill_byte = -127) parameter (nf_fill_int1 = nf_fill_byte) parameter (nf_fill_char = 0) parameter (nf_fill_short = -32767) parameter (nf_fill_int2 = nf_fill_short) parameter (nf_fill_int = -2147483647) parameter (nf_fill_float = 9.9692099683868690e+36) parameter (nf_fill_real = nf_fill_float) parameter (nf_fill_real4 = nf_fill_float) parameter (nf_fill_double = 9.9692099683868690e+36) parameter (nf_fill_real8 = nf_fill_double) parameter (nf_fill_ubyte = 255) parameter (nf_fill_ushort = 65535) parameter (nf_fill_uint = 4294967295_8) parameter (nf_fill_int64 = -9223372036854775806_8) ! parameter (nf_fill_uint64 = 18446744073709551614_8) ! currently not supported parameter (nf_fill_uint64 = 1.8446744073709551614e+19) ! ! mode flags for opening and creating a netcdf dataset: ! integer nf_nowrite integer nf_write integer nf_clobber integer nf_noclobber integer nf_lock integer nf_share parameter (nf_nowrite = 0) parameter (nf_write = 1) parameter (nf_clobber = 0) parameter (nf_noclobber = 4) parameter (nf_lock = 1024) parameter (nf_share = 2048) integer nf_32bit integer nf_classic_model integer nf_cdf2 integer nf_64bit_offset integer nf_cdf5 integer nf_64bit_data integer nf_netcdf4 integer nf_bp parameter (nf_32bit = 16777216) parameter (nf_classic_model = 256) parameter (nf_cdf2 = 512) parameter (nf_64bit_offset = nf_cdf2) parameter (nf_cdf5 = 32) parameter (nf_64bit_data = nf_cdf5) parameter (nf_netcdf4 = 4096) parameter (nf_bp = 65536) integer nf_mpiio integer nf_pnetcdf parameter (nf_mpiio = 8192) parameter (nf_pnetcdf = nf_mpiio) integer nf_format_classic integer nf_format_cdf2 integer nf_format_64bit integer nf_format_64bit_offset integer nf_format_cdf5 integer nf_format_64bit_data integer nf_format_netcdf4 integer nf_format_netcdf4_classic integer nf_format_bp integer nf_format_unknown parameter (nf_format_classic = 1) parameter (nf_format_cdf2 = 2) parameter (nf_format_64bit = nf_format_cdf2) parameter (nf_format_64bit_offset = nf_format_cdf2) parameter (nf_format_cdf5 = 5) parameter (nf_format_64bit_data = nf_format_cdf5) parameter (nf_format_netcdf4 = 3) parameter (nf_format_netcdf4_classic = 4) parameter (nf_format_bp = 6) parameter (nf_format_unknown = -1) integer nf_fill integer nf_nofill parameter (nf_fill = 0) parameter (nf_nofill = 256) integer nf_sizehint_default integer nf_align_chunk parameter (nf_sizehint_default = 0) parameter (nf_align_chunk = -1) ! ! size argument for defining an unlimited dimension: ! integer nf_unlimited parameter (nf_unlimited = 0) integer*8 nfmpi_unlimited parameter (nfmpi_unlimited = 0) ! ! global attribute id: ! integer nf_global parameter (nf_global = 0) ! ! implementation limits: ! integer nf_max_name integer nf_max_nfiles integer nf_max_dims integer nf_max_attrs integer nf_max_vars integer nf_max_var_dims parameter (nf_max_name = 256) parameter (nf_max_nfiles = 1024) parameter (nf_max_dims = 2147483647) parameter (nf_max_attrs = 2147483647) parameter (nf_max_vars = 2147483647) parameter (nf_max_var_dims = nf_max_dims) ! ! error codes: (conform with netCDF release) ! integer NF_NOERR integer NF2_ERR integer NF_EBADID integer NF_ENFILE integer NF_EEXIST integer NF_EINVAL integer NF_EPERM integer NF_ENOTINDEFINE integer NF_EINDEFINE integer NF_EINVALCOORDS integer NF_EMAXDIMS integer NF_ENAMEINUSE integer NF_ENOTATT integer NF_EMAXATTS integer NF_EBADTYPE integer NF_EBADDIM integer NF_EUNLIMPOS integer NF_EMAXVARS integer NF_ENOTVAR integer NF_EGLOBAL integer NF_ENOTNC integer NF_ESTS integer NF_EMAXNAME integer NF_EUNLIMIT integer NF_ENORECVARS integer NF_ECHAR integer NF_EEDGE integer NF_ESTRIDE integer NF_EBADNAME integer NF_ERANGE integer NF_ENOMEM integer NF_EVARSIZE integer NF_EDIMSIZE integer NF_ETRUNC integer NF_EAXISTYPE integer NF_EDAP integer NF_ECURL integer NF_EIO integer NF_ENODATA integer NF_EDAPSVC integer NF_EDAS integer NF_EDDS integer NF_EDMR integer NF_EDATADDS integer NF_EDATADAP integer NF_EDAPURL integer NF_EDAPCONSTRAINT integer NF_ETRANSLATION integer NF_EACCESS integer NF_EAUTH integer NF_ENOTFOUND integer NF_ECANTREMOVE integer NF_EINTERNAL integer NF_EPNETCDF PARAMETER (NF_NOERR = 0) ! No Error PARAMETER (NF2_ERR = -1) ! Returned for all errors in the v2 API PARAMETER (NF_EBADID = -33) ! Not a netcdf id PARAMETER (NF_ENFILE = -34) ! Too many netcdfs open PARAMETER (NF_EEXIST = -35) ! netcdf file exists and NF_NOCLOBBER PARAMETER (NF_EINVAL = -36) ! Invalid Argument PARAMETER (NF_EPERM = -37) ! Write to read only PARAMETER (NF_ENOTINDEFINE = -38) ! Operation not allowed in data mode PARAMETER (NF_EINDEFINE = -39) ! Operation not allowed in define mode PARAMETER (NF_EINVALCOORDS = -40) ! Index exceeds dimension bound PARAMETER (NF_EMAXDIMS = -41) ! NF_MAX_DIMS exceeded PARAMETER (NF_ENAMEINUSE = -42) ! String match to name in use PARAMETER (NF_ENOTATT = -43) ! Attribute not found PARAMETER (NF_EMAXATTS = -44) ! NF_MAX_ATTRS exceeded PARAMETER (NF_EBADTYPE = -45) ! Not a netcdf data type PARAMETER (NF_EBADDIM = -46) ! Invalid dimension id or name PARAMETER (NF_EUNLIMPOS = -47) ! NFMPI_UNLIMITED in the wrong index PARAMETER (NF_EMAXVARS = -48) ! NF_MAX_VARS exceeded PARAMETER (NF_ENOTVAR = -49) ! Variable not found PARAMETER (NF_EGLOBAL = -50) ! Action prohibited on NF_GLOBAL varid PARAMETER (NF_ENOTNC = -51) ! Not a netcdf file (file format violates CDF specification) PARAMETER (NF_ESTS = -52) ! In Fortran, string too short PARAMETER (NF_EMAXNAME = -53) ! NF_MAX_NAME exceeded PARAMETER (NF_EUNLIMIT = -54) ! NFMPI_UNLIMITED size already in use PARAMETER (NF_ENORECVARS = -55) ! nc_rec op when there are no record vars PARAMETER (NF_ECHAR = -56) ! Attempt to convert between text & numbers PARAMETER (NF_EEDGE = -57) ! Edge+start exceeds dimension bound PARAMETER (NF_ESTRIDE = -58) ! Illegal stride PARAMETER (NF_EBADNAME = -59) ! Attribute or variable name contains illegal characters PARAMETER (NF_ERANGE = -60) ! Math result not representable PARAMETER (NF_ENOMEM = -61) ! Memory allocation (malloc) failure PARAMETER (NF_EVARSIZE = -62) ! One or more variable sizes violate format constraints PARAMETER (NF_EDIMSIZE = -63) ! Invalid dimension size PARAMETER (NF_ETRUNC = -64) ! File likely truncated or possibly corrupted PARAMETER (NF_EAXISTYPE = -65) ! Unknown axis type ! Following errors are added for DAP PARAMETER (NF_EDAP = -66) ! Generic DAP error PARAMETER (NF_ECURL = -67) ! Generic libcurl error PARAMETER (NF_EIO = -68) ! Generic IO error PARAMETER (NF_ENODATA = -69) ! Attempt to access variable with no data PARAMETER (NF_EDAPSVC = -70) ! DAP server error PARAMETER (NF_EDAS = -71) ! Malformed or inaccessible DAS PARAMETER (NF_EDDS = -72) ! Malformed or inaccessible DDS PARAMETER (NF_EDMR = -72) ! Dap4 alias PARAMETER (NF_EDATADDS = -73) ! Malformed or inaccessible DATADDS PARAMETER (NF_EDATADAP = -73) ! Dap4 alias PARAMETER (NF_EDAPURL = -74) ! Malformed DAP URL PARAMETER (NF_EDAPCONSTRAINT = -75) ! Malformed DAP Constraint PARAMETER (NF_ETRANSLATION = -76) ! Untranslatable construct PARAMETER (NF_EACCESS = -77) ! Access Failure PARAMETER (NF_EAUTH = -78) ! Authorization Failure ! Misc. additional errors PARAMETER (NF_ENOTFOUND = -90) ! No such file PARAMETER (NF_ECANTREMOVE = -91) ! Can't remove file PARAMETER (NF_EINTERNAL = -92) ! NetCDF Library Internal Error PARAMETER (NF_EPNETCDF = -93) ! Error at PnetCDF layer ! ! netCDF-4 error codes (copied from netCDF release) ! integer NF_EHDFERR integer NF_ECANTREAD integer NF_ECANTWRITE integer NF_ECANTCREATE integer NF_EFILEMETA integer NF_EDIMMETA integer NF_EATTMETA integer NF_EVARMETA integer NF_ENOCOMPOUND integer NF_EATTEXISTS integer NF_ENOTNC4 integer NF_ESTRICTNC3 integer NF_ENOTNC3 integer NF_ENOPAR integer NF_EPARINIT integer NF_EBADGRPID integer NF_EBADTYPID integer NF_ETYPDEFINED integer NF_EBADFIELD integer NF_EBADCLASS integer NF_EMAPTYPE integer NF_ELATEFILL integer NF_ELATEDEF integer NF_EDIMSCALE integer NF_ENOGRP integer NF_ESTORAGE integer NF_EBADCHUNK integer NF_ENOTBUILT integer NF_EDISKLESS integer NF_ECANTEXTEND integer NF_EMPI integer NF_EFILTER integer NF_ERCFILE integer NF_ENULLPAD integer NF_EINMEMORY PARAMETER (NF_EHDFERR = -101) ! Error at 1 layer. PARAMETER (NF_ECANTREAD = -102) ! Can't read. PARAMETER (NF_ECANTWRITE = -103) ! Can't write. PARAMETER (NF_ECANTCREATE = -104) ! Can't create. PARAMETER (NF_EFILEMETA = -105) ! Problem with file metadata. PARAMETER (NF_EDIMMETA = -106) ! Problem with dimension metadata. PARAMETER (NF_EATTMETA = -107) ! Problem with attribute metadata. PARAMETER (NF_EVARMETA = -108) ! Problem with variable metadata. PARAMETER (NF_ENOCOMPOUND = -109) ! Not a compound type. PARAMETER (NF_EATTEXISTS = -110) ! Attribute already exists. PARAMETER (NF_ENOTNC4 = -111) ! Attempting netcdf-4 operation on netcdf-3 file. PARAMETER (NF_ESTRICTNC3 = -112) ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file. PARAMETER (NF_ENOTNC3 = -113) ! Attempting netcdf-3 operation on netcdf-4 file. PARAMETER (NF_ENOPAR = -114) ! Parallel operation on file opened for non-parallel access. PARAMETER (NF_EPARINIT = -115) ! Error initializing for parallel access. PARAMETER (NF_EBADGRPID = -116) ! Bad group ID. PARAMETER (NF_EBADTYPID = -117) ! Bad type ID. PARAMETER (NF_ETYPDEFINED = -118) ! Type has already been defined and may not be edited. PARAMETER (NF_EBADFIELD = -119) ! Bad field ID. PARAMETER (NF_EBADCLASS = -120) ! Bad class. PARAMETER (NF_EMAPTYPE = -121) ! Mapped access for atomic types only. PARAMETER (NF_ELATEFILL = -122) ! Attempt to define fill value when data already exists. PARAMETER (NF_ELATEDEF = -123) ! Attempt to define var properties, like deflate, after enddef. PARAMETER (NF_EDIMSCALE = -124) ! Problem with 1 dimscales. PARAMETER (NF_ENOGRP = -125) ! No group found. PARAMETER (NF_ESTORAGE = -126) ! Can't specify both contiguous and chunking. PARAMETER (NF_EBADCHUNK = -127) ! Bad chunksize. PARAMETER (NF_ENOTBUILT = -128) ! Attempt to use feature that was not turned on when netCDF was built. PARAMETER (NF_EDISKLESS = -129) ! Error in using diskless access. PARAMETER (NF_ECANTEXTEND = -130) ! Attempt to extend dataset during ind. I/O operation. PARAMETER (NF_EMPI = -131) ! MPI operation failed. PARAMETER (NF_EFILTER = -132) ! Filter operation failed. PARAMETER (NF_ERCFILE = -133) ! RC file failure PARAMETER (NF_ENULLPAD = -134) ! Header Bytes not Null-Byte padded PARAMETER (NF_EINMEMORY = -135) ! In-memory file error ! ! PnetCDF error codes start here ! integer NF_ESMALL integer NF_ENOTINDEP integer NF_EINDEP integer NF_EFILE integer NF_EREAD integer NF_EWRITE integer NF_EOFILE integer NF_EMULTITYPES integer NF_EIOMISMATCH integer NF_ENEGATIVECNT integer NF_EUNSPTETYPE integer NF_EINVAL_REQUEST integer NF_EAINT_TOO_SMALL integer NF_ENOTSUPPORT integer NF_ENULLBUF integer NF_EPREVATTACHBUF integer NF_ENULLABUF integer NF_EPENDINGBPUT integer NF_EINSUFFBUF integer NF_ENOENT integer NF_EINTOVERFLOW integer NF_ENOTENABLED integer NF_EBAD_FILE integer NF_ENO_SPACE integer NF_EQUOTA integer NF_ENULLSTART integer NF_ENULLCOUNT integer NF_EINVAL_CMODE integer NF_ETYPESIZE integer NF_ETYPE_MISMATCH integer NF_ETYPESIZE_MISMATCH integer NF_ESTRICTCDF2 integer NF_ENOTRECVAR integer NF_ENOTFILL integer NF_EINVAL_OMODE integer NF_EPENDING integer NF_EMAX_REQ integer NF_EBADLOG integer NF_EFLUSHED integer NF_EADIOS integer NF_EMULTIDEFINE integer NF_EMULTIDEFINE_OMODE, NF_ECMODE integer NF_EMULTIDEFINE_DIM_NUM, NF_EDIMS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_SIZE, NF_EDIMS_SIZE_MULTIDEFINE integer NF_EMULTIDEFINE_DIM_NAME, NF_EDIMS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NUM, NF_EVARS_NELEMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NAME, NF_EVARS_NAME_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_NDIMS, NF_EVARS_NDIMS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_DIMIDS, NF_EVARS_DIMIDS_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_TYPE, NF_EVARS_TYPE_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_LEN, NF_EVARS_LEN_MULTIDEFINE integer NF_EMULTIDEFINE_VAR_BEGIN, NF_EVARS_BEGIN_MULTIDEFINE integer NF_EMULTIDEFINE_NUMRECS, NF_ENUMRECS_MULTIDEFINE integer NF_EMULTIDEFINE_ATTR_NUM integer NF_EMULTIDEFINE_ATTR_SIZE integer NF_EMULTIDEFINE_ATTR_NAME integer NF_EMULTIDEFINE_ATTR_TYPE integer NF_EMULTIDEFINE_ATTR_LEN integer NF_EMULTIDEFINE_ATTR_VAL integer NF_EMULTIDEFINE_FNC_ARGS integer NF_EMULTIDEFINE_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_MODE integer NF_EMULTIDEFINE_VAR_FILL_VALUE integer NF_EMULTIDEFINE_CMODE ! ! PnetCDF error codes start from -201 ! PARAMETER (NF_ESMALL = -201) ! size of off_t too small for format PARAMETER (NF_ENOTINDEP = -202) ! Operation not allowed in collective data mode PARAMETER (NF_EINDEP = -203) ! Operation not allowed in independent data mode PARAMETER (NF_EFILE = -204) ! Unknown error in file operation PARAMETER (NF_EREAD = -205) ! Unknown error in reading file PARAMETER (NF_EWRITE = -206) ! Unknown error in writing to file PARAMETER (NF_EOFILE = -207) ! file open/creation failed PARAMETER (NF_EMULTITYPES = -208) ! Multiple etypes used in MPI datatype PARAMETER (NF_EIOMISMATCH = -209) ! Input/Output data amount mismatch PARAMETER (NF_ENEGATIVECNT = -210) ! Negative count is specified PARAMETER (NF_EUNSPTETYPE = -211) ! Unsupported etype in memory MPI datatype PARAMETER (NF_EINVAL_REQUEST = -212) ! invalid nonblocking request ID PARAMETER (NF_EAINT_TOO_SMALL = -213) ! MPI_Aint not large enough to hold requested value PARAMETER (NF_ENOTSUPPORT = -214) ! feature is not yet supported PARAMETER (NF_ENULLBUF = -215) ! trying to attach a NULL buffer PARAMETER (NF_EPREVATTACHBUF = -216) ! previous attached buffer is found PARAMETER (NF_ENULLABUF = -217) ! no attached buffer is found PARAMETER (NF_EPENDINGBPUT = -218) ! pending bput is found, cannot detach buffer PARAMETER (NF_EINSUFFBUF = -219) ! attached buffer is too small PARAMETER (NF_ENOENT = -220) ! File does not exist when calling nfmpi_open() PARAMETER (NF_EINTOVERFLOW = -221) ! Overflow when type cast to 4-byte integer PARAMETER (NF_ENOTENABLED = -222) ! feature is not enabled PARAMETER (NF_EBAD_FILE = -223) ! Invalid file name (e.g., path name too long) PARAMETER (NF_ENO_SPACE = -224) ! Not enough space PARAMETER (NF_EQUOTA = -225) ! Quota exceeded PARAMETER (NF_ENULLSTART = -226) ! argument start is a NULL pointer PARAMETER (NF_ENULLCOUNT = -227) ! argument count is a NULL pointer PARAMETER (NF_EINVAL_CMODE = -228) ! Invalid file create mode PARAMETER (NF_ETYPESIZE = -229) ! MPI derived data type size error (bigger than the variable size) PARAMETER (NF_ETYPE_MISMATCH = -230) ! element type of the MPI derived data type mismatches the variable type PARAMETER (NF_ETYPESIZE_MISMATCH = -231) ! file type size mismatches buffer type size PARAMETER (NF_ESTRICTCDF2 = -232) ! Attempting CDF-5 operation on CDF-2 file PARAMETER (NF_ENOTRECVAR = -233) ! Attempting operation only for record variables PARAMETER (NF_ENOTFILL = -234) ! Attempting to fill a variable when its fill mode is off PARAMETER (NF_EINVAL_OMODE = -235) ! Invalid file open mode PARAMETER (NF_EPENDING = -236) ! Pending nonblocking request is found at file close PARAMETER (NF_EMAX_REQ = -237) ! Size of I/O request exceeds INT_MAX PARAMETER (NF_EBADLOG = -238) ! Unrecognized log file format PARAMETER (NF_EFLUSHED = -239) ! Nonblocking request has already been flushed to the PFS. It is too late to cancel PARAMETER (NF_EADIOS = -240) ! ADIOS internal error ! ! PnetCDF header inconsistency errors start from -250 ! PARAMETER (NF_EMULTIDEFINE = -250) ! NC definitions inconsistent among processes PARAMETER (NF_EMULTIDEFINE_OMODE = -251) ! inconsistent file open modes PARAMETER (NF_EMULTIDEFINE_DIM_NUM = -252) ! inconsistent number of dimensions PARAMETER (NF_EMULTIDEFINE_DIM_SIZE = -253) ! inconsistent size of dimension PARAMETER (NF_EMULTIDEFINE_DIM_NAME = -254) ! inconsistent dimension names PARAMETER (NF_EMULTIDEFINE_VAR_NUM = -255) ! inconsistent number of variables PARAMETER (NF_EMULTIDEFINE_VAR_NAME = -256) ! inconsistent variable name PARAMETER (NF_EMULTIDEFINE_VAR_NDIMS = -257) ! inconsistent variable's number of dimensions PARAMETER (NF_EMULTIDEFINE_VAR_DIMIDS = -258) ! inconsistent variable's dimension IDs PARAMETER (NF_EMULTIDEFINE_VAR_TYPE = -259) ! inconsistent variable's data type PARAMETER (NF_EMULTIDEFINE_VAR_LEN = -260) ! inconsistent variable's size PARAMETER (NF_EMULTIDEFINE_NUMRECS = -261) ! inconsistent number of records PARAMETER (NF_EMULTIDEFINE_VAR_BEGIN = -262) ! inconsistent variable file begin offset (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NUM = -263) ! inconsistent number of attributes PARAMETER (NF_EMULTIDEFINE_ATTR_SIZE = -264) ! inconsistent memory space used by attribute (internal use) PARAMETER (NF_EMULTIDEFINE_ATTR_NAME = -265) ! inconsistent attribute name PARAMETER (NF_EMULTIDEFINE_ATTR_TYPE = -266) ! inconsistent attribute type PARAMETER (NF_EMULTIDEFINE_ATTR_LEN = -267) ! inconsistent attribute length PARAMETER (NF_EMULTIDEFINE_ATTR_VAL = -268) ! inconsistent attribute value PARAMETER (NF_EMULTIDEFINE_FNC_ARGS = -269) ! inconsistent function arguments used in collective API PARAMETER (NF_EMULTIDEFINE_FILL_MODE = -270) ! inconsistent dataset fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_MODE = -271) ! inconsistent variable fill mode PARAMETER (NF_EMULTIDEFINE_VAR_FILL_VALUE = -272) ! inconsistent variable fill value PARAMETER (NF_EMULTIDEFINE_CMODE = -273) ! inconsistent file create modes PARAMETER(NF_ECMODE =NF_EMULTIDEFINE_OMODE) PARAMETER(NF_EDIMS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_DIM_NUM) PARAMETER(NF_EDIMS_SIZE_MULTIDEFINE =NF_EMULTIDEFINE_DIM_SIZE) PARAMETER(NF_EDIMS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_DIM_NAME) PARAMETER(NF_EVARS_NELEMS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_NUM) PARAMETER(NF_EVARS_NAME_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NAME) PARAMETER(NF_EVARS_NDIMS_MULTIDEFINE =NF_EMULTIDEFINE_VAR_NDIMS) PARAMETER(NF_EVARS_DIMIDS_MULTIDEFINE=NF_EMULTIDEFINE_VAR_DIMIDS) PARAMETER(NF_EVARS_TYPE_MULTIDEFINE =NF_EMULTIDEFINE_VAR_TYPE) PARAMETER(NF_EVARS_LEN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_LEN) PARAMETER(NF_ENUMRECS_MULTIDEFINE =NF_EMULTIDEFINE_NUMRECS) PARAMETER(NF_EVARS_BEGIN_MULTIDEFINE =NF_EMULTIDEFINE_VAR_BEGIN) ! error handling modes: ! integer nf_fatal integer nf_verbose parameter (nf_fatal = 1) parameter (nf_verbose = 2) !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! begin netcdf 2.4 backward compatibility: ! ! ! functions in the fortran interface ! integer ncrdwr integer nccreat integer ncexcl integer ncindef integer ncnsync integer nchsync integer ncndirty integer nchdirty integer nclink integer ncnowrit integer ncwrite integer ncclob integer ncnoclob integer ncglobal integer ncfill integer ncnofill integer maxncop integer maxncdim integer maxncatt integer maxncvar integer maxncnam integer maxvdims integer ncnoerr integer ncebadid integer ncenfile integer nceexist integer nceinval integer nceperm integer ncenotin integer nceindef integer ncecoord integer ncemaxds integer ncename integer ncenoatt integer ncemaxat integer ncebadty integer ncebadd integer ncests integer nceunlim integer ncemaxvs integer ncenotvr integer nceglob integer ncenotnc integer ncfoobar integer ncsyserr integer ncfatal integer ncverbos integer ncentool ! ! netcdf data types: ! integer ncbyte integer ncchar integer ncshort integer nclong integer ncfloat integer ncdouble parameter(ncbyte = 1) parameter(ncchar = 2) parameter(ncshort = 3) parameter(nclong = 4) parameter(ncfloat = 5) parameter(ncdouble = 6) ! ! masks for the struct nc flag field; passed in as 'mode' arg to ! nccreate and ncopen. ! ! read/write, 0 => readonly parameter(ncrdwr = 1) ! in create phase, cleared by ncendef parameter(nccreat = 2) ! on create destroy existing file parameter(ncexcl = 4) ! in define mode, cleared by ncendef parameter(ncindef = 8) ! synchronise numrecs on change (x'10') parameter(ncnsync = 16) ! synchronise whole header on change (x'20') parameter(nchsync = 32) ! numrecs has changed (x'40') parameter(ncndirty = 64) ! header info has changed (x'80') parameter(nchdirty = 128) ! prefill vars on endef and increase of record, the default behavior parameter(ncfill = 0) ! do not fill vars on endef and increase of record (x'100') parameter(ncnofill = 256) ! isa link (x'8000') parameter(nclink = 32768) ! ! 'mode' arguments for nccreate and ncopen ! parameter(ncnowrit = 0) parameter(ncwrite = ncrdwr) parameter(ncclob = nf_clobber) parameter(ncnoclob = nf_noclobber) ! ! 'size' argument to ncdimdef for an unlimited dimension ! integer ncunlim parameter(ncunlim = 0) ! ! attribute id to put/get a global attribute ! parameter(ncglobal = 0) ! ! advisory maximums: ! parameter(maxncop = 32) parameter(maxncdim = 100) parameter(maxncatt = 2000) parameter(maxncvar = 2000) ! not enforced parameter(maxncnam = 128) parameter(maxvdims = maxncdim) ! ! global netcdf error status variable ! initialized in error.c ! ! no error parameter(ncnoerr = nf_noerr) ! not a netcdf id parameter(ncebadid = nf_ebadid) ! too many netcdfs open parameter(ncenfile = -31) ! nc_syserr ! netcdf file exists && ncnoclob parameter(nceexist = nf_eexist) ! invalid argument parameter(nceinval = nf_einval) ! write to read only parameter(nceperm = nf_eperm) ! operation not allowed in data mode parameter(ncenotin = nf_enotindefine) ! operation not allowed in define mode parameter(nceindef = nf_eindefine) ! coordinates out of domain parameter(ncecoord = nf_einvalcoords) ! maxncdims exceeded parameter(ncemaxds = nf_emaxdims) ! string match to name in use parameter(ncename = nf_enameinuse) ! attribute not found parameter(ncenoatt = nf_enotatt) ! maxncattrs exceeded parameter(ncemaxat = nf_emaxatts) ! not a netcdf data type parameter(ncebadty = nf_ebadtype) ! invalid dimension id parameter(ncebadd = nf_ebaddim) ! ncunlimited in the wrong index parameter(nceunlim = nf_eunlimpos) ! maxncvars exceeded parameter(ncemaxvs = nf_emaxvars) ! variable not found parameter(ncenotvr = nf_enotvar) ! action prohibited on ncglobal varid parameter(nceglob = nf_eglobal) ! not a netcdf file parameter(ncenotnc = nf_enotnc) parameter(ncests = nf_ests) parameter (ncentool = nf_emaxname) parameter(ncfoobar = 32) parameter(ncsyserr = -31) ! ! global options variable. used to determine behavior of error handler. ! initialized in lerror.c ! parameter(ncfatal = 1) parameter(ncverbos = 2) ! ! default fill values. these must be the same as in the c interface. ! integer filbyte integer filchar integer filshort integer fillong real filfloat doubleprecision fildoub parameter (filbyte = -127) parameter (filchar = 0) parameter (filshort = -32767) parameter (fillong = -2147483647) parameter (filfloat = 9.9692099683868690e+36) parameter (fildoub = 9.9692099683868690e+36) ! NULL request for non-blocking I/O APIs integer NF_REQ_NULL PARAMETER (NF_REQ_NULL = -1) ! indicate to flush all pending non-blocking requests integer NF_REQ_ALL PARAMETER (NF_REQ_ALL = -1) integer NF_GET_REQ_ALL PARAMETER (NF_GET_REQ_ALL = -2) integer NF_PUT_REQ_ALL PARAMETER (NF_PUT_REQ_ALL = -3) ! ! PnetCDF APIs ! ! ! miscellaneous routines: ! character*80 nfmpi_inq_libvers character*80 nfmpi_strerror character*80 nfmpi_strerrno external nfmpi_inq_libvers external nfmpi_strerror external nfmpi_strerrno logical nfmpi_issyserr external nfmpi_issyserr ! ! control routines: ! integer nfmpi_create integer nfmpi_open integer nfmpi_inq_format integer nfmpi_inq_file_format integer nfmpi_inq_file_info integer nfmpi_get_file_info integer nfmpi_delete integer nfmpi_enddef integer nfmpi__enddef integer nfmpi_redef integer nfmpi_set_default_format integer nfmpi_inq_default_format integer nfmpi_sync integer nfmpi_flush integer nfmpi_abort integer nfmpi_close integer nfmpi_set_fill integer nfmpi_def_var_fill integer nfmpi_inq_var_fill integer nfmpi_fill_var_rec external nfmpi_create external nfmpi_open external nfmpi_inq_format external nfmpi_inq_file_format external nfmpi_inq_file_info external nfmpi_get_file_info external nfmpi_delete external nfmpi_enddef external nfmpi__enddef external nfmpi_redef external nfmpi_set_default_format external nfmpi_inq_default_format external nfmpi_sync external nfmpi_flush external nfmpi_abort external nfmpi_close external nfmpi_set_fill external nfmpi_def_var_fill external nfmpi_inq_var_fill external nfmpi_fill_var_rec ! ! general inquiry routines: ! integer nfmpi_inq integer nfmpi_inq_ndims integer nfmpi_inq_nvars integer nfmpi_inq_num_rec_vars integer nfmpi_inq_num_fix_vars integer nfmpi_inq_natts integer nfmpi_inq_unlimdim integer nfmpi_inq_striping integer nfmpi_inq_malloc_size integer nfmpi_inq_malloc_max_size integer nfmpi_inq_malloc_list integer nfmpi_inq_files_opened integer nfmpi_inq_recsize external nfmpi_inq external nfmpi_inq_ndims external nfmpi_inq_nvars external nfmpi_inq_num_rec_vars external nfmpi_inq_num_fix_vars external nfmpi_inq_natts external nfmpi_inq_unlimdim external nfmpi_inq_striping external nfmpi_inq_malloc_size external nfmpi_inq_malloc_max_size external nfmpi_inq_malloc_list external nfmpi_inq_files_opened external nfmpi_inq_recsize ! ! dimension routines: ! integer nfmpi_def_dim integer nfmpi_inq_dimid integer nfmpi_inq_dim integer nfmpi_inq_dimname integer nfmpi_inq_dimlen integer nfmpi_rename_dim external nfmpi_def_dim external nfmpi_inq_dimid external nfmpi_inq_dim external nfmpi_inq_dimname external nfmpi_inq_dimlen external nfmpi_rename_dim ! ! general attribute routines: ! integer nfmpi_inq_att integer nfmpi_inq_attid integer nfmpi_inq_atttype integer nfmpi_inq_attlen integer nfmpi_inq_attname integer nfmpi_copy_att integer nfmpi_rename_att integer nfmpi_del_att external nfmpi_inq_att external nfmpi_inq_attid external nfmpi_inq_atttype external nfmpi_inq_attlen external nfmpi_inq_attname external nfmpi_copy_att external nfmpi_rename_att external nfmpi_del_att ! ! attribute put/get routines: ! integer nfmpi_put_att, nfmpi_get_att integer nfmpi_put_att_text, nfmpi_get_att_text integer nfmpi_put_att_int1, nfmpi_get_att_int1 integer nfmpi_put_att_int2, nfmpi_get_att_int2 integer nfmpi_put_att_int, nfmpi_get_att_int integer nfmpi_put_att_real, nfmpi_get_att_real integer nfmpi_put_att_double, nfmpi_get_att_double integer nfmpi_put_att_int8, nfmpi_get_att_int8 external nfmpi_put_att, nfmpi_get_att external nfmpi_put_att_text, nfmpi_get_att_text external nfmpi_put_att_int1, nfmpi_get_att_int1 external nfmpi_put_att_int2, nfmpi_get_att_int2 external nfmpi_put_att_int, nfmpi_get_att_int external nfmpi_put_att_real, nfmpi_get_att_real external nfmpi_put_att_double, nfmpi_get_att_double external nfmpi_put_att_int8, nfmpi_get_att_int8 ! ! independent data mode routines: ! integer nfmpi_begin_indep_data integer nfmpi_end_indep_data external nfmpi_begin_indep_data external nfmpi_end_indep_data ! ! general variable routines: ! integer nfmpi_def_var integer nfmpi_inq_var integer nfmpi_inq_varid integer nfmpi_inq_varname integer nfmpi_inq_vartype integer nfmpi_inq_varndims integer nfmpi_inq_vardimid integer nfmpi_inq_varnatts integer nfmpi_rename_var external nfmpi_def_var external nfmpi_inq_var external nfmpi_inq_varid external nfmpi_inq_varname external nfmpi_inq_vartype external nfmpi_inq_varndims external nfmpi_inq_vardimid external nfmpi_inq_varnatts external nfmpi_rename_var ! ! entire variable put/get routines: ! integer nfmpi_put_var, nfmpi_put_var_all integer nfmpi_put_var_text, nfmpi_put_var_text_all integer nfmpi_put_var_int1, nfmpi_put_var_int1_all integer nfmpi_put_var_int2, nfmpi_put_var_int2_all integer nfmpi_put_var_int, nfmpi_put_var_int_all integer nfmpi_put_var_real, nfmpi_put_var_real_all integer nfmpi_put_var_double, nfmpi_put_var_double_all integer nfmpi_put_var_int8, nfmpi_put_var_int8_all external nfmpi_put_var, nfmpi_put_var_all external nfmpi_put_var_text, nfmpi_put_var_text_all external nfmpi_put_var_int1, nfmpi_put_var_int1_all external nfmpi_put_var_int2, nfmpi_put_var_int2_all external nfmpi_put_var_int, nfmpi_put_var_int_all external nfmpi_put_var_real, nfmpi_put_var_real_all external nfmpi_put_var_double, nfmpi_put_var_double_all external nfmpi_put_var_int8, nfmpi_put_var_int8_all integer nfmpi_get_var, nfmpi_get_var_all integer nfmpi_get_var_text, nfmpi_get_var_text_all integer nfmpi_get_var_int1, nfmpi_get_var_int1_all integer nfmpi_get_var_int2, nfmpi_get_var_int2_all integer nfmpi_get_var_int, nfmpi_get_var_int_all integer nfmpi_get_var_real, nfmpi_get_var_real_all integer nfmpi_get_var_double, nfmpi_get_var_double_all integer nfmpi_get_var_int8, nfmpi_get_var_int8_all external nfmpi_get_var, nfmpi_get_var_all external nfmpi_get_var_text, nfmpi_get_var_text_all external nfmpi_get_var_int1, nfmpi_get_var_int1_all external nfmpi_get_var_int2, nfmpi_get_var_int2_all external nfmpi_get_var_int, nfmpi_get_var_int_all external nfmpi_get_var_real, nfmpi_get_var_real_all external nfmpi_get_var_double, nfmpi_get_var_double_all external nfmpi_get_var_int8, nfmpi_get_var_int8_all ! ! single element variable put/get routines: ! integer nfmpi_put_var1, nfmpi_put_var1_all integer nfmpi_put_var1_text, nfmpi_put_var1_text_all integer nfmpi_put_var1_int1, nfmpi_put_var1_int1_all integer nfmpi_put_var1_int2, nfmpi_put_var1_int2_all integer nfmpi_put_var1_int, nfmpi_put_var1_int_all integer nfmpi_put_var1_real, nfmpi_put_var1_real_all integer nfmpi_put_var1_double, nfmpi_put_var1_double_all integer nfmpi_put_var1_int8, nfmpi_put_var1_int8_all external nfmpi_put_var1, nfmpi_put_var1_all external nfmpi_put_var1_text, nfmpi_put_var1_text_all external nfmpi_put_var1_int1, nfmpi_put_var1_int1_all external nfmpi_put_var1_int2, nfmpi_put_var1_int2_all external nfmpi_put_var1_int, nfmpi_put_var1_int_all external nfmpi_put_var1_real, nfmpi_put_var1_real_all external nfmpi_put_var1_double, nfmpi_put_var1_double_all external nfmpi_put_var1_int8, nfmpi_put_var1_int8_all integer nfmpi_get_var1, nfmpi_get_var1_all integer nfmpi_get_var1_text, nfmpi_get_var1_text_all integer nfmpi_get_var1_int1, nfmpi_get_var1_int1_all integer nfmpi_get_var1_int2, nfmpi_get_var1_int2_all integer nfmpi_get_var1_int, nfmpi_get_var1_int_all integer nfmpi_get_var1_real, nfmpi_get_var1_real_all integer nfmpi_get_var1_double, nfmpi_get_var1_double_all integer nfmpi_get_var1_int8, nfmpi_get_var1_int8_all external nfmpi_get_var1, nfmpi_get_var1_all external nfmpi_get_var1_text, nfmpi_get_var1_text_all external nfmpi_get_var1_int1, nfmpi_get_var1_int1_all external nfmpi_get_var1_int2, nfmpi_get_var1_int2_all external nfmpi_get_var1_int, nfmpi_get_var1_int_all external nfmpi_get_var1_real, nfmpi_get_var1_real_all external nfmpi_get_var1_double, nfmpi_get_var1_double_all external nfmpi_get_var1_int8, nfmpi_get_var1_int8_all ! ! variable sub-array put/get routines: ! integer nfmpi_put_vara, nfmpi_put_vara_all integer nfmpi_put_vara_text, nfmpi_put_vara_text_all integer nfmpi_put_vara_int1, nfmpi_put_vara_int1_all integer nfmpi_put_vara_int2, nfmpi_put_vara_int2_all integer nfmpi_put_vara_int, nfmpi_put_vara_int_all integer nfmpi_put_vara_real, nfmpi_put_vara_real_all integer nfmpi_put_vara_double, nfmpi_put_vara_double_all integer nfmpi_put_vara_int8, nfmpi_put_vara_int8_all external nfmpi_put_vara, nfmpi_put_vara_all external nfmpi_put_vara_text, nfmpi_put_vara_text_all external nfmpi_put_vara_int1, nfmpi_put_vara_int1_all external nfmpi_put_vara_int2, nfmpi_put_vara_int2_all external nfmpi_put_vara_int, nfmpi_put_vara_int_all external nfmpi_put_vara_real, nfmpi_put_vara_real_all external nfmpi_put_vara_double, nfmpi_put_vara_double_all external nfmpi_put_vara_int8, nfmpi_put_vara_int8_all integer nfmpi_get_vara, nfmpi_get_vara_all integer nfmpi_get_vara_text, nfmpi_get_vara_text_all integer nfmpi_get_vara_int1, nfmpi_get_vara_int1_all integer nfmpi_get_vara_int2, nfmpi_get_vara_int2_all integer nfmpi_get_vara_int, nfmpi_get_vara_int_all integer nfmpi_get_vara_real, nfmpi_get_vara_real_all integer nfmpi_get_vara_double, nfmpi_get_vara_double_all integer nfmpi_get_vara_int8, nfmpi_get_vara_int8_all external nfmpi_get_vara, nfmpi_get_vara_all external nfmpi_get_vara_text, nfmpi_get_vara_text_all external nfmpi_get_vara_int1, nfmpi_get_vara_int1_all external nfmpi_get_vara_int2, nfmpi_get_vara_int2_all external nfmpi_get_vara_int, nfmpi_get_vara_int_all external nfmpi_get_vara_real, nfmpi_get_vara_real_all external nfmpi_get_vara_double, nfmpi_get_vara_double_all external nfmpi_get_vara_int8, nfmpi_get_vara_int8_all ! ! strided variable put/get routines: ! integer nfmpi_put_vars, nfmpi_put_vars_all integer nfmpi_put_vars_text, nfmpi_put_vars_text_all integer nfmpi_put_vars_int1, nfmpi_put_vars_int1_all integer nfmpi_put_vars_int2, nfmpi_put_vars_int2_all integer nfmpi_put_vars_int, nfmpi_put_vars_int_all integer nfmpi_put_vars_real, nfmpi_put_vars_real_all integer nfmpi_put_vars_double, nfmpi_put_vars_double_all integer nfmpi_put_vars_int8, nfmpi_put_vars_int8_all external nfmpi_put_vars, nfmpi_put_vars_all external nfmpi_put_vars_text, nfmpi_put_vars_text_all external nfmpi_put_vars_int1, nfmpi_put_vars_int1_all external nfmpi_put_vars_int2, nfmpi_put_vars_int2_all external nfmpi_put_vars_int, nfmpi_put_vars_int_all external nfmpi_put_vars_real, nfmpi_put_vars_real_all external nfmpi_put_vars_double, nfmpi_put_vars_double_all external nfmpi_put_vars_int8, nfmpi_put_vars_int8_all integer nfmpi_get_vars, nfmpi_get_vars_all integer nfmpi_get_vars_text, nfmpi_get_vars_text_all integer nfmpi_get_vars_int1, nfmpi_get_vars_int1_all integer nfmpi_get_vars_int2, nfmpi_get_vars_int2_all integer nfmpi_get_vars_int, nfmpi_get_vars_int_all integer nfmpi_get_vars_real, nfmpi_get_vars_real_all integer nfmpi_get_vars_double, nfmpi_get_vars_double_all integer nfmpi_get_vars_int8, nfmpi_get_vars_int8_all external nfmpi_get_vars, nfmpi_get_vars_all external nfmpi_get_vars_text, nfmpi_get_vars_text_all external nfmpi_get_vars_int1, nfmpi_get_vars_int1_all external nfmpi_get_vars_int2, nfmpi_get_vars_int2_all external nfmpi_get_vars_int, nfmpi_get_vars_int_all external nfmpi_get_vars_real, nfmpi_get_vars_real_all external nfmpi_get_vars_double, nfmpi_get_vars_double_all external nfmpi_get_vars_int8, nfmpi_get_vars_int8_all ! ! mapped variable put/get routines: ! integer nfmpi_put_varm, nfmpi_put_varm_all integer nfmpi_put_varm_text, nfmpi_put_varm_text_all integer nfmpi_put_varm_int1, nfmpi_put_varm_int1_all integer nfmpi_put_varm_int2, nfmpi_put_varm_int2_all integer nfmpi_put_varm_int, nfmpi_put_varm_int_all integer nfmpi_put_varm_real, nfmpi_put_varm_real_all integer nfmpi_put_varm_double, nfmpi_put_varm_double_all integer nfmpi_put_varm_int8, nfmpi_put_varm_int8_all external nfmpi_put_varm, nfmpi_put_varm_all external nfmpi_put_varm_text, nfmpi_put_varm_text_all external nfmpi_put_varm_int1, nfmpi_put_varm_int1_all external nfmpi_put_varm_int2, nfmpi_put_varm_int2_all external nfmpi_put_varm_int, nfmpi_put_varm_int_all external nfmpi_put_varm_real, nfmpi_put_varm_real_all external nfmpi_put_varm_double, nfmpi_put_varm_double_all external nfmpi_put_varm_int8, nfmpi_put_varm_int8_all integer nfmpi_get_varm, nfmpi_get_varm_all integer nfmpi_get_varm_text, nfmpi_get_varm_text_all integer nfmpi_get_varm_int1, nfmpi_get_varm_int1_all integer nfmpi_get_varm_int2, nfmpi_get_varm_int2_all integer nfmpi_get_varm_int, nfmpi_get_varm_int_all integer nfmpi_get_varm_real, nfmpi_get_varm_real_all integer nfmpi_get_varm_double, nfmpi_get_varm_double_all integer nfmpi_get_varm_int8, nfmpi_get_varm_int8_all external nfmpi_get_varm, nfmpi_get_varm_all external nfmpi_get_varm_text, nfmpi_get_varm_text_all external nfmpi_get_varm_int1, nfmpi_get_varm_int1_all external nfmpi_get_varm_int2, nfmpi_get_varm_int2_all external nfmpi_get_varm_int, nfmpi_get_varm_int_all external nfmpi_get_varm_real, nfmpi_get_varm_real_all external nfmpi_get_varm_double, nfmpi_get_varm_double_all external nfmpi_get_varm_int8, nfmpi_get_varm_int8_all ! ! Non-blocking APIs ! ! entire variable iput/iget routines: ! integer nfmpi_iput_var integer nfmpi_iput_var_text integer nfmpi_iput_var_int1 integer nfmpi_iput_var_int2 integer nfmpi_iput_var_int integer nfmpi_iput_var_real integer nfmpi_iput_var_double integer nfmpi_iput_var_int8 external nfmpi_iput_var external nfmpi_iput_var_text external nfmpi_iput_var_int1 external nfmpi_iput_var_int2 external nfmpi_iput_var_int external nfmpi_iput_var_real external nfmpi_iput_var_double external nfmpi_iput_var_int8 integer nfmpi_iget_var integer nfmpi_iget_var_text integer nfmpi_iget_var_int1 integer nfmpi_iget_var_int2 integer nfmpi_iget_var_int integer nfmpi_iget_var_real integer nfmpi_iget_var_double integer nfmpi_iget_var_int8 external nfmpi_iget_var external nfmpi_iget_var_text external nfmpi_iget_var_int1 external nfmpi_iget_var_int2 external nfmpi_iget_var_int external nfmpi_iget_var_real external nfmpi_iget_var_double external nfmpi_iget_var_int8 ! ! Nonblocking single-element variable iput/iget routines: ! integer nfmpi_iput_var1 integer nfmpi_iput_var1_text integer nfmpi_iput_var1_int1 integer nfmpi_iput_var1_int2 integer nfmpi_iput_var1_int integer nfmpi_iput_var1_real integer nfmpi_iput_var1_double integer nfmpi_iput_var1_int8 external nfmpi_iput_var1 external nfmpi_iput_var1_text external nfmpi_iput_var1_int1 external nfmpi_iput_var1_int2 external nfmpi_iput_var1_int external nfmpi_iput_var1_real external nfmpi_iput_var1_double external nfmpi_iput_var1_int8 integer nfmpi_iget_var1 integer nfmpi_iget_var1_text integer nfmpi_iget_var1_int1 integer nfmpi_iget_var1_int2 integer nfmpi_iget_var1_int integer nfmpi_iget_var1_real integer nfmpi_iget_var1_double integer nfmpi_iget_var1_int8 external nfmpi_iget_var1 external nfmpi_iget_var1_text external nfmpi_iget_var1_int1 external nfmpi_iget_var1_int2 external nfmpi_iget_var1_int external nfmpi_iget_var1_real external nfmpi_iget_var1_double external nfmpi_iget_var1_int8 ! ! Nonblocking subarray variable iput/iget routines: ! integer nfmpi_iput_vara integer nfmpi_iput_vara_text integer nfmpi_iput_vara_int1 integer nfmpi_iput_vara_int2 integer nfmpi_iput_vara_int integer nfmpi_iput_vara_real integer nfmpi_iput_vara_double integer nfmpi_iput_vara_int8 external nfmpi_iput_vara external nfmpi_iput_vara_text external nfmpi_iput_vara_int1 external nfmpi_iput_vara_int2 external nfmpi_iput_vara_int external nfmpi_iput_vara_real external nfmpi_iput_vara_double external nfmpi_iput_vara_int8 integer nfmpi_iget_vara integer nfmpi_iget_vara_text integer nfmpi_iget_vara_int1 integer nfmpi_iget_vara_int2 integer nfmpi_iget_vara_int integer nfmpi_iget_vara_real integer nfmpi_iget_vara_double integer nfmpi_iget_vara_int8 external nfmpi_iget_vara external nfmpi_iget_vara_text external nfmpi_iget_vara_int1 external nfmpi_iget_vara_int2 external nfmpi_iget_vara_int external nfmpi_iget_vara_real external nfmpi_iget_vara_double external nfmpi_iget_vara_int8 ! ! Nonblocking strided variable iput/iget routines: ! integer nfmpi_iput_vars integer nfmpi_iput_vars_text integer nfmpi_iput_vars_int1 integer nfmpi_iput_vars_int2 integer nfmpi_iput_vars_int integer nfmpi_iput_vars_real integer nfmpi_iput_vars_double integer nfmpi_iput_vars_int8 external nfmpi_iput_vars external nfmpi_iput_vars_text external nfmpi_iput_vars_int1 external nfmpi_iput_vars_int2 external nfmpi_iput_vars_int external nfmpi_iput_vars_real external nfmpi_iput_vars_double external nfmpi_iput_vars_int8 integer nfmpi_iget_vars integer nfmpi_iget_vars_text integer nfmpi_iget_vars_int1 integer nfmpi_iget_vars_int2 integer nfmpi_iget_vars_int integer nfmpi_iget_vars_real integer nfmpi_iget_vars_double integer nfmpi_iget_vars_int8 external nfmpi_iget_vars external nfmpi_iget_vars_text external nfmpi_iget_vars_int1 external nfmpi_iget_vars_int2 external nfmpi_iget_vars_int external nfmpi_iget_vars_real external nfmpi_iget_vars_double external nfmpi_iget_vars_int8 ! ! Nonblocking mapped variable iput/iget routines: ! integer nfmpi_iput_varm integer nfmpi_iput_varm_text integer nfmpi_iput_varm_int1 integer nfmpi_iput_varm_int2 integer nfmpi_iput_varm_int integer nfmpi_iput_varm_real integer nfmpi_iput_varm_double integer nfmpi_iput_varm_int8 external nfmpi_iput_varm external nfmpi_iput_varm_text external nfmpi_iput_varm_int1 external nfmpi_iput_varm_int2 external nfmpi_iput_varm_int external nfmpi_iput_varm_real external nfmpi_iput_varm_double external nfmpi_iput_varm_int8 integer nfmpi_iget_varm integer nfmpi_iget_varm_text integer nfmpi_iget_varm_int1 integer nfmpi_iget_varm_int2 integer nfmpi_iget_varm_int integer nfmpi_iget_varm_real integer nfmpi_iget_varm_double integer nfmpi_iget_varm_int8 external nfmpi_iget_varm external nfmpi_iget_varm_text external nfmpi_iget_varm_int1 external nfmpi_iget_varm_int2 external nfmpi_iget_varm_int external nfmpi_iget_varm_real external nfmpi_iget_varm_double external nfmpi_iget_varm_int8 ! ! Nonblocking entire variable bput routines: ! integer nfmpi_bput_var integer nfmpi_bput_var_text integer nfmpi_bput_var_int1 integer nfmpi_bput_var_int2 integer nfmpi_bput_var_int integer nfmpi_bput_var_real integer nfmpi_bput_var_double integer nfmpi_bput_var_int8 external nfmpi_bput_var external nfmpi_bput_var_text external nfmpi_bput_var_int1 external nfmpi_bput_var_int2 external nfmpi_bput_var_int external nfmpi_bput_var_real external nfmpi_bput_var_double external nfmpi_bput_var_int8 ! ! Nonblocking single element variable bput routines: ! integer nfmpi_bput_var1 integer nfmpi_bput_var1_text integer nfmpi_bput_var1_int1 integer nfmpi_bput_var1_int2 integer nfmpi_bput_var1_int integer nfmpi_bput_var1_real integer nfmpi_bput_var1_double integer nfmpi_bput_var1_int8 external nfmpi_bput_var1 external nfmpi_bput_var1_text external nfmpi_bput_var1_int1 external nfmpi_bput_var1_int2 external nfmpi_bput_var1_int external nfmpi_bput_var1_real external nfmpi_bput_var1_double external nfmpi_bput_var1_int8 ! ! Nonblocking subarray variable bput routines: ! integer nfmpi_bput_vara integer nfmpi_bput_vara_text integer nfmpi_bput_vara_int1 integer nfmpi_bput_vara_int2 integer nfmpi_bput_vara_int integer nfmpi_bput_vara_real integer nfmpi_bput_vara_double integer nfmpi_bput_vara_int8 external nfmpi_bput_vara external nfmpi_bput_vara_text external nfmpi_bput_vara_int1 external nfmpi_bput_vara_int2 external nfmpi_bput_vara_int external nfmpi_bput_vara_real external nfmpi_bput_vara_double external nfmpi_bput_vara_int8 ! ! Nonblocking strided variable bput routines: ! integer nfmpi_bput_vars integer nfmpi_bput_vars_text integer nfmpi_bput_vars_int1 integer nfmpi_bput_vars_int2 integer nfmpi_bput_vars_int integer nfmpi_bput_vars_real integer nfmpi_bput_vars_double integer nfmpi_bput_vars_int8 external nfmpi_bput_vars external nfmpi_bput_vars_text external nfmpi_bput_vars_int1 external nfmpi_bput_vars_int2 external nfmpi_bput_vars_int external nfmpi_bput_vars_real external nfmpi_bput_vars_double external nfmpi_bput_vars_int8 ! ! Nonblocking mapped variable bput routines: ! integer nfmpi_bput_varm integer nfmpi_bput_varm_text integer nfmpi_bput_varm_int1 integer nfmpi_bput_varm_int2 integer nfmpi_bput_varm_int integer nfmpi_bput_varm_real integer nfmpi_bput_varm_double integer nfmpi_bput_varm_int8 external nfmpi_bput_varm external nfmpi_bput_varm_text external nfmpi_bput_varm_int1 external nfmpi_bput_varm_int2 external nfmpi_bput_varm_int external nfmpi_bput_varm_real external nfmpi_bput_varm_double external nfmpi_bput_varm_int8 ! ! Nonblocking control APIs ! integer nfmpi_wait integer nfmpi_wait_all integer nfmpi_cancel external nfmpi_wait external nfmpi_wait_all external nfmpi_cancel integer nfmpi_buffer_attach integer nfmpi_buffer_detach integer nfmpi_inq_buffer_usage integer nfmpi_inq_buffer_size integer nfmpi_inq_put_size integer nfmpi_inq_get_size integer nfmpi_inq_header_size integer nfmpi_inq_header_extent integer nfmpi_inq_varoffset integer nfmpi_inq_nreqs integer nfmpi_inq_path external nfmpi_buffer_attach external nfmpi_buffer_detach external nfmpi_inq_buffer_usage external nfmpi_inq_buffer_size external nfmpi_inq_put_size external nfmpi_inq_get_size external nfmpi_inq_header_size external nfmpi_inq_header_extent external nfmpi_inq_varoffset external nfmpi_inq_nreqs external nfmpi_inq_path ! ! varn routines: ! integer nfmpi_put_varn, nfmpi_put_varn_all integer nfmpi_put_varn_text, nfmpi_put_varn_text_all integer nfmpi_put_varn_int1, nfmpi_put_varn_int1_all integer nfmpi_put_varn_int2, nfmpi_put_varn_int2_all integer nfmpi_put_varn_int, nfmpi_put_varn_int_all integer nfmpi_put_varn_real, nfmpi_put_varn_real_all integer nfmpi_put_varn_double, nfmpi_put_varn_double_all integer nfmpi_put_varn_int8, nfmpi_put_varn_int8_all external nfmpi_put_varn, nfmpi_put_varn_all external nfmpi_put_varn_text, nfmpi_put_varn_text_all external nfmpi_put_varn_int1, nfmpi_put_varn_int1_all external nfmpi_put_varn_int2, nfmpi_put_varn_int2_all external nfmpi_put_varn_int, nfmpi_put_varn_int_all external nfmpi_put_varn_real, nfmpi_put_varn_real_all external nfmpi_put_varn_double, nfmpi_put_varn_double_all external nfmpi_put_varn_int8, nfmpi_put_varn_int8_all integer nfmpi_get_varn, nfmpi_get_varn_all integer nfmpi_get_varn_text, nfmpi_get_varn_text_all integer nfmpi_get_varn_int1, nfmpi_get_varn_int1_all integer nfmpi_get_varn_int2, nfmpi_get_varn_int2_all integer nfmpi_get_varn_int, nfmpi_get_varn_int_all integer nfmpi_get_varn_real, nfmpi_get_varn_real_all integer nfmpi_get_varn_double, nfmpi_get_varn_double_all integer nfmpi_get_varn_int8, nfmpi_get_varn_int8_all external nfmpi_get_varn, nfmpi_get_varn_all external nfmpi_get_varn_text, nfmpi_get_varn_text_all external nfmpi_get_varn_int1, nfmpi_get_varn_int1_all external nfmpi_get_varn_int2, nfmpi_get_varn_int2_all external nfmpi_get_varn_int, nfmpi_get_varn_int_all external nfmpi_get_varn_real, nfmpi_get_varn_real_all external nfmpi_get_varn_double, nfmpi_get_varn_double_all external nfmpi_get_varn_int8, nfmpi_get_varn_int8_all ! ! Nonblocking varn routines: ! integer nfmpi_iput_varn integer nfmpi_iput_varn_text integer nfmpi_iput_varn_int1 integer nfmpi_iput_varn_int2 integer nfmpi_iput_varn_int integer nfmpi_iput_varn_real integer nfmpi_iput_varn_double integer nfmpi_iput_varn_int8 external nfmpi_iput_varn external nfmpi_iput_varn_text external nfmpi_iput_varn_int1 external nfmpi_iput_varn_int2 external nfmpi_iput_varn_int external nfmpi_iput_varn_real external nfmpi_iput_varn_double external nfmpi_iput_varn_int8 integer nfmpi_iget_varn integer nfmpi_iget_varn_text integer nfmpi_iget_varn_int1 integer nfmpi_iget_varn_int2 integer nfmpi_iget_varn_int integer nfmpi_iget_varn_real integer nfmpi_iget_varn_double integer nfmpi_iget_varn_int8 external nfmpi_iget_varn external nfmpi_iget_varn_text external nfmpi_iget_varn_int1 external nfmpi_iget_varn_int2 external nfmpi_iget_varn_int external nfmpi_iget_varn_real external nfmpi_iget_varn_double external nfmpi_iget_varn_int8 integer nfmpi_bput_varn integer nfmpi_bput_varn_text integer nfmpi_bput_varn_int1 integer nfmpi_bput_varn_int2 integer nfmpi_bput_varn_int integer nfmpi_bput_varn_real integer nfmpi_bput_varn_double integer nfmpi_bput_varn_int8 external nfmpi_bput_varn external nfmpi_bput_varn_text external nfmpi_bput_varn_int1 external nfmpi_bput_varn_int2 external nfmpi_bput_varn_int external nfmpi_bput_varn_real external nfmpi_bput_varn_double external nfmpi_bput_varn_int8 ! ! vard routines: ! integer nfmpi_put_vard, nfmpi_put_vard_all integer nfmpi_get_vard, nfmpi_get_vard_all external nfmpi_put_vard, nfmpi_put_vard_all external nfmpi_get_vard, nfmpi_get_vard_all integer ,intent(in) :: DataHandle integer ,intent(out) :: Status type(wrf_data_handle) ,pointer :: DH integer :: stat DH => WrfDataHandles(DataHandle) DH%Collective = .FALSE. stat = NFMPI_BEGIN_INDEP_DATA(DH%NCID) call netcdf_err(stat,Status) if(Status /= WRF_NO_ERR) then write(msg,*) 'NetCDF error in ',"wrf_io.F90",', line', 3565 call wrf_debug ( WARN , TRIM(msg)) endif return end subroutine ext_pnc_start_independent_mode !ARPaddition end