!     -*- f90 -*-
!     This file is autogenerated with f2py (version:1.26.2)
!     It contains Fortran 90 wrappers to fortran functions.

      subroutine f2py_diag2python_getdims_chararray1d(r,s,f2pysetdata,fl&
     &ag)
      use diag2python, only: d => chararray1d

      integer flag
      external f2pysetdata
      logical ns
      integer r,i
      integer(8) s(*)
      ns = .FALSE.
      if (allocated(d)) then
         do i=1,r
            if ((size(d,i).ne.s(i)).and.(s(i).ge.0)) then
               ns = .TRUE.
            end if
         end do
         if (ns) then
            deallocate(d)
         end if
      end if
      if ((.not.allocated(d)).and.(s(1).ge.1)) then
       allocate(d(s(1)))
      end if
      if (allocated(d)) then
         do i=1,r
            s(i) = size(d,i)
         end do
      end if
      flag = 1
      call f2pysetdata(d,allocated(d))
      end subroutine f2py_diag2python_getdims_chararray1d
      subroutine f2py_diag2python_getdims_chararray2d(r,s,f2pysetdata,fl&
     &ag)
      use diag2python, only: d => chararray2d

      integer flag
      external f2pysetdata
      logical ns
      integer r,i
      integer(8) s(*)
      ns = .FALSE.
      if (allocated(d)) then
         do i=1,r
            if ((size(d,i).ne.s(i)).and.(s(i).ge.0)) then
               ns = .TRUE.
            end if
         end do
         if (ns) then
            deallocate(d)
         end if
      end if
      if ((.not.allocated(d)).and.(s(1).ge.1)) then
       allocate(d(s(1),s(2)))
      end if
      if (allocated(d)) then
         do i=1,r
            s(i) = size(d,i)
         end do
      end if
      flag = 1
      call f2pysetdata(d,allocated(d))
      end subroutine f2py_diag2python_getdims_chararray2d
      subroutine f2py_diag2python_getdims_array1d(r,s,f2pysetdata,flag)
      use diag2python, only: d => array1d

      integer flag
      external f2pysetdata
      logical ns
      integer r,i
      integer(8) s(*)
      ns = .FALSE.
      if (allocated(d)) then
         do i=1,r
            if ((size(d,i).ne.s(i)).and.(s(i).ge.0)) then
               ns = .TRUE.
            end if
         end do
         if (ns) then
            deallocate(d)
         end if
      end if
      if ((.not.allocated(d)).and.(s(1).ge.1)) then
       allocate(d(s(1)))
      end if
      if (allocated(d)) then
         do i=1,r
            s(i) = size(d,i)
         end do
      end if
      flag = 1
      call f2pysetdata(d,allocated(d))
      end subroutine f2py_diag2python_getdims_array1d
      subroutine f2py_diag2python_getdims_array2d(r,s,f2pysetdata,flag)
      use diag2python, only: d => array2d

      integer flag
      external f2pysetdata
      logical ns
      integer r,i
      integer(8) s(*)
      ns = .FALSE.
      if (allocated(d)) then
         do i=1,r
            if ((size(d,i).ne.s(i)).and.(s(i).ge.0)) then
               ns = .TRUE.
            end if
         end do
         if (ns) then
            deallocate(d)
         end if
      end if
      if ((.not.allocated(d)).and.(s(1).ge.1)) then
       allocate(d(s(1),s(2)))
      end if
      if (allocated(d)) then
         do i=1,r
            s(i) = size(d,i)
         end do
      end if
      flag = 1
      call f2pysetdata(d,allocated(d))
      end subroutine f2py_diag2python_getdims_array2d
      subroutine f2py_diag2python_getdims_array3d(r,s,f2pysetdata,flag)
      use diag2python, only: d => array3d

      integer flag
      external f2pysetdata
      logical ns
      integer r,i
      integer(8) s(*)
      ns = .FALSE.
      if (allocated(d)) then
         do i=1,r
            if ((size(d,i).ne.s(i)).and.(s(i).ge.0)) then
               ns = .TRUE.
            end if
         end do
         if (ns) then
            deallocate(d)
         end if
      end if
      if ((.not.allocated(d)).and.(s(1).ge.1)) then
       allocate(d(s(1),s(2),s(3)))
      end if
      if (allocated(d)) then
         do i=1,r
            s(i) = size(d,i)
         end do
      end if
      flag = 1
      call f2pysetdata(d,allocated(d))
      end subroutine f2py_diag2python_getdims_array3d
      subroutine f2pywrap_diag2python_open (openf2pywrap, filename, file&
     &name2, isis, f2py_isis_d0, f2py_isis_d1)
      use diag2python, only : open
      integer f2py_isis_d0
      integer f2py_isis_d1
      character(len=*) filename
      character(len=*) filename2
      character isis(f2py_isis_d0,f2py_isis_d1)
      integer openf2pywrap
      openf2pywrap = open(filename, filename2, isis)
      end subroutine f2pywrap_diag2python_open
      subroutine f2pywrap_diag2python_close (closef2pywrap, fnumber)
      use diag2python, only : close
      integer fnumber
      integer closef2pywrap
      closef2pywrap = close(fnumber)
      end subroutine f2pywrap_diag2python_close
      subroutine f2pywrap_diag2python_getnvars (getnvarsf2pywrap, fnumbe&
     &r)
      use diag2python, only : getnvars
      integer fnumber
      integer getnvarsf2pywrap
      getnvarsf2pywrap = getnvars(fnumber)
      end subroutine f2pywrap_diag2python_getnvars
      subroutine f2pywrap_diag2python_getFileType (getFileTypef2pywrap, &
     &FNumber)
      use diag2python, only : getFileType
      integer FNumber
      integer getFileTypef2pywrap
      getFileTypef2pywrap = getFileType(FNumber)
      end subroutine f2pywrap_diag2python_getFileType
      subroutine f2pywrap_diag2python_getUndef (getUndeff2pywrap, FNumbe&
     &r)
      use diag2python, only : getUndef
      integer FNumber
      real getUndeff2pywrap
      getUndeff2pywrap = getUndef(FNumber)
      end subroutine f2pywrap_diag2python_getUndef
      
      subroutine f2pyinitdiag2python(f2pysetupfunc)
      use diag2python, only : chararray1d
      use diag2python, only : chararray2d
      use diag2python, only : array1d
      use diag2python, only : array2d
      use diag2python, only : array3d
      use diag2python, only : getvarinfo
      use diag2python, only : getObsVarInfo
      use diag2python, only : getVarTypes
      use diag2python, only : getobs
      interface 
      subroutine f2pywrap_diag2python_open (openf2pywrap, filename, file&
     &name2, isis, f2py_isis_d0, f2py_isis_d1)
      integer f2py_isis_d0
      integer f2py_isis_d1
      character(len=*) filename
      character(len=*) filename2
      character isis(f2py_isis_d0,f2py_isis_d1)
      integer openf2pywrap
      end subroutine f2pywrap_diag2python_open 
      subroutine f2pywrap_diag2python_close (closef2pywrap, fnumber)
      integer fnumber
      integer closef2pywrap
      end subroutine f2pywrap_diag2python_close 
      subroutine f2pywrap_diag2python_getnvars (getnvarsf2pywrap, fnumbe&
     &r)
      integer fnumber
      integer getnvarsf2pywrap
      end subroutine f2pywrap_diag2python_getnvars 
      subroutine f2pywrap_diag2python_getFileType (getFileTypef2pywrap, &
     &FNumber)
      integer FNumber
      integer getFileTypef2pywrap
      end subroutine f2pywrap_diag2python_getFileType 
      subroutine f2pywrap_diag2python_getUndef (getUndeff2pywrap, FNumbe&
     &r)
      integer FNumber
      real getUndeff2pywrap
      end subroutine f2pywrap_diag2python_getUndef
      end interface
      external f2pysetupfunc
      external f2py_diag2python_getdims_chararray1d
      external f2py_diag2python_getdims_chararray2d
      external f2py_diag2python_getdims_array1d
      external f2py_diag2python_getdims_array2d
      external f2py_diag2python_getdims_array3d
      call f2pysetupfunc(f2py_diag2python_getdims_chararray1d,f2py_diag2&
     &python_getdims_chararray2d,f2py_diag2python_getdims_array1d,f2py_d&
     &iag2python_getdims_array2d,f2py_diag2python_getdims_array3d,f2pywr&
     &ap_diag2python_open,f2pywrap_diag2python_close,getvarinfo,f2pywrap&
     &_diag2python_getnvars,getObsVarInfo,getVarTypes,getobs,f2pywrap_di&
     &ag2python_getFileType,f2pywrap_diag2python_getUndef)
      end subroutine f2pyinitdiag2python


