File: nveaput48.m4

package info (click to toggle)
netcdf-fortran 4.4.4%2Bds-2
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 8,420 kB
  • ctags: 8,797
  • sloc: fortran: 51,087; f90: 20,357; sh: 11,601; ansic: 7,034; makefile: 548; pascal: 313; xml: 173
file content (33 lines) | stat: -rw-r--r-- 1,531 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
   function NF90_AFUN`'(ncid, varid, values, start, count, stride, map)
     integer,                         intent( in) :: ncid, varid
     TYPE, dimension(COLONS), &
                                      intent(IN_OR_OUT) :: values
     integer, dimension(:), optional, intent( in) :: start, count, stride, map
     integer                                      :: NF90_AFUN
 
     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_AFUN = &
          NF_MFUN`'(ncid, varid, localStart, localCount, localStride, localMap, int(values))
     else if(present(stride)) then
       NF90_AFUN = &
          NF_SFUN`'(ncid, varid, localStart, localCount, localStride, int(values))
     else
       NF90_AFUN = &
          NF_AFUN`'(ncid, varid, localStart, localCount, int(values))
     end if
   end function NF90_AFUN