Index: README-f90 =================================================================== --- README-f90 (.../trunk) (revision 0) +++ README-f90 (.../branches/f90_datatypes_patch) (revision 531) @@ -0,0 +1,17 @@ +The NEC SX (and possibly other machines) have f90 options which +promote 1, 2 and sometimes 4-byte data to 4 or 8 bytes. A +consqeuence of this is that there is no difference between real*4 +and real*8, which can cause grief for f90 interfaces. This patch +provides for this via the preprocessor switches: + +-DHAVE_1BYTE_INT +-DHAVE_2BYTE_INT +-DHAVE_4BYTE_INT +-DHAVE_4BYTE_REAL + +for "normal" compilation all should be enabled (see env-vars for +an example) + +(a patch like this has been made independently by several people, +this patch is expanded from one by Jacob Poulsen of DMI) + Index: f90/netcdf_constants.f90 =================================================================== --- f90/netcdf_constants.f90 (.../trunk) (revision 531) +++ f90/netcdf_constants.f90 (.../branches/f90_datatypes_patch) (revision 531) @@ -1,128 +0,0 @@ - ! - ! external netcdf data types: - ! - integer, parameter, public :: & - nf90_byte = 1, & - nf90_int1 = nf90_byte, & - nf90_char = 2, & - nf90_short = 3, & - nf90_int2 = nf90_short, & - nf90_int = 4, & - nf90_int4 = nf90_int, & - nf90_float = 5, & - nf90_real = nf90_float, & - nf90_real4 = nf90_float, & - nf90_double = 6, & - nf90_real8 = nf90_double - - ! - ! default fill values: - ! - character (len = 1), parameter, public :: & - nf90_fill_char = achar(0) - integer (kind = OneByteInt), parameter, public :: & - nf90_fill_byte = -127, & - nf90_fill_int1 = nf90_fill_byte - integer (kind = TwoByteInt), parameter, public :: & - nf90_fill_short = -32767, & - nf90_fill_int2 = nf90_fill_short - integer (kind = FourByteInt), parameter, public :: & - nf90_fill_int = -2147483647 - real (kind = FourByteReal), parameter, public :: & - nf90_fill_float = 9.9692099683868690e+36, & - nf90_fill_real = nf90_fill_float, & - nf90_fill_real4 = nf90_fill_float - real (kind = EightByteReal), parameter, public :: & - nf90_fill_double = 9.9692099683868690e+36, & - nf90_fill_real8 = nf90_fill_double - - ! - ! mode flags for opening and creating a netcdf dataset: - ! - integer, parameter, public :: & - nf90_nowrite = 0, & - nf90_write = 1, & - nf90_clobber = 0, & - nf90_noclobber = 4, & - nf90_fill = 0, & - nf90_nofill = 256, & - nf90_64bit_offset = 512, & - nf90_lock = 1024, & - nf90_share = 2048 - - integer, parameter, public :: & - nf90_sizehint_default = 0, & - nf90_align_chunk = -1 - - ! - ! size argument for defining an unlimited dimension: - ! - integer, parameter, public :: nf90_unlimited = 0 - - ! - ! global attribute id: - ! - integer, parameter, public :: nf90_global = 0 - - ! - ! implementation limits: - ! - integer, parameter, public :: & - nf90_max_dims = 1024, & - nf90_max_attrs = 8192, & - nf90_max_vars = 8192, & - nf90_max_name = 256, & - nf90_max_var_dims = nf90_max_dims - - ! - ! error codes: - ! - integer, parameter, public :: & - nf90_noerr = 0, & - nf90_ebadid = -33, & - nf90_eexist = -35, & - nf90_einval = -36, & - nf90_eperm = -37, & - nf90_enotindefine = -38, & - nf90_eindefine = -39, & - nf90_einvalcoords = -40, & - nf90_emaxdims = -41, & - nf90_enameinuse = -42, & - nf90_enotatt = -43, & - nf90_emaxatts = -44, & - nf90_ebadtype = -45, & - nf90_ebaddim = -46, & - nf90_eunlimpos = -47, & - nf90_emaxvars = -48, & - nf90_enotvar = -49, & - nf90_eglobal = -50, & - nf90_enotnc = -51, & - nf90_ests = -52, & - nf90_emaxname = -53, & - nf90_eunlimit = -54, & - nf90_enorecvars = -55, & - nf90_echar = -56, & - nf90_eedge = -57, & - nf90_estride = -58, & - nf90_ebadname = -59, & - nf90_erange = -60, & - nf90_enomem = -61, & - nf90_evarsize = -62, & - nf90_edimsize = -63, & - nf90_etrunc = -64 - - ! - ! error handling modes: - ! - integer, parameter, public :: & - nf90_fatal = 1, & - nf90_verbose = 2 - - ! - ! format version numbers: - ! - integer, parameter, public :: & - nf90_format_classic = 1, & - nf90_format_64bit = 2, & - nf90_format_netcdf4 = 3, & - nf90_format_netcdf4_classic = 4 Index: f90/typeSizes.f90 =================================================================== --- f90/typeSizes.f90 (.../trunk) (revision 531) +++ f90/typeSizes.f90 (.../branches/f90_datatypes_patch) (revision 531) @@ -1,64 +0,0 @@ -! Description: -! Provide named kind parameters for use in declarations of real and integer -! variables with specific byte sizes (i.e. one, two, four, and eight byte -! integers; four and eight byte reals). The parameters can then be used -! in (KIND = XX) modifiers in declarations. -! A single function (byteSizesOK()) is provided to ensure that the selected -! kind parameters are correct. -! -! Input Parameters: -! None. -! -! Output Parameters: -! Public parameters, fixed at compile time: -! OneByteInt, TwoByteInt, FourByteInt, EightByteInt -! FourByteReal, EightByteRadl -! -! References and Credits: -! Written by -! Robert Pincus -! Cooperative Institue for Meteorological Satellite Studies -! University of Wisconsin - Madison -! 1225 W. Dayton St. -! Madison, Wisconsin 53706 -! Robert.Pincus@ssec.wisc.edu -! -! Design Notes: -! Fortran 90 doesn't allow one to check the number of bytes in a real variable; -! we check only that four byte and eight byte reals have different kind parameters. -! -module typeSizes - implicit none - public - integer, parameter :: OneByteInt = selected_int_kind(2), & - TwoByteInt = selected_int_kind(4), & - FourByteInt = selected_int_kind(9), & - EightByteInt = selected_int_kind(18) - - integer, parameter :: & - FourByteReal = selected_real_kind(P = 6, R = 37), & - EightByteReal = selected_real_kind(P = 13, R = 307) -contains - logical function byteSizesOK() - ! Users may call this function once to ensure that the kind parameters - ! the module defines are available with the current compiler. - ! We can't ensure that the two REAL kinds are actually four and - ! eight bytes long, but we can ensure that they are distinct. - ! Early Fortran 90 compilers would sometimes report incorrect results for - ! the bit_size intrinsic, but I haven't seen this in a long time. - - ! Local variables - integer (kind = OneByteInt) :: One - integer (kind = TwoByteInt) :: Two - integer (kind = FourByteInt) :: Four - - if (bit_size( One) == 8 .and. bit_size( Two) == 16 .and. & - bit_size(Four) == 32 .and. & - FourByteReal > 0 .and. EightByteReal > 0 .and. & - FourByteReal /= EightByteReal) then - byteSizesOK = .true. - else - byteSizesOK = .false. - end if - end function byteSizesOK -end module typeSizes Index: f90/netcdf_test.f90 =================================================================== --- f90/netcdf_test.f90 (.../trunk) (revision 531) +++ f90/netcdf_test.f90 (.../branches/f90_datatypes_patch) (revision 531) @@ -1,112 +0,0 @@ -! This program provides an elementary check of some of the parts of the -! Fortran 90 interface to netCDF 3.5. It is a Fortran 90 implementation -! of the nctst.cpp program provided with the C++ interface to netcdf -! (in the src/cxx directory of the netcdf distribution). -! -program netcdfTest - use typeSizes - use netcdf - implicit none - - ! netcdf related variables - integer :: ncFileID, & - latDimID, lonDimID, frTimeDimID, timeDimID, & - pressVarID, latVarID, lonVarID, frTimeVarID, refTimeVarID, scalarVarID - - ! Local variables - integer, parameter :: numLats = 4, numLons = 3, & - numFrTimes = 2, timeStringLen = 20 - character (len = *), parameter :: fileName = "example.nc" - integer :: counter - real, dimension(numLons, numLats, numFrTimes) :: pressure - integer (kind = FourByteInt), dimension(numFrTimes) :: frTimeVals - real (kind = FourByteReal) fillVal; - real (kind = FourByteReal), dimension(2) :: validRange; - - ! -------------------- - ! Code begins - ! -------------------- - if(.not. byteSizesOK()) then - print *, "Compiler does not appear to support required kinds of variables." - stop - end if - - ! Create the file - call check(nf90_create(path = trim(fileName), cmode = nf90_clobber, ncid = ncFileID)) - - ! Define the dimensions - call check(nf90_def_dim(ncid = ncFileID, name = "lat", len = numLats, dimid = latDimID)) - call check(nf90_def_dim(ncid = ncFileID, name = "lon", len = numLons, dimid = lonDimID)) - call check(nf90_def_dim(ncid = ncFileID, name = "frtime", len = nf90_unlimited, dimid = frTimeDimID)) - call check(nf90_def_dim(ncid = ncFileID, name = "timelen", len = timeStringLen, dimid = timeDimID)) - - ! Create variables and attributes - call check(nf90_def_var(ncid = ncFileID, name = "P", xtype = nf90_float, & - dimids = (/ lonDimID, latDimID, frTimeDimID /), varID = pressVarID) ) - call check(nf90_put_att(ncFileID, pressVarID, "long_name", "pressure at maximum wind")) - call check(nf90_put_att(ncFileID, pressVarID, "units", "hectopascals") ) - ! Use 4-byte reals explicitly, to match 4-byte attribute type in test file - validRange(1) = 0. - validRange(2) = 1500 - call check(nf90_put_att(ncFileID, pressVarID, "valid_range", validRange)) - ! Use a 4-byte float constant, to match variable type - fillVal = -9999.0 - call check(nf90_put_att(ncFileID, pressVarID, "_FillValue", fillVal ) ) - - call check(nf90_def_var(ncFileID, "lat", nf90_float, dimids = latDimID, varID = latVarID) ) - call check(nf90_put_att(ncFileID, latVarID, "long_name", "latitude")) - call check(nf90_put_att(ncFileID, latVarID, "units", "degrees_north")) - - call check(nf90_def_var(ncFileID, "lon", nf90_float, lonDimID, lonVarID) ) - call check(nf90_put_att(ncFileID, lonVarID, "long_name", "longitude")) - call check(nf90_put_att(ncFileID, lonVarID, "units", "degrees_east")) - - call check(nf90_def_var(ncFileID, "frtime", nf90_int, frTimeDimID, frTimeVarID) ) - call check(nf90_put_att(ncFileID, frTimeVarID, "long_name", "forecast time")) - call check(nf90_put_att(ncFileID, frTimeVarID, "units", "hours")) - - call check(nf90_def_var(ncFileID, "reftime", nf90_char, timeDimID, refTimeVarID) ) - call check(nf90_put_att(ncFileID, refTimeVarID, "long_name", "reference time")) - call check(nf90_put_att(ncFileID, refTimeVarID, "units", "text_time")) - - ! In the C++ interface the define a scalar variable - do we know how to do this? - call check(nf90_def_var(ncFileID, "ScalarVariable", nf90_real, scalarVarID)) - - ! Global attributes - call check(nf90_put_att(ncFileID, nf90_global, "history", & - "created by Unidata LDM from NPS broadcast")) - call check(nf90_put_att(ncFileID, nf90_global, "title", & - "NMC Global Product Set: Pressure at Maximum Wind")) - - ! Leave define mode - call check(nf90_enddef(ncfileID)) - - ! Write the dimension variables - call check(nf90_put_var(ncFileID, latVarId, (/ -90., -87.5, -85., -82.5 /)) ) - call check(nf90_put_var(ncFileID, lonVarId, (/ -180, -175, -170 /) ) ) - ! Don't use anonymous array here, in case platform has 8-byte integers - frTimeVals(1) = 12 - frTimeVals(2) = 18 - call check(nf90_put_var(ncFileID, frTimeVarId, frTimeVals ) ) - call check(nf90_put_var(ncFileID, reftimeVarID, "1992-3-21 12:00" ) ) - - ! Write the pressure variable. Write a slab at a time to check incrementing. - pressure = 949. + real(reshape( (/ (counter, counter = 1, numLats * numLons * numFrTimes) /), & - (/ numLons, numLats, numFrTimes /) ) ) - call check(nf90_put_var(ncFileID, pressVarID, pressure(:, :, 1:1)) ) - call check(nf90_put_var(ncFileID, pressVarID, pressure(:, :, 2:2), start = (/ 1, 1, 2 /)) ) - - call check(nf90_put_var(ncFileID, scalarVarID, 10)) - call check(nf90_close(ncFileID)) - -contains - ! Internal subroutine - checks error status after each netcdf, prints out text message each time - ! an error code is returned. - subroutine check(status) - integer, intent ( in) :: status - - if(status /= nf90_noerr) then - print *, trim(nf90_strerror(status)) - end if - end subroutine check -end program netcdfTest Index: f90/netcdf.f90 =================================================================== --- f90/netcdf.f90 (.../trunk) (revision 531) +++ f90/netcdf.f90 (.../branches/f90_datatypes_patch) (revision 531) @@ -1,53 +0,0 @@ -! Description: -! -! Input Parameters: -! None. -! -! Output Parameters: -! Many public constants are defined in "netcdf_constants.f90". The names follow -! the Fortran 77 names, with nf90_ used as a prefix instead of nf_77. -! Functions are made accessable through PUBLIC:: statements in "netcdf_visibility.f90". -! Only the functions listed in this file are available in the interface. -! -! References and Credits: -! Written by -! Robert Pincus -! Cooperative Institue for Meteorological Satellite Studies -! University of Wisconsin - Madison -! 1225 W. Dayton St. -! Madison, Wisconsin 53706 -! Robert.Pincus@ssec.wisc.edu -! -! Design Notes: -! Module elements are private by default. -! Many functions have optional arguments. In order to keep the interface easy to use, -! we've reordered the arguments (relative to the F77 interface) in some functions. -! The external datatype of attributes is the same as the internal type. -! By default, data is read from or put into the lowest part of the netCDF array with stride 1. -! We've made heavy use of overloading, especially in the variable put and get routines. -! A single function exists for putting all variables; a single function exists for getting -! variables. -! Text variables must be treated somewhat differently. When a character variable is defined, the -! fastest-varying index (first index in Fortran) must be the maxiumu length of the character -! string. N dimensional arrays of strings passed to the put or get functions are written/read -! from dimensions 2:N+1. The number of values along the first dimension is determined by the -! length of the argument character string. -! - module netcdf - use typeSizes, only: OneByteInt, TwoByteInt, FourByteInt, EightByteInt, & - FourByteReal, EightByteReal - implicit none - private - - include "netcdf_constants.f90" - include "netcdf_externals.f90" - include "netcdf_overloads.f90" - include "netcdf_visibility.f90" -contains - include "netcdf_file.f90" - include "netcdf_dims.f90" - include "netcdf_attributes.f90" - include "netcdf_variables.f90" - include "netcdf_text_variables.f90" - include "netcdf_expanded.f90" -end module netcdf Index: f90/netcdf_attributes.f90 =================================================================== --- f90/netcdf_attributes.f90 (.../trunk) (revision 531) +++ f90/netcdf_attributes.f90 (.../branches/f90_datatypes_patch) (revision 531) @@ -1,329 +0,0 @@ - ! - ! Attribute routines: - ! - ! ------- - function nf90_copy_att(ncid_in, varid_in, name, ncid_out, varid_out) - integer, intent( in) :: ncid_in, varid_in - character (len = *), intent( in) :: name - integer, intent( in) :: ncid_out, varid_out - integer :: nf90_copy_att - - nf90_copy_att = nf_copy_att(ncid_in, varid_in, name, ncid_out, varid_out) - end function nf90_copy_att - ! ------- - function nf90_rename_att(ncid, varid, curname, newname) - integer, intent( in) :: ncid, varid - character (len = *), intent( in) :: curname, newname - integer :: nf90_rename_att - - nf90_rename_att = nf_rename_att(ncid, varid, curname, newname) - end function nf90_rename_att - ! ------- - function nf90_del_att(ncid, varid, name) - integer, intent( in) :: ncid, varid - character (len = *), intent( in) :: name - integer :: nf90_del_att - - nf90_del_att = nf_del_att(ncid, varid, name) - end function nf90_del_att - ! ------- - ! Attribute inquiry functions - ! ------- - function nf90_inq_attname(ncid, varid, attnum, name) - integer, intent( in) :: ncid, varid, attnum - character (len = *), intent(out) :: name - integer :: nf90_inq_attname - - nf90_inq_attname = nf_inq_attname(ncid, varid, attnum, name) - end function nf90_inq_attname - ! ------- - function nf90_inquire_attribute(ncid, varid, name, xtype, len, attnum) - integer, intent( in) :: ncid, varid - character (len = *), intent( in) :: name - integer, intent(out), optional :: xtype, len, attnum - integer :: nf90_inquire_attribute - - integer :: local_xtype, local_len - - ! Do we need to worry about not saving the state from this call? - if(present(attnum)) & - nf90_inquire_attribute = nf_inq_attid(ncid, varid, name, attnum) - nf90_inquire_attribute = nf_inq_att (ncid, varid, name, local_xtype, local_len) - if(present(xtype)) xtype = local_xtype - if(present(len )) len = local_len - end function nf90_inquire_attribute - ! ------- - ! Put and get functions; these will get overloaded - ! ------- - ! Text - ! ------- - function nf90_put_att_text(ncid, varid, name, values) - integer, intent( in) :: ncid, varid - character(len = *), intent( in) :: name - character(len = *), intent( in) :: values - integer :: nf90_put_att_text - - nf90_put_att_text = nf_put_att_text(ncid, varid, name, len_trim(values), trim(values)) - end function nf90_put_att_text - ! ------- - function nf90_get_att_text(ncid, varid, name, values) - integer, intent( in) :: ncid, varid - character(len = *), intent( in) :: name - character(len = *), intent(out) :: values - integer :: nf90_get_att_text - - nf90_get_att_text = nf_get_att_text(ncid, varid, name, values) - end function nf90_get_att_text - ! ------- - ! Integer attributes - ! ------- - function nf90_put_att_OneByteInt(ncid, varid, name, values) - integer, intent( in) :: ncid, varid - character(len = *), intent( in) :: name - integer (kind = OneByteInt), dimension(:), intent( in) :: values - integer :: nf90_put_att_OneByteInt - - nf90_put_att_OneByteInt = nf_put_att_int1(ncid, varid, name, nf90_int1, size(values), values) - end function nf90_put_att_OneByteInt - ! ------- - function nf90_put_att_one_OneByteInt(ncid, varid, name, values) - integer, intent( in) :: ncid, varid - character(len = *), intent( in) :: name - integer (kind = OneByteInt), intent( in) :: values - integer :: nf90_put_att_one_OneByteInt - - integer (kind = OneByteInt), dimension(1) :: valuesA - valuesA(1) = values - nf90_put_att_one_OneByteInt = nf_put_att_int1(ncid, varid, name, nf90_int1, 1, valuesA) - end function nf90_put_att_one_OneByteInt - ! ------- - function nf90_get_att_OneByteInt(ncid, varid, name, values) - integer, intent( in) :: ncid, varid - character(len = *), intent( in) :: name - integer (kind = OneByteInt), dimension(:), intent(out) :: values - integer :: nf90_get_att_OneByteInt - - nf90_get_att_OneByteInt = nf_get_att_int1(ncid, varid, name, values) - end function nf90_get_att_OneByteInt - ! ------- - function nf90_get_att_one_OneByteInt(ncid, varid, name, values) - integer, intent( in) :: ncid, varid - character(len = *), intent( in) :: name - integer (kind = OneByteInt), intent(out) :: values - integer :: nf90_get_att_one_OneByteInt - - integer (kind = OneByteInt), dimension(1) :: valuesA - nf90_get_att_one_OneByteInt = nf_get_att_int1(ncid, varid, name, valuesA) - values = valuesA(1) - end function nf90_get_att_one_OneByteInt - ! ------- - function nf90_put_att_TwoByteInt(ncid, varid, name, values) - integer, intent( in) :: ncid, varid - character(len = *), intent( in) :: name - integer (kind = TwoByteInt), dimension(:), intent( in) :: values - integer :: nf90_put_att_TwoByteInt - - nf90_put_att_TwoByteInt = nf_put_att_int2(ncid, varid, name, nf90_int2, size(values), values) - end function nf90_put_att_TwoByteInt - ! ------- - function nf90_put_att_one_TwoByteInt(ncid, varid, name, values) - integer, intent( in) :: ncid, varid - character(len = *), intent( in) :: name - integer (kind = TwoByteInt), intent( in) :: values - integer :: nf90_put_att_one_TwoByteInt - - integer (kind = TwoByteInt), dimension(1) :: valuesA - valuesA(1) = values - nf90_put_att_one_TwoByteInt = nf_put_att_int2(ncid, varid, name, nf90_int2, 1, valuesA) - end function nf90_put_att_one_TwoByteInt - ! ------- - function nf90_get_att_TwoByteInt(ncid, varid, name, values) - integer, intent( in) :: ncid, varid - character(len = *), intent( in) :: name - integer (kind = TwoByteInt), dimension(:), intent(out) :: values - integer :: nf90_get_att_TwoByteInt - - nf90_get_att_TwoByteInt = nf_get_att_int2(ncid, varid, name, values) - end function nf90_get_att_TwoByteInt - ! ------- - function nf90_get_att_one_TwoByteInt(ncid, varid, name, values) - integer, intent( in) :: ncid, varid - character(len = *), intent( in) :: name - integer (kind = TwoByteInt), intent(out) :: values - integer :: nf90_get_att_one_TwoByteInt - - integer (kind = TwoByteInt), dimension(1) :: valuesA - nf90_get_att_one_TwoByteInt = nf_get_att_int2(ncid, varid, name, valuesA) - values = valuesA(1) - end function nf90_get_att_one_TwoByteInt - ! ------- - function nf90_put_att_FourByteInt(ncid, varid, name, values) - integer, intent( in) :: ncid, varid - character(len = *), intent( in) :: name - integer (kind = FourByteInt), dimension(:), intent( in) :: values - integer :: nf90_put_att_FourByteInt - - nf90_put_att_FourByteInt = nf_put_att_int(ncid, varid, name, nf90_int, size(values), int(values)) - end function nf90_put_att_FourByteInt - ! ------- - function nf90_put_att_one_FourByteInt(ncid, varid, name, values) - integer, intent( in) :: ncid, varid - character(len = *), intent( in) :: name - integer (kind = FourByteInt), intent( in) :: values - integer :: nf90_put_att_one_FourByteInt - - integer (kind = FourByteInt), dimension(1) :: valuesA - valuesA(1) = int(values) - nf90_put_att_one_FourByteInt = nf_put_att_int(ncid, varid, name, nf90_int, 1, valuesA) - end function nf90_put_att_one_FourByteInt - ! ------- - function nf90_get_att_FourByteInt(ncid, varid, name, values) - integer, intent( in) :: ncid, varid - character(len = *), intent( in) :: name - integer (kind = FourByteInt), dimension(:), intent(out) :: values - integer :: nf90_get_att_FourByteInt - - integer, dimension(size(values)) :: defaultInteger - - nf90_get_att_FourByteInt = nf_get_att_int(ncid, varid, name, defaultInteger) - values(:) = defaultInteger(:) - end function nf90_get_att_FourByteInt - ! ------- - function nf90_get_att_one_FourByteInt(ncid, varid, name, values) - integer, intent( in) :: ncid, varid - character(len = *), intent( in) :: name - integer (kind = FourByteInt), intent(out) :: values - integer :: nf90_get_att_one_FourByteInt - - integer, dimension(1) :: defaultInteger - - nf90_get_att_one_FourByteInt = nf_get_att_int(ncid, varid, name, defaultInteger) - values = defaultInteger(1) - end function nf90_get_att_one_FourByteInt - ! ------- - function nf90_put_att_EightByteInt(ncid, varid, name, values) - integer, intent( in) :: ncid, varid - character(len = *), intent( in) :: name - integer (kind = EightByteInt), dimension(:), intent( in) :: values - integer :: nf90_put_att_EightByteInt - - nf90_put_att_EightByteInt = nf_put_att_int(ncid, varid, name, nf90_int, size(values), int(values)) - end function nf90_put_att_EightByteInt - ! ------- - function nf90_put_att_one_EightByteInt(ncid, varid, name, values) - integer, intent( in) :: ncid, varid - character(len = *), intent( in) :: name - integer (kind = EightByteInt), intent( in) :: values - integer :: nf90_put_att_one_EightByteInt - - integer, dimension(1) :: valuesA - valuesA(1) = values - nf90_put_att_one_EightByteInt = nf_put_att_int(ncid, varid, name, nf90_int, 1, valuesA) - end function nf90_put_att_one_EightByteInt - ! ------- - function nf90_get_att_EightByteInt(ncid, varid, name, values) - integer, intent( in) :: ncid, varid - character(len = *), intent( in) :: name - integer (kind = EightByteInt), dimension(:), intent(out) :: values - integer :: nf90_get_att_EightByteInt - - integer, dimension(size(values)) :: defaultInteger - - nf90_get_att_EightByteInt = nf_get_att_int(ncid, varid, name, defaultInteger) - values(:) = defaultInteger(:) - end function nf90_get_att_EightByteInt - ! ------- - function nf90_get_att_one_EightByteInt(ncid, varid, name, values) - integer, intent( in) :: ncid, varid - character(len = *), intent( in) :: name - integer (kind = EightByteInt), intent(out) :: values - integer :: nf90_get_att_one_EightByteInt - - integer, dimension(1) :: defaultInteger - - nf90_get_att_one_EightByteInt = nf_get_att_int(ncid, varid, name, defaultInteger) - values = defaultInteger(1) - end function nf90_get_att_one_EightByteInt - ! ------- - ! Real attributes - ! ------- - function nf90_put_att_FourByteReal(ncid, varid, name, values) - integer, intent( in) :: ncid, varid - character(len = *), intent( in) :: name - real (kind = FourByteReal), dimension(:), intent( in) :: values - integer :: nf90_put_att_FourByteReal - - nf90_put_att_FourByteReal = nf_put_att_real(ncid, varid, name, nf90_real4, size(values), values) - end function nf90_put_att_FourByteReal - ! ------- - function nf90_put_att_one_FourByteReal(ncid, varid, name, values) - integer, intent( in) :: ncid, varid - character(len = *), intent( in) :: name - real (kind = FourByteReal), intent( in) :: values - integer :: nf90_put_att_one_FourByteReal - - real (kind = FourByteReal), dimension(1) :: valuesA - valuesA(1) = values - nf90_put_att_one_FourByteReal = nf_put_att_real(ncid, varid, name, nf90_real4, 1, valuesA) - end function nf90_put_att_one_FourByteReal - ! ------- - function nf90_get_att_FourByteReal(ncid, varid, name, values) - integer, intent( in) :: ncid, varid - character(len = *), intent( in) :: name - real (kind = FourByteReal), dimension(:), intent(out) :: values - integer :: nf90_get_att_FourByteReal - - nf90_get_att_FourByteReal = nf_get_att_real(ncid, varid, name, values) - end function nf90_get_att_FourByteReal - ! ------- - function nf90_get_att_one_FourByteReal(ncid, varid, name, values) - integer, intent( in) :: ncid, varid - character(len = *), intent( in) :: name - real (kind = FourByteReal), intent(out) :: values - integer :: nf90_get_att_one_FourByteReal - - real (kind = FourByteReal), dimension(1) :: valuesA - nf90_get_att_one_FourByteReal = nf_get_att_real(ncid, varid, name, valuesA) - values = valuesA(1) - end function nf90_get_att_one_FourByteReal - ! ------- - function nf90_put_att_EightByteReal(ncid, varid, name, values) - integer, intent( in) :: ncid, varid - character(len = *), intent( in) :: name - real (kind = EightByteReal), dimension(:), intent( in) :: values - integer :: nf90_put_att_EightByteReal - - nf90_put_att_EightByteReal = nf_put_att_double(ncid, varid, name, nf90_real8, size(values), values) - end function nf90_put_att_EightByteReal - ! ------- - function nf90_put_att_one_EightByteReal(ncid, varid, name, values) - integer, intent( in) :: ncid, varid - character(len = *), intent( in) :: name - real (kind = EightByteReal), intent( in) :: values - integer :: nf90_put_att_one_EightByteReal - - real (kind = EightByteReal), dimension(1) :: valuesA - valuesA(1) = values - nf90_put_att_one_EightByteReal = nf_put_att_double(ncid, varid, name, nf90_real8, 1, valuesA) - end function nf90_put_att_one_EightByteReal - ! ------- - function nf90_get_att_EightByteReal(ncid, varid, name, values) - integer, intent( in) :: ncid, varid - character(len = *), intent( in) :: name - real (kind = EightByteReal), dimension(:), intent(out) :: values - integer :: nf90_get_att_EightByteReal - - nf90_get_att_EightByteReal = nf_get_att_double(ncid, varid, name, values) - end function nf90_get_att_EightByteReal - ! ------- - function nf90_get_att_one_EightByteReal(ncid, varid, name, values) - integer, intent( in) :: ncid, varid - character(len = *), intent( in) :: name - real (kind = EightByteReal), intent(out) :: values - integer :: nf90_get_att_one_EightByteReal - - real (kind = EightByteReal), dimension(1) :: valuesA - nf90_get_att_one_EightByteReal = nf_get_att_double(ncid, varid, name, valuesA) - values = valuesA(1) - end function nf90_get_att_one_EightByteReal - ! ------- Index: f90/netcdf_expanded.f90 =================================================================== --- f90/netcdf_expanded.f90 (.../trunk) (revision 531) +++ f90/netcdf_expanded.f90 (.../branches/f90_datatypes_patch) (revision 531) @@ -1,3183 +0,0 @@ - - - - - - - function nf90_put_var_OneByteInt(ncid, varid, values, start) - integer, intent( in) :: ncid, varid - integer (kind = OneByteInt), intent( in) :: values - integer, dimension(:), optional, intent( in) :: start - integer :: nf90_put_var_OneByteInt - - integer, dimension(nf90_max_var_dims) :: localIndex - integer :: counter - - ! Set local arguments to default values - localIndex(:) = 1 - if(present(start)) localIndex(:size(start)) = start(:) - - nf90_put_var_OneByteInt = nf_put_var1_int1(ncid, varid, localIndex, values) - end function nf90_put_var_OneByteInt - - - function nf90_put_var_TwoByteInt(ncid, varid, values, start) - integer, intent( in) :: ncid, varid - integer (kind = TwoByteInt), intent( in) :: values - integer, dimension(:), optional, intent( in) :: start - integer :: nf90_put_var_TwoByteInt - - integer, dimension(nf90_max_var_dims) :: localIndex - integer :: counter - - ! Set local arguments to default values - localIndex(:) = 1 - if(present(start)) localIndex(:size(start)) = start(:) - - nf90_put_var_TwoByteInt = nf_put_var1_int2(ncid, varid, localIndex, values) - end function nf90_put_var_TwoByteInt - - - function nf90_put_var_FourByteInt(ncid, varid, values, start) - integer, intent( in) :: ncid, varid - integer (kind = FourByteInt), intent( in) :: values - integer, dimension(:), optional, intent( in) :: start - integer :: nf90_put_var_FourByteInt - - integer, dimension(nf90_max_var_dims) :: localIndex - integer :: counter - - ! Set local arguments to default values - localIndex(:) = 1 - if(present(start)) localIndex(:size(start)) = start(:) - - nf90_put_var_FourByteInt = nf_put_var1_int(ncid, varid, localIndex, int(values)) - end function nf90_put_var_FourByteInt - - - function nf90_put_var_EightByteInt(ncid, varid, values, start) - integer, intent( in) :: ncid, varid - integer (kind = EightByteInt), intent( in) :: values - integer, dimension(:), optional, intent( in) :: start - integer :: nf90_put_var_EightByteInt - - integer, dimension(nf90_max_var_dims) :: localIndex - integer :: counter - - ! Set local arguments to default values - localIndex(:) = 1 - if(present(start)) localIndex(:size(start)) = start(:) - - nf90_put_var_EightByteInt = nf_put_var1_int(ncid, varid, localIndex, int(values)) - end function nf90_put_var_EightByteInt - - - function nf90_put_var_FourByteReal(ncid, varid, values, start) - integer, intent( in) :: ncid, varid - real (kind = FourByteReal), intent( in) :: values - integer, dimension(:), optional, intent( in) :: start - integer :: nf90_put_var_FourByteReal - - integer, dimension(nf90_max_var_dims) :: localIndex - integer :: counter - - ! Set local arguments to default values - localIndex(:) = 1 - if(present(start)) localIndex(:size(start)) = start(:) - - nf90_put_var_FourByteReal = nf_put_var1_real(ncid, varid, localIndex, values) - end function nf90_put_var_FourByteReal - - - function nf90_put_var_EightByteReal(ncid, varid, values, start) - integer, intent( in) :: ncid, varid - real (kind = EightByteReal), intent( in) :: values - integer, dimension(:), optional, intent( in) :: start - integer :: nf90_put_var_EightByteReal - - integer, dimension(nf90_max_var_dims) :: localIndex - integer :: counter - - ! Set local arguments to default values - localIndex(:) = 1 - if(present(start)) localIndex(:size(start)) = start(:) - - nf90_put_var_EightByteReal = nf_put_var1_double(ncid, varid, localIndex, values) - end function nf90_put_var_EightByteReal - - - function nf90_get_var_OneByteInt(ncid, varid, values, start) - integer, intent( in) :: ncid, varid - integer (kind = OneByteInt), intent(out) :: values - integer, dimension(:), optional, intent( in) :: start - integer :: nf90_get_var_OneByteInt - - integer, dimension(nf90_max_var_dims) :: localIndex - integer :: counter - - ! Set local arguments to default values - localIndex(:) = 1 - if(present(start)) localIndex(:size(start)) = start(:) - - nf90_get_var_OneByteInt = nf_get_var1_int1(ncid, varid, localIndex, values) - end function nf90_get_var_OneByteInt - - - function nf90_get_var_TwoByteInt(ncid, varid, values, start) - integer, intent( in) :: ncid, varid - integer (kind = TwoByteInt), intent(out) :: values - integer, dimension(:), optional, intent( in) :: start - integer :: nf90_get_var_TwoByteInt - - integer, dimension(nf90_max_var_dims) :: localIndex - integer :: counter - - ! Set local arguments to default values - localIndex(:) = 1 - if(present(start)) localIndex(:size(start)) = start(:) - - nf90_get_var_TwoByteInt = nf_get_var1_int2(ncid, varid, localIndex, values) - end function nf90_get_var_TwoByteInt - - - function nf90_get_var_FourByteInt(ncid, varid, values, start) - integer, intent( in) :: ncid, varid - integer (kind = FourByteInt), intent(out) :: values - integer, dimension(:), optional, intent( in) :: start - integer :: nf90_get_var_FourByteInt - - integer, dimension(nf90_max_var_dims) :: localIndex - integer :: counter - integer :: defaultInteger - - ! Set local arguments to default values - localIndex(:) = 1 - if(present(start)) localIndex(:size(start)) = start(:) - - nf90_get_var_FourByteInt = nf_get_var1_int(ncid, varid, localIndex, defaultInteger) - values = defaultInteger - end function nf90_get_var_FourByteInt - - - function nf90_get_var_EightByteInt(ncid, varid, values, start) - integer, intent( in) :: ncid, varid - integer (kind = EightByteInt), intent(out) :: values - integer, dimension(:), optional, intent( in) :: start - integer :: nf90_get_var_EightByteInt - - integer, dimension(nf90_max_var_dims) :: localIndex - integer :: counter - integer :: defaultInteger - - ! Set local arguments to default values - localIndex(:) = 1 - if(present(start)) localIndex(:size(start)) = start(:) - - nf90_get_var_EightByteInt = nf_get_var1_int(ncid, varid, localIndex, defaultInteger) - values = defaultInteger - end function nf90_get_var_EightByteInt - - - function nf90_get_var_FourByteReal(ncid, varid, values, start) - integer, intent( in) :: ncid, varid - real (kind = FourByteReal), intent(out) :: values - integer, dimension(:), optional, intent( in) :: start - integer :: nf90_get_var_FourByteReal - - integer, dimension(nf90_max_var_dims) :: localIndex - integer :: counter - - ! Set local arguments to default values - localIndex(:) = 1 - if(present(start)) localIndex(:size(start)) = start(:) - - nf90_get_var_FourByteReal = nf_get_var1_real(ncid, varid, localIndex, values) - end function nf90_get_var_FourByteReal - - - function nf90_get_var_EightByteReal(ncid, varid, values, start) - integer, intent( in) :: ncid, varid - real (kind = EightByteReal), intent(out) :: values - integer, dimension(:), optional, intent( in) :: start - integer :: nf90_get_var_EightByteReal - - integer, dimension(nf90_max_var_dims) :: localIndex - integer :: counter - - ! Set local arguments to default values - localIndex(:) = 1 - if(present(start)) localIndex(:size(start)) = start(:) - - nf90_get_var_EightByteReal = nf_get_var1_double(ncid, varid, localIndex, values) - end function nf90_get_var_EightByteReal - - - - function nf90_put_var_1D_OneByteInt(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - integer (kind = OneByteInt), dimension(:), & - intent( in) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_put_var_1D_OneByteInt - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_put_var_1D_OneByteInt = & - nf_put_varm_int1(ncid, varid, localStart, localCount, localStride, localMap, values) - else if(present(stride)) then - nf90_put_var_1D_OneByteInt = & - nf_put_vars_int1(ncid, varid, localStart, localCount, localStride, values) - else - nf90_put_var_1D_OneByteInt = & - nf_put_vara_int1(ncid, varid, localStart, localCount, values) - end if - end function nf90_put_var_1D_OneByteInt - - - function nf90_put_var_2D_OneByteInt(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - integer (kind = OneByteInt), dimension(:, :), & - intent( in) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_put_var_2D_OneByteInt - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_put_var_2D_OneByteInt = & - nf_put_varm_int1(ncid, varid, localStart, localCount, localStride, localMap, values) - else if(present(stride)) then - nf90_put_var_2D_OneByteInt = & - nf_put_vars_int1(ncid, varid, localStart, localCount, localStride, values) - else - nf90_put_var_2D_OneByteInt = & - nf_put_vara_int1(ncid, varid, localStart, localCount, values) - end if - end function nf90_put_var_2D_OneByteInt - - - function nf90_put_var_3D_OneByteInt(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - integer (kind = OneByteInt), dimension(:, :, :), & - intent( in) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_put_var_3D_OneByteInt - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_put_var_3D_OneByteInt = & - nf_put_varm_int1(ncid, varid, localStart, localCount, localStride, localMap, values) - else if(present(stride)) then - nf90_put_var_3D_OneByteInt = & - nf_put_vars_int1(ncid, varid, localStart, localCount, localStride, values) - else - nf90_put_var_3D_OneByteInt = & - nf_put_vara_int1(ncid, varid, localStart, localCount, values) - end if - end function nf90_put_var_3D_OneByteInt - - - function nf90_put_var_4D_OneByteInt(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - integer (kind = OneByteInt), dimension(:, :, :, :), & - intent( in) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_put_var_4D_OneByteInt - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_put_var_4D_OneByteInt = & - nf_put_varm_int1(ncid, varid, localStart, localCount, localStride, localMap, values) - else if(present(stride)) then - nf90_put_var_4D_OneByteInt = & - nf_put_vars_int1(ncid, varid, localStart, localCount, localStride, values) - else - nf90_put_var_4D_OneByteInt = & - nf_put_vara_int1(ncid, varid, localStart, localCount, values) - end if - end function nf90_put_var_4D_OneByteInt - - - function nf90_put_var_5D_OneByteInt(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - integer (kind = OneByteInt), dimension(:, :, :, :, :), & - intent( in) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_put_var_5D_OneByteInt - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_put_var_5D_OneByteInt = & - nf_put_varm_int1(ncid, varid, localStart, localCount, localStride, localMap, values) - else if(present(stride)) then - nf90_put_var_5D_OneByteInt = & - nf_put_vars_int1(ncid, varid, localStart, localCount, localStride, values) - else - nf90_put_var_5D_OneByteInt = & - nf_put_vara_int1(ncid, varid, localStart, localCount, values) - end if - end function nf90_put_var_5D_OneByteInt - - - function nf90_put_var_6D_OneByteInt(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - integer (kind = OneByteInt), dimension(:, :, :, :, :, :), & - intent( in) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_put_var_6D_OneByteInt - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_put_var_6D_OneByteInt = & - nf_put_varm_int1(ncid, varid, localStart, localCount, localStride, localMap, values) - else if(present(stride)) then - nf90_put_var_6D_OneByteInt = & - nf_put_vars_int1(ncid, varid, localStart, localCount, localStride, values) - else - nf90_put_var_6D_OneByteInt = & - nf_put_vara_int1(ncid, varid, localStart, localCount, values) - end if - end function nf90_put_var_6D_OneByteInt - - - function nf90_put_var_7D_OneByteInt(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - integer (kind = OneByteInt), dimension(:, :, :, :, :, :, :), & - intent( in) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_put_var_7D_OneByteInt - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_put_var_7D_OneByteInt = & - nf_put_varm_int1(ncid, varid, localStart, localCount, localStride, localMap, values) - else if(present(stride)) then - nf90_put_var_7D_OneByteInt = & - nf_put_vars_int1(ncid, varid, localStart, localCount, localStride, values) - else - nf90_put_var_7D_OneByteInt = & - nf_put_vara_int1(ncid, varid, localStart, localCount, values) - end if - end function nf90_put_var_7D_OneByteInt - - - function nf90_put_var_1D_TwoByteInt(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - integer (kind = TwoByteInt), dimension(:), & - intent( in) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_put_var_1D_TwoByteInt - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_put_var_1D_TwoByteInt = & - nf_put_varm_int2(ncid, varid, localStart, localCount, localStride, localMap, values) - else if(present(stride)) then - nf90_put_var_1D_TwoByteInt = & - nf_put_vars_int2(ncid, varid, localStart, localCount, localStride, values) - else - nf90_put_var_1D_TwoByteInt = & - nf_put_vara_int2(ncid, varid, localStart, localCount, values) - end if - end function nf90_put_var_1D_TwoByteInt - - - function nf90_put_var_2D_TwoByteInt(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - integer (kind = TwoByteInt), dimension(:, :), & - intent( in) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_put_var_2D_TwoByteInt - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_put_var_2D_TwoByteInt = & - nf_put_varm_int2(ncid, varid, localStart, localCount, localStride, localMap, values) - else if(present(stride)) then - nf90_put_var_2D_TwoByteInt = & - nf_put_vars_int2(ncid, varid, localStart, localCount, localStride, values) - else - nf90_put_var_2D_TwoByteInt = & - nf_put_vara_int2(ncid, varid, localStart, localCount, values) - end if - end function nf90_put_var_2D_TwoByteInt - - - function nf90_put_var_3D_TwoByteInt(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - integer (kind = TwoByteInt), dimension(:, :, :), & - intent( in) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_put_var_3D_TwoByteInt - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_put_var_3D_TwoByteInt = & - nf_put_varm_int2(ncid, varid, localStart, localCount, localStride, localMap, values) - else if(present(stride)) then - nf90_put_var_3D_TwoByteInt = & - nf_put_vars_int2(ncid, varid, localStart, localCount, localStride, values) - else - nf90_put_var_3D_TwoByteInt = & - nf_put_vara_int2(ncid, varid, localStart, localCount, values) - end if - end function nf90_put_var_3D_TwoByteInt - - - function nf90_put_var_4D_TwoByteInt(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - integer (kind = TwoByteInt), dimension(:, :, :, :), & - intent( in) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_put_var_4D_TwoByteInt - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_put_var_4D_TwoByteInt = & - nf_put_varm_int2(ncid, varid, localStart, localCount, localStride, localMap, values) - else if(present(stride)) then - nf90_put_var_4D_TwoByteInt = & - nf_put_vars_int2(ncid, varid, localStart, localCount, localStride, values) - else - nf90_put_var_4D_TwoByteInt = & - nf_put_vara_int2(ncid, varid, localStart, localCount, values) - end if - end function nf90_put_var_4D_TwoByteInt - - - function nf90_put_var_5D_TwoByteInt(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - integer (kind = TwoByteInt), dimension(:, :, :, :, :), & - intent( in) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_put_var_5D_TwoByteInt - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_put_var_5D_TwoByteInt = & - nf_put_varm_int2(ncid, varid, localStart, localCount, localStride, localMap, values) - else if(present(stride)) then - nf90_put_var_5D_TwoByteInt = & - nf_put_vars_int2(ncid, varid, localStart, localCount, localStride, values) - else - nf90_put_var_5D_TwoByteInt = & - nf_put_vara_int2(ncid, varid, localStart, localCount, values) - end if - end function nf90_put_var_5D_TwoByteInt - - - function nf90_put_var_6D_TwoByteInt(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - integer (kind = TwoByteInt), dimension(:, :, :, :, :, :), & - intent( in) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_put_var_6D_TwoByteInt - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_put_var_6D_TwoByteInt = & - nf_put_varm_int2(ncid, varid, localStart, localCount, localStride, localMap, values) - else if(present(stride)) then - nf90_put_var_6D_TwoByteInt = & - nf_put_vars_int2(ncid, varid, localStart, localCount, localStride, values) - else - nf90_put_var_6D_TwoByteInt = & - nf_put_vara_int2(ncid, varid, localStart, localCount, values) - end if - end function nf90_put_var_6D_TwoByteInt - - - function nf90_put_var_7D_TwoByteInt(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - integer (kind = TwoByteInt), dimension(:, :, :, :, :, :, :), & - intent( in) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_put_var_7D_TwoByteInt - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_put_var_7D_TwoByteInt = & - nf_put_varm_int2(ncid, varid, localStart, localCount, localStride, localMap, values) - else if(present(stride)) then - nf90_put_var_7D_TwoByteInt = & - nf_put_vars_int2(ncid, varid, localStart, localCount, localStride, values) - else - nf90_put_var_7D_TwoByteInt = & - nf_put_vara_int2(ncid, varid, localStart, localCount, values) - end if - end function nf90_put_var_7D_TwoByteInt - - - function nf90_put_var_1D_FourByteInt(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - integer (kind = FourByteInt), dimension(:), & - intent( in) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_put_var_1D_FourByteInt - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_put_var_1D_FourByteInt = & - nf_put_varm_int(ncid, varid, localStart, localCount, localStride, localMap, int(values)) - else if(present(stride)) then - nf90_put_var_1D_FourByteInt = & - nf_put_vars_int(ncid, varid, localStart, localCount, localStride, int(values)) - else - nf90_put_var_1D_FourByteInt = & - nf_put_vara_int(ncid, varid, localStart, localCount, int(values)) - end if - end function nf90_put_var_1D_FourByteInt - - - function nf90_put_var_2D_FourByteInt(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - integer (kind = FourByteInt), dimension(:, :), & - intent( in) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_put_var_2D_FourByteInt - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_put_var_2D_FourByteInt = & - nf_put_varm_int(ncid, varid, localStart, localCount, localStride, localMap, int(values)) - else if(present(stride)) then - nf90_put_var_2D_FourByteInt = & - nf_put_vars_int(ncid, varid, localStart, localCount, localStride, int(values)) - else - nf90_put_var_2D_FourByteInt = & - nf_put_vara_int(ncid, varid, localStart, localCount, int(values)) - end if - end function nf90_put_var_2D_FourByteInt - - - function nf90_put_var_3D_FourByteInt(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - integer (kind = FourByteInt), dimension(:, :, :), & - intent( in) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_put_var_3D_FourByteInt - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_put_var_3D_FourByteInt = & - nf_put_varm_int(ncid, varid, localStart, localCount, localStride, localMap, int(values)) - else if(present(stride)) then - nf90_put_var_3D_FourByteInt = & - nf_put_vars_int(ncid, varid, localStart, localCount, localStride, int(values)) - else - nf90_put_var_3D_FourByteInt = & - nf_put_vara_int(ncid, varid, localStart, localCount, int(values)) - end if - end function nf90_put_var_3D_FourByteInt - - - function nf90_put_var_4D_FourByteInt(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - integer (kind = FourByteInt), dimension(:, :, :, :), & - intent( in) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_put_var_4D_FourByteInt - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_put_var_4D_FourByteInt = & - nf_put_varm_int(ncid, varid, localStart, localCount, localStride, localMap, int(values)) - else if(present(stride)) then - nf90_put_var_4D_FourByteInt = & - nf_put_vars_int(ncid, varid, localStart, localCount, localStride, int(values)) - else - nf90_put_var_4D_FourByteInt = & - nf_put_vara_int(ncid, varid, localStart, localCount, int(values)) - end if - end function nf90_put_var_4D_FourByteInt - - - function nf90_put_var_5D_FourByteInt(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - integer (kind = FourByteInt), dimension(:, :, :, :, :), & - intent( in) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_put_var_5D_FourByteInt - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_put_var_5D_FourByteInt = & - nf_put_varm_int(ncid, varid, localStart, localCount, localStride, localMap, int(values)) - else if(present(stride)) then - nf90_put_var_5D_FourByteInt = & - nf_put_vars_int(ncid, varid, localStart, localCount, localStride, int(values)) - else - nf90_put_var_5D_FourByteInt = & - nf_put_vara_int(ncid, varid, localStart, localCount, int(values)) - end if - end function nf90_put_var_5D_FourByteInt - - - function nf90_put_var_6D_FourByteInt(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - integer (kind = FourByteInt), dimension(:, :, :, :, :, :), & - intent( in) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_put_var_6D_FourByteInt - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_put_var_6D_FourByteInt = & - nf_put_varm_int(ncid, varid, localStart, localCount, localStride, localMap, int(values)) - else if(present(stride)) then - nf90_put_var_6D_FourByteInt = & - nf_put_vars_int(ncid, varid, localStart, localCount, localStride, int(values)) - else - nf90_put_var_6D_FourByteInt = & - nf_put_vara_int(ncid, varid, localStart, localCount, int(values)) - end if - end function nf90_put_var_6D_FourByteInt - - - function nf90_put_var_7D_FourByteInt(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - integer (kind = FourByteInt), dimension(:, :, :, :, :, :, :), & - intent( in) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_put_var_7D_FourByteInt - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_put_var_7D_FourByteInt = & - nf_put_varm_int(ncid, varid, localStart, localCount, localStride, localMap, int(values)) - else if(present(stride)) then - nf90_put_var_7D_FourByteInt = & - nf_put_vars_int(ncid, varid, localStart, localCount, localStride, int(values)) - else - nf90_put_var_7D_FourByteInt = & - nf_put_vara_int(ncid, varid, localStart, localCount, int(values)) - end if - end function nf90_put_var_7D_FourByteInt - - - function nf90_put_var_1D_EightByteInt(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - integer (kind = EightByteInt), dimension(:), & - intent( in) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_put_var_1D_EightByteInt - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_put_var_1D_EightByteInt = & - nf_put_varm_int(ncid, varid, localStart, localCount, localStride, localMap, int(values)) - else if(present(stride)) then - nf90_put_var_1D_EightByteInt = & - nf_put_vars_int(ncid, varid, localStart, localCount, localStride, int(values)) - else - nf90_put_var_1D_EightByteInt = & - nf_put_vara_int(ncid, varid, localStart, localCount, int(values)) - end if - end function nf90_put_var_1D_EightByteInt - - - function nf90_put_var_2D_EightByteInt(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - integer (kind = EightByteInt), dimension(:, :), & - intent( in) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_put_var_2D_EightByteInt - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_put_var_2D_EightByteInt = & - nf_put_varm_int(ncid, varid, localStart, localCount, localStride, localMap, int(values)) - else if(present(stride)) then - nf90_put_var_2D_EightByteInt = & - nf_put_vars_int(ncid, varid, localStart, localCount, localStride, int(values)) - else - nf90_put_var_2D_EightByteInt = & - nf_put_vara_int(ncid, varid, localStart, localCount, int(values)) - end if - end function nf90_put_var_2D_EightByteInt - - - function nf90_put_var_3D_EightByteInt(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - integer (kind = EightByteInt), dimension(:, :, :), & - intent( in) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_put_var_3D_EightByteInt - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_put_var_3D_EightByteInt = & - nf_put_varm_int(ncid, varid, localStart, localCount, localStride, localMap, int(values)) - else if(present(stride)) then - nf90_put_var_3D_EightByteInt = & - nf_put_vars_int(ncid, varid, localStart, localCount, localStride, int(values)) - else - nf90_put_var_3D_EightByteInt = & - nf_put_vara_int(ncid, varid, localStart, localCount, int(values)) - end if - end function nf90_put_var_3D_EightByteInt - - - function nf90_put_var_4D_EightByteInt(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - integer (kind = EightByteInt), dimension(:, :, :, :), & - intent( in) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_put_var_4D_EightByteInt - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_put_var_4D_EightByteInt = & - nf_put_varm_int(ncid, varid, localStart, localCount, localStride, localMap, int(values)) - else if(present(stride)) then - nf90_put_var_4D_EightByteInt = & - nf_put_vars_int(ncid, varid, localStart, localCount, localStride, int(values)) - else - nf90_put_var_4D_EightByteInt = & - nf_put_vara_int(ncid, varid, localStart, localCount, int(values)) - end if - end function nf90_put_var_4D_EightByteInt - - - function nf90_put_var_5D_EightByteInt(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - integer (kind = EightByteInt), dimension(:, :, :, :, :), & - intent( in) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_put_var_5D_EightByteInt - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_put_var_5D_EightByteInt = & - nf_put_varm_int(ncid, varid, localStart, localCount, localStride, localMap, int(values)) - else if(present(stride)) then - nf90_put_var_5D_EightByteInt = & - nf_put_vars_int(ncid, varid, localStart, localCount, localStride, int(values)) - else - nf90_put_var_5D_EightByteInt = & - nf_put_vara_int(ncid, varid, localStart, localCount, int(values)) - end if - end function nf90_put_var_5D_EightByteInt - - - function nf90_put_var_6D_EightByteInt(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - integer (kind = EightByteInt), dimension(:, :, :, :, :, :), & - intent( in) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_put_var_6D_EightByteInt - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_put_var_6D_EightByteInt = & - nf_put_varm_int(ncid, varid, localStart, localCount, localStride, localMap, int(values)) - else if(present(stride)) then - nf90_put_var_6D_EightByteInt = & - nf_put_vars_int(ncid, varid, localStart, localCount, localStride, int(values)) - else - nf90_put_var_6D_EightByteInt = & - nf_put_vara_int(ncid, varid, localStart, localCount, int(values)) - end if - end function nf90_put_var_6D_EightByteInt - - - function nf90_put_var_7D_EightByteInt(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - integer (kind = EightByteInt), dimension(:, :, :, :, :, :, :), & - intent( in) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_put_var_7D_EightByteInt - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_put_var_7D_EightByteInt = & - nf_put_varm_int(ncid, varid, localStart, localCount, localStride, localMap, int(values)) - else if(present(stride)) then - nf90_put_var_7D_EightByteInt = & - nf_put_vars_int(ncid, varid, localStart, localCount, localStride, int(values)) - else - nf90_put_var_7D_EightByteInt = & - nf_put_vara_int(ncid, varid, localStart, localCount, int(values)) - end if - end function nf90_put_var_7D_EightByteInt - - - function nf90_put_var_1D_FourByteReal(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - real (kind = FourByteReal), dimension(:), & - intent( in) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_put_var_1D_FourByteReal - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_put_var_1D_FourByteReal = & - nf_put_varm_real(ncid, varid, localStart, localCount, localStride, localMap, values) - else if(present(stride)) then - nf90_put_var_1D_FourByteReal = & - nf_put_vars_real(ncid, varid, localStart, localCount, localStride, values) - else - nf90_put_var_1D_FourByteReal = & - nf_put_vara_real(ncid, varid, localStart, localCount, values) - end if - end function nf90_put_var_1D_FourByteReal - - - function nf90_put_var_2D_FourByteReal(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - real (kind = FourByteReal), dimension(:, :), & - intent( in) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_put_var_2D_FourByteReal - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_put_var_2D_FourByteReal = & - nf_put_varm_real(ncid, varid, localStart, localCount, localStride, localMap, values) - else if(present(stride)) then - nf90_put_var_2D_FourByteReal = & - nf_put_vars_real(ncid, varid, localStart, localCount, localStride, values) - else - nf90_put_var_2D_FourByteReal = & - nf_put_vara_real(ncid, varid, localStart, localCount, values) - end if - end function nf90_put_var_2D_FourByteReal - - - function nf90_put_var_3D_FourByteReal(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - real (kind = FourByteReal), dimension(:, :, :), & - intent( in) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_put_var_3D_FourByteReal - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_put_var_3D_FourByteReal = & - nf_put_varm_real(ncid, varid, localStart, localCount, localStride, localMap, values) - else if(present(stride)) then - nf90_put_var_3D_FourByteReal = & - nf_put_vars_real(ncid, varid, localStart, localCount, localStride, values) - else - nf90_put_var_3D_FourByteReal = & - nf_put_vara_real(ncid, varid, localStart, localCount, values) - end if - end function nf90_put_var_3D_FourByteReal - - - function nf90_put_var_4D_FourByteReal(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - real (kind = FourByteReal), dimension(:, :, :, :), & - intent( in) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_put_var_4D_FourByteReal - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_put_var_4D_FourByteReal = & - nf_put_varm_real(ncid, varid, localStart, localCount, localStride, localMap, values) - else if(present(stride)) then - nf90_put_var_4D_FourByteReal = & - nf_put_vars_real(ncid, varid, localStart, localCount, localStride, values) - else - nf90_put_var_4D_FourByteReal = & - nf_put_vara_real(ncid, varid, localStart, localCount, values) - end if - end function nf90_put_var_4D_FourByteReal - - - function nf90_put_var_5D_FourByteReal(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - real (kind = FourByteReal), dimension(:, :, :, :, :), & - intent( in) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_put_var_5D_FourByteReal - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_put_var_5D_FourByteReal = & - nf_put_varm_real(ncid, varid, localStart, localCount, localStride, localMap, values) - else if(present(stride)) then - nf90_put_var_5D_FourByteReal = & - nf_put_vars_real(ncid, varid, localStart, localCount, localStride, values) - else - nf90_put_var_5D_FourByteReal = & - nf_put_vara_real(ncid, varid, localStart, localCount, values) - end if - end function nf90_put_var_5D_FourByteReal - - - function nf90_put_var_6D_FourByteReal(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - real (kind = FourByteReal), dimension(:, :, :, :, :, :), & - intent( in) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_put_var_6D_FourByteReal - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_put_var_6D_FourByteReal = & - nf_put_varm_real(ncid, varid, localStart, localCount, localStride, localMap, values) - else if(present(stride)) then - nf90_put_var_6D_FourByteReal = & - nf_put_vars_real(ncid, varid, localStart, localCount, localStride, values) - else - nf90_put_var_6D_FourByteReal = & - nf_put_vara_real(ncid, varid, localStart, localCount, values) - end if - end function nf90_put_var_6D_FourByteReal - - - function nf90_put_var_7D_FourByteReal(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - real (kind = FourByteReal), dimension(:, :, :, :, :, :, :), & - intent( in) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_put_var_7D_FourByteReal - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_put_var_7D_FourByteReal = & - nf_put_varm_real(ncid, varid, localStart, localCount, localStride, localMap, values) - else if(present(stride)) then - nf90_put_var_7D_FourByteReal = & - nf_put_vars_real(ncid, varid, localStart, localCount, localStride, values) - else - nf90_put_var_7D_FourByteReal = & - nf_put_vara_real(ncid, varid, localStart, localCount, values) - end if - end function nf90_put_var_7D_FourByteReal - - - function nf90_put_var_1D_EightByteReal(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - real (kind = EightByteReal), dimension(:), & - intent( in) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_put_var_1D_EightByteReal - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_put_var_1D_EightByteReal = & - nf_put_varm_double(ncid, varid, localStart, localCount, localStride, localMap, values) - else if(present(stride)) then - nf90_put_var_1D_EightByteReal = & - nf_put_vars_double(ncid, varid, localStart, localCount, localStride, values) - else - nf90_put_var_1D_EightByteReal = & - nf_put_vara_double(ncid, varid, localStart, localCount, values) - end if - end function nf90_put_var_1D_EightByteReal - - - function nf90_put_var_2D_EightByteReal(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - real (kind = EightByteReal), dimension(:, :), & - intent( in) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_put_var_2D_EightByteReal - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_put_var_2D_EightByteReal = & - nf_put_varm_double(ncid, varid, localStart, localCount, localStride, localMap, values) - else if(present(stride)) then - nf90_put_var_2D_EightByteReal = & - nf_put_vars_double(ncid, varid, localStart, localCount, localStride, values) - else - nf90_put_var_2D_EightByteReal = & - nf_put_vara_double(ncid, varid, localStart, localCount, values) - end if - end function nf90_put_var_2D_EightByteReal - - - function nf90_put_var_3D_EightByteReal(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - real (kind = EightByteReal), dimension(:, :, :), & - intent( in) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_put_var_3D_EightByteReal - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_put_var_3D_EightByteReal = & - nf_put_varm_double(ncid, varid, localStart, localCount, localStride, localMap, values) - else if(present(stride)) then - nf90_put_var_3D_EightByteReal = & - nf_put_vars_double(ncid, varid, localStart, localCount, localStride, values) - else - nf90_put_var_3D_EightByteReal = & - nf_put_vara_double(ncid, varid, localStart, localCount, values) - end if - end function nf90_put_var_3D_EightByteReal - - - function nf90_put_var_4D_EightByteReal(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - real (kind = EightByteReal), dimension(:, :, :, :), & - intent( in) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_put_var_4D_EightByteReal - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_put_var_4D_EightByteReal = & - nf_put_varm_double(ncid, varid, localStart, localCount, localStride, localMap, values) - else if(present(stride)) then - nf90_put_var_4D_EightByteReal = & - nf_put_vars_double(ncid, varid, localStart, localCount, localStride, values) - else - nf90_put_var_4D_EightByteReal = & - nf_put_vara_double(ncid, varid, localStart, localCount, values) - end if - end function nf90_put_var_4D_EightByteReal - - - function nf90_put_var_5D_EightByteReal(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - real (kind = EightByteReal), dimension(:, :, :, :, :), & - intent( in) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_put_var_5D_EightByteReal - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_put_var_5D_EightByteReal = & - nf_put_varm_double(ncid, varid, localStart, localCount, localStride, localMap, values) - else if(present(stride)) then - nf90_put_var_5D_EightByteReal = & - nf_put_vars_double(ncid, varid, localStart, localCount, localStride, values) - else - nf90_put_var_5D_EightByteReal = & - nf_put_vara_double(ncid, varid, localStart, localCount, values) - end if - end function nf90_put_var_5D_EightByteReal - - - function nf90_put_var_6D_EightByteReal(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - real (kind = EightByteReal), dimension(:, :, :, :, :, :), & - intent( in) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_put_var_6D_EightByteReal - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_put_var_6D_EightByteReal = & - nf_put_varm_double(ncid, varid, localStart, localCount, localStride, localMap, values) - else if(present(stride)) then - nf90_put_var_6D_EightByteReal = & - nf_put_vars_double(ncid, varid, localStart, localCount, localStride, values) - else - nf90_put_var_6D_EightByteReal = & - nf_put_vara_double(ncid, varid, localStart, localCount, values) - end if - end function nf90_put_var_6D_EightByteReal - - - function nf90_put_var_7D_EightByteReal(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - real (kind = EightByteReal), dimension(:, :, :, :, :, :, :), & - intent( in) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_put_var_7D_EightByteReal - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_put_var_7D_EightByteReal = & - nf_put_varm_double(ncid, varid, localStart, localCount, localStride, localMap, values) - else if(present(stride)) then - nf90_put_var_7D_EightByteReal = & - nf_put_vars_double(ncid, varid, localStart, localCount, localStride, values) - else - nf90_put_var_7D_EightByteReal = & - nf_put_vara_double(ncid, varid, localStart, localCount, values) - end if - end function nf90_put_var_7D_EightByteReal - - - function nf90_get_var_1D_OneByteInt(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - integer (kind = OneByteInt), dimension(:), & - intent(out) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_get_var_1D_OneByteInt - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_get_var_1D_OneByteInt = & - nf_get_varm_int1(ncid, varid, localStart, localCount, localStride, localMap, values) - else if(present(stride)) then - nf90_get_var_1D_OneByteInt = & - nf_get_vars_int1(ncid, varid, localStart, localCount, localStride, values) - else - nf90_get_var_1D_OneByteInt = & - nf_get_vara_int1(ncid, varid, localStart, localCount, values) - end if - end function nf90_get_var_1D_OneByteInt - - - function nf90_get_var_2D_OneByteInt(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - integer (kind = OneByteInt), dimension(:, :), & - intent(out) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_get_var_2D_OneByteInt - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_get_var_2D_OneByteInt = & - nf_get_varm_int1(ncid, varid, localStart, localCount, localStride, localMap, values) - else if(present(stride)) then - nf90_get_var_2D_OneByteInt = & - nf_get_vars_int1(ncid, varid, localStart, localCount, localStride, values) - else - nf90_get_var_2D_OneByteInt = & - nf_get_vara_int1(ncid, varid, localStart, localCount, values) - end if - end function nf90_get_var_2D_OneByteInt - - - function nf90_get_var_3D_OneByteInt(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - integer (kind = OneByteInt), dimension(:, :, :), & - intent(out) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_get_var_3D_OneByteInt - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_get_var_3D_OneByteInt = & - nf_get_varm_int1(ncid, varid, localStart, localCount, localStride, localMap, values) - else if(present(stride)) then - nf90_get_var_3D_OneByteInt = & - nf_get_vars_int1(ncid, varid, localStart, localCount, localStride, values) - else - nf90_get_var_3D_OneByteInt = & - nf_get_vara_int1(ncid, varid, localStart, localCount, values) - end if - end function nf90_get_var_3D_OneByteInt - - - function nf90_get_var_4D_OneByteInt(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - integer (kind = OneByteInt), dimension(:, :, :, :), & - intent(out) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_get_var_4D_OneByteInt - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_get_var_4D_OneByteInt = & - nf_get_varm_int1(ncid, varid, localStart, localCount, localStride, localMap, values) - else if(present(stride)) then - nf90_get_var_4D_OneByteInt = & - nf_get_vars_int1(ncid, varid, localStart, localCount, localStride, values) - else - nf90_get_var_4D_OneByteInt = & - nf_get_vara_int1(ncid, varid, localStart, localCount, values) - end if - end function nf90_get_var_4D_OneByteInt - - - function nf90_get_var_5D_OneByteInt(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - integer (kind = OneByteInt), dimension(:, :, :, :, :), & - intent(out) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_get_var_5D_OneByteInt - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_get_var_5D_OneByteInt = & - nf_get_varm_int1(ncid, varid, localStart, localCount, localStride, localMap, values) - else if(present(stride)) then - nf90_get_var_5D_OneByteInt = & - nf_get_vars_int1(ncid, varid, localStart, localCount, localStride, values) - else - nf90_get_var_5D_OneByteInt = & - nf_get_vara_int1(ncid, varid, localStart, localCount, values) - end if - end function nf90_get_var_5D_OneByteInt - - - function nf90_get_var_6D_OneByteInt(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - integer (kind = OneByteInt), dimension(:, :, :, :, :, :), & - intent(out) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_get_var_6D_OneByteInt - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_get_var_6D_OneByteInt = & - nf_get_varm_int1(ncid, varid, localStart, localCount, localStride, localMap, values) - else if(present(stride)) then - nf90_get_var_6D_OneByteInt = & - nf_get_vars_int1(ncid, varid, localStart, localCount, localStride, values) - else - nf90_get_var_6D_OneByteInt = & - nf_get_vara_int1(ncid, varid, localStart, localCount, values) - end if - end function nf90_get_var_6D_OneByteInt - - - function nf90_get_var_7D_OneByteInt(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - integer (kind = OneByteInt), dimension(:, :, :, :, :, :, :), & - intent(out) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_get_var_7D_OneByteInt - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_get_var_7D_OneByteInt = & - nf_get_varm_int1(ncid, varid, localStart, localCount, localStride, localMap, values) - else if(present(stride)) then - nf90_get_var_7D_OneByteInt = & - nf_get_vars_int1(ncid, varid, localStart, localCount, localStride, values) - else - nf90_get_var_7D_OneByteInt = & - nf_get_vara_int1(ncid, varid, localStart, localCount, values) - end if - end function nf90_get_var_7D_OneByteInt - - - function nf90_get_var_1D_TwoByteInt(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - integer (kind = TwoByteInt), dimension(:), & - intent(out) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_get_var_1D_TwoByteInt - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_get_var_1D_TwoByteInt = & - nf_get_varm_int2(ncid, varid, localStart, localCount, localStride, localMap, values) - else if(present(stride)) then - nf90_get_var_1D_TwoByteInt = & - nf_get_vars_int2(ncid, varid, localStart, localCount, localStride, values) - else - nf90_get_var_1D_TwoByteInt = & - nf_get_vara_int2(ncid, varid, localStart, localCount, values) - end if - end function nf90_get_var_1D_TwoByteInt - - - function nf90_get_var_2D_TwoByteInt(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - integer (kind = TwoByteInt), dimension(:, :), & - intent(out) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_get_var_2D_TwoByteInt - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_get_var_2D_TwoByteInt = & - nf_get_varm_int2(ncid, varid, localStart, localCount, localStride, localMap, values) - else if(present(stride)) then - nf90_get_var_2D_TwoByteInt = & - nf_get_vars_int2(ncid, varid, localStart, localCount, localStride, values) - else - nf90_get_var_2D_TwoByteInt = & - nf_get_vara_int2(ncid, varid, localStart, localCount, values) - end if - end function nf90_get_var_2D_TwoByteInt - - - function nf90_get_var_3D_TwoByteInt(ncid, varid, values, start, count, stride, map) - integer, intent( in) :: ncid, varid - integer (kind = TwoByteInt), dimension(:, :, :), & - intent(out) :: values - integer, dimension(:), optional, intent( in) :: start, count, stride, map - integer :: nf90_get_var_3D_TwoByteInt - - integer, dimension(nf90_max_var_dims) :: localStart, localCount, localStride, localMap - integer :: numDims, counter - - ! Set local arguments to default values - numDims = size(shape(values)) - localStart (: ) = 1 - localCount (:numDims ) = shape(values) - localCount (numDims+1:) = 1 - localStride(: ) = 1 - localMap (:numDims ) = (/ 1, (product(localCount(:counter)), counter = 1, numDims - 1) /) - - if(present(start)) localStart (:size(start) ) = start(:) - if(present(count)) localCount (:size(count) ) = count(:) - if(present(stride)) localStride(:size(stride)) = stride(:) - if(present(map)) then - localMap (:size(map)) = map(:) - nf90_get_var_3D_TwoByteInt = & - nf_get_varm_int2(ncid, varid, localStart, localCount, localStride, localMap, values) - else if(present(stride)) then - nf90_get_var_3D_TwoByteInt = & -