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

      
      subroutine f2pyinitmo_rtmodel(f2pysetupfunc)
      use mo_rtmodel, only : skab
      use mo_rtmodel, only : lad
      use mo_rtmodel, only : rtmodel_nparam
      use mo_rtmodel, only : rtmodel_param_names
      use mo_rtmodel, only : xkar
      use mo_rtmodel, only : xleafn_ad
      use mo_rtmodel, only : xleafn
      use mo_rtmodel, only : skar
      use mo_rtmodel, only : slai
      use mo_rtmodel, only : rpl
      use mo_rtmodel, only : xkab
      use mo_rtmodel, only : xs2
      use mo_rtmodel, only : xs3
      use mo_rtmodel, only : skw
      use mo_rtmodel, only : xs1
      use mo_rtmodel, only : xs4
      use mo_rtmodel, only : xkm
      use mo_rtmodel, only : xs2_ad
      use mo_rtmodel, only : rtmodel_spectralinterval
      use mo_rtmodel, only : nwmax
      use mo_rtmodel, only : xs4_ad
      use mo_rtmodel, only : xs1_ad
      use mo_rtmodel, only : skm
      use mo_rtmodel, only : xlai_ad
      use mo_rtmodel, only : xkw
      use mo_rtmodel, only : xkar_ad
      use mo_rtmodel, only : rtmodel_version
      use mo_rtmodel, only : xkw_ad
      use mo_rtmodel, only : xkm_ad
      use mo_rtmodel, only : rtmodel_subversion
      use mo_rtmodel, only : rtmodel_spectralmax
      use mo_rtmodel, only : rtmodel_spectralmin
      use mo_rtmodel, only : xhc
      use mo_rtmodel, only : rpl_ad
      use mo_rtmodel, only : xlai
      use mo_rtmodel, only : xhc_ad
      use mo_rtmodel, only : rtmodel_param_minmax
      use mo_rtmodel, only : xs3_ad
      use mo_rtmodel, only : xkab_ad
      external f2pysetupfunc
      call f2pysetupfunc(skab,lad,rtmodel_nparam,rtmodel_param_names,xka&
     &r,xleafn_ad,xleafn,skar,slai,rpl,xkab,xs2,xs3,skw,xs1,xs4,xkm,xs2_&
     &ad,rtmodel_spectralinterval,nwmax,xs4_ad,xs1_ad,skm,xlai_ad,xkw,xk&
     &ar_ad,rtmodel_version,xkw_ad,xkm_ad,rtmodel_subversion,rtmodel_spe&
     &ctralmax,rtmodel_spectralmin,xhc,rpl_ad,xlai,xhc_ad,rtmodel_param_&
     &minmax,xs3_ad,xkab_ad)
      end subroutine f2pyinitmo_rtmodel

      
      subroutine f2pyinitspectrum_width_p5(f2pysetupfunc)
      use spectrum_width_p5, only : nlmax
      use spectrum_width_p5, only : nl
      external f2pysetupfunc
      call f2pysetupfunc(nlmax,nl)
      end subroutine f2pyinitspectrum_width_p5

      subroutine f2py_dataspec_p5_getdims_acar(r,s,f2pysetdata,flag)
      use dataspec_p5, only: d => acar

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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_dataspec_p5_getdims_acar
      subroutine f2py_dataspec_p5_getdims_acab(r,s,f2pysetdata,flag)
      use dataspec_p5, only: d => acab

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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_dataspec_p5_getdims_acab
      subroutine f2py_dataspec_p5_getdims_phis4(r,s,f2pysetdata,flag)
      use dataspec_p5, only: d => phis4

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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_dataspec_p5_getdims_phis4
      subroutine f2py_dataspec_p5_getdims_phis1(r,s,f2pysetdata,flag)
      use dataspec_p5, only: d => phis1

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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_dataspec_p5_getdims_phis1
      subroutine f2py_dataspec_p5_getdims_phis3(r,s,f2pysetdata,flag)
      use dataspec_p5, only: d => phis3

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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_dataspec_p5_getdims_phis3
      subroutine f2py_dataspec_p5_getdims_phis2(r,s,f2pysetdata,flag)
      use dataspec_p5, only: d => phis2

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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_dataspec_p5_getdims_phis2
      subroutine f2py_dataspec_p5_getdims_nrefrac(r,s,f2pysetdata,flag)
      use dataspec_p5, only: d => nrefrac

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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_dataspec_p5_getdims_nrefrac
      subroutine f2py_dataspec_p5_getdims_acm(r,s,f2pysetdata,flag)
      use dataspec_p5, only: d => acm

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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_dataspec_p5_getdims_acm
      subroutine f2py_dataspec_p5_getdims_acw(r,s,f2pysetdata,flag)
      use dataspec_p5, only: d => acw

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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_dataspec_p5_getdims_acw
      subroutine f2py_dataspec_p5_getdims_lambda(r,s,f2pysetdata,flag)
      use dataspec_p5, only: d => lambda

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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_dataspec_p5_getdims_lambda
      
      subroutine f2pyinitdataspec_p5(f2pysetupfunc)
      use dataspec_p5, only : acabfull
      use dataspec_p5, only : nrefracfull
      use dataspec_p5, only : acmfull
      use dataspec_p5, only : phis3full
      use dataspec_p5, only : acwfull
      use dataspec_p5, only : acar
      use dataspec_p5, only : acab
      use dataspec_p5, only : phis4
      use dataspec_p5, only : phis4full
      use dataspec_p5, only : phis1full
      use dataspec_p5, only : phis1
      use dataspec_p5, only : phis3
      use dataspec_p5, only : phis2
      use dataspec_p5, only : lambdafull
      use dataspec_p5, only : nrefrac
      use dataspec_p5, only : acm
      use dataspec_p5, only : acarfull
      use dataspec_p5, only : acw
      use dataspec_p5, only : itmp
      use dataspec_p5, only : phis2full
      use dataspec_p5, only : lambda
      external f2pysetupfunc
      external f2py_dataspec_p5_getdims_acar
      external f2py_dataspec_p5_getdims_acab
      external f2py_dataspec_p5_getdims_phis4
      external f2py_dataspec_p5_getdims_phis1
      external f2py_dataspec_p5_getdims_phis3
      external f2py_dataspec_p5_getdims_phis2
      external f2py_dataspec_p5_getdims_nrefrac
      external f2py_dataspec_p5_getdims_acm
      external f2py_dataspec_p5_getdims_acw
      external f2py_dataspec_p5_getdims_lambda
      call f2pysetupfunc(acabfull,nrefracfull,acmfull,phis3full,acwfull,&
     &f2py_dataspec_p5_getdims_acar,f2py_dataspec_p5_getdims_acab,f2py_d&
     &ataspec_p5_getdims_phis4,phis4full,phis1full,f2py_dataspec_p5_getd&
     &ims_phis1,f2py_dataspec_p5_getdims_phis3,f2py_dataspec_p5_getdims_&
     &phis2,lambdafull,f2py_dataspec_p5_getdims_nrefrac,f2py_dataspec_p5&
     &_getdims_acm,acarfull,f2py_dataspec_p5_getdims_acw,itmp,phis2full,&
     &f2py_dataspec_p5_getdims_lambda)
      end subroutine f2pyinitdataspec_p5

      subroutine f2py_multiple_dom_store_ad_getdims_multl_s_3h(r,s,f2pys&
     &etdata,flag)
      use multiple_dom_store_ad, only: d => multl_s_3h

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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),s(4)))
      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_multiple_dom_store_ad_getdims_multl_s_3h
      subroutine f2py_multiple_dom_store_ad_getdims_multl_xi_4h(r,s,f2py&
     &setdata,flag)
      use multiple_dom_store_ad, only: d => multl_xi_4h

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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),s(4)))
      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_multiple_dom_store_ad_getdims_multl_xi_4h
      subroutine f2py_multiple_dom_store_ad_getdims_multkl_xi_1h(r,s,f2p&
     &ysetdata,flag)
      use multiple_dom_store_ad, only: d => multkl_xi_1h

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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_multiple_dom_store_ad_getdims_multkl_xi_1h
      subroutine f2py_multiple_dom_store_ad_getdims_multl_s_1h(r,s,f2pys&
     &etdata,flag)
      use multiple_dom_store_ad, only: d => multl_s_1h

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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),s(4)))
      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_multiple_dom_store_ad_getdims_multl_s_1h
      subroutine f2py_multiple_dom_store_ad_getdims_multkl_xi_2h(r,s,f2p&
     &ysetdata,flag)
      use multiple_dom_store_ad, only: d => multkl_xi_2h

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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_multiple_dom_store_ad_getdims_multkl_xi_2h
      subroutine f2py_multiple_dom_store_ad_getdims_multl_xi_2h(r,s,f2py&
     &setdata,flag)
      use multiple_dom_store_ad, only: d => multl_xi_2h

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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),s(4)))
      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_multiple_dom_store_ad_getdims_multl_xi_2h
      
      subroutine f2pyinitmultiple_dom_store_ad(f2pysetupfunc)
      use multiple_dom_store_ad, only : multkl_multiple_dom
      use multiple_dom_store_ad, only : multl_s_3h
      use multiple_dom_store_ad, only : multl_xi_4h
      use multiple_dom_store_ad, only : multkl_xi_1h
      use multiple_dom_store_ad, only : multl_multiple_dom
      use multiple_dom_store_ad, only : multl_s_1h
      use multiple_dom_store_ad, only : multkl_xi_2h
      use multiple_dom_store_ad, only : multl_xi_2h
      external f2pysetupfunc
      external f2py_multiple_dom_store_ad_getdims_multl_s_3h
      external f2py_multiple_dom_store_ad_getdims_multl_xi_4h
      external f2py_multiple_dom_store_ad_getdims_multkl_xi_1h
      external f2py_multiple_dom_store_ad_getdims_multl_s_1h
      external f2py_multiple_dom_store_ad_getdims_multkl_xi_2h
      external f2py_multiple_dom_store_ad_getdims_multl_xi_2h
      call f2pysetupfunc(multkl_multiple_dom,f2py_multiple_dom_store_ad_&
     &getdims_multl_s_3h,f2py_multiple_dom_store_ad_getdims_multl_xi_4h,&
     &f2py_multiple_dom_store_ad_getdims_multkl_xi_1h,multl_multiple_dom&
     &,f2py_multiple_dom_store_ad_getdims_multl_s_1h,f2py_multiple_dom_s&
     &tore_ad_getdims_multkl_xi_2h,f2py_multiple_dom_store_ad_getdims_mu&
     &ltl_xi_2h)
      end subroutine f2pyinitmultiple_dom_store_ad

      subroutine f2py_mo_nad_getdims_h_c_ad(r,s,f2pysetdata,flag)
      use mo_nad, only: d => h_c_ad

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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_mo_nad_getdims_h_c_ad
      subroutine f2py_mo_nad_getdims_x_nf(r,s,f2pysetdata,flag)
      use mo_nad, only: d => x_nf

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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_mo_nad_getdims_x_nf
      subroutine f2py_mo_nad_getdims_tl_ad(r,s,f2pysetdata,flag)
      use mo_nad, only: d => tl_ad

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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_mo_nad_getdims_tl_ad
      subroutine f2py_mo_nad_getdims_df_ad(r,s,f2pysetdata,flag)
      use mo_nad, only: d => df_ad

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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_mo_nad_getdims_df_ad
      subroutine f2py_mo_nad_getdims_ximt_ad(r,s,f2pysetdata,flag)
      use mo_nad, only: d => ximt_ad

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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_mo_nad_getdims_ximt_ad
      subroutine f2py_mo_nad_getdims_h_c(r,s,f2pysetdata,flag)
      use mo_nad, only: d => h_c

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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_mo_nad_getdims_h_c
      subroutine f2py_mo_nad_getdims_xif(r,s,f2pysetdata,flag)
      use mo_nad, only: d => xif

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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_mo_nad_getdims_xif
      subroutine f2py_mo_nad_getdims_xi1u(r,s,f2pysetdata,flag)
      use mo_nad, only: d => xi1u

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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_mo_nad_getdims_xi1u
      subroutine f2py_mo_nad_getdims_xi1u_ad(r,s,f2pysetdata,flag)
      use mo_nad, only: d => xi1u_ad

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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_mo_nad_getdims_xi1u_ad
      subroutine f2py_mo_nad_getdims_rs_ad(r,s,f2pysetdata,flag)
      use mo_nad, only: d => rs_ad

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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_mo_nad_getdims_rs_ad
      subroutine f2py_mo_nad_getdims_xif_ad(r,s,f2pysetdata,flag)
      use mo_nad, only: d => xif_ad

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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_mo_nad_getdims_xif_ad
      subroutine f2py_mo_nad_getdims_tl(r,s,f2pysetdata,flag)
      use mo_nad, only: d => tl

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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_mo_nad_getdims_tl
      subroutine f2py_mo_nad_getdims_rl_ad(r,s,f2pysetdata,flag)
      use mo_nad, only: d => rl_ad

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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_mo_nad_getdims_rl_ad
      subroutine f2py_mo_nad_getdims_rl(r,s,f2pysetdata,flag)
      use mo_nad, only: d => rl

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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_mo_nad_getdims_rl
      subroutine f2py_mo_nad_getdims_i0(r,s,f2pysetdata,flag)
      use mo_nad, only: d => i0

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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_mo_nad_getdims_i0
      subroutine f2py_mo_nad_getdims_lai(r,s,f2pysetdata,flag)
      use mo_nad, only: d => lai

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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_mo_nad_getdims_lai
      subroutine f2py_mo_nad_getdims_df(r,s,f2pysetdata,flag)
      use mo_nad, only: d => df

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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_mo_nad_getdims_df
      subroutine f2py_mo_nad_getdims_xi1_ad(r,s,f2pysetdata,flag)
      use mo_nad, only: d => xi1_ad

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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_mo_nad_getdims_xi1_ad
      subroutine f2py_mo_nad_getdims_r_ad(r,s,f2pysetdata,flag)
      use mo_nad, only: d => r_ad

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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_mo_nad_getdims_r_ad
      subroutine f2py_mo_nad_getdims_c1_ad(r,s,f2pysetdata,flag)
      use mo_nad, only: d => c1_ad

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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_mo_nad_getdims_c1_ad
      subroutine f2py_mo_nad_getdims_a_f(r,s,f2pysetdata,flag)
      use mo_nad, only: d => a_f

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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_mo_nad_getdims_a_f
      subroutine f2py_mo_nad_getdims_c1(r,s,f2pysetdata,flag)
      use mo_nad, only: d => c1

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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_mo_nad_getdims_c1
      subroutine f2py_mo_nad_getdims_x_ly(r,s,f2pysetdata,flag)
      use mo_nad, only: d => x_ly

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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_mo_nad_getdims_x_ly
      subroutine f2py_mo_nad_getdims_rs(r,s,f2pysetdata,flag)
      use mo_nad, only: d => rs

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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_mo_nad_getdims_rs
      subroutine f2py_mo_nad_getdims_a_f_ad(r,s,f2pysetdata,flag)
      use mo_nad, only: d => a_f_ad

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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_mo_nad_getdims_a_f_ad
      subroutine f2py_mo_nad_getdims_lai_ad(r,s,f2pysetdata,flag)
      use mo_nad, only: d => lai_ad

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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_mo_nad_getdims_lai_ad
      subroutine f2py_mo_nad_getdims_xi1(r,s,f2pysetdata,flag)
      use mo_nad, only: d => xi1

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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_mo_nad_getdims_xi1
      subroutine f2py_mo_nad_getdims_r(r,s,f2pysetdata,flag)
      use mo_nad, only: d => r

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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_mo_nad_getdims_r
      subroutine f2py_mo_nad_getdims_i0_ad(r,s,f2pysetdata,flag)
      use mo_nad, only: d => i0_ad

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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_mo_nad_getdims_i0_ad
      subroutine f2py_mo_nad_getdims_ximt(r,s,f2pysetdata,flag)
      use mo_nad, only: d => ximt

      integer flag
      external f2pysetdata
      logical ns
      integer r,i,j
      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_mo_nad_getdims_ximt
      
      subroutine f2pyinitmo_nad(f2pysetupfunc)
      use mo_nad, only : h_c_ad
      use mo_nad, only : x_nf
      use mo_nad, only : tl_ad
      use mo_nad, only : ag
      use mo_nad, only : df_ad
      use mo_nad, only : ximt_ad
      use mo_nad, only : cg
      use mo_nad, only : number
      use mo_nad, only : h_c
      use mo_nad, only : nlm
      use mo_nad, only : n_c
      use mo_nad, only : nwmaxx
      use mo_nad, only : xif
      use mo_nad, only : xi1u
      use mo_nad, only : xi1u_ad
      use mo_nad, only : rs_ad
      use mo_nad, only : xif_ad
      use mo_nad, only : tl
      use mo_nad, only : points
      use mo_nad, only : rl_ad
      use mo_nad, only : rl
      use mo_nad, only : pi
      use mo_nad, only : nw
      use mo_nad, only : i0
      use mo_nad, only : bg
      use mo_nad, only : lai
      use mo_nad, only : phi_0
      use mo_nad, only : df
      use mo_nad, only : dg
      use mo_nad, only : xi1_ad
      use mo_nad, only : r_ad
      use mo_nad, only : c1_ad
      use mo_nad, only : a_f
      use mo_nad, only : c1
      use mo_nad, only : ild
      use mo_nad, only : x_ly
      use mo_nad, only : rs
      use mo_nad, only : a_f_ad
      use mo_nad, only : lai_ad
      use mo_nad, only : xi1
      use mo_nad, only : r
      use mo_nad, only : weights
      use mo_nad, only : teta_0
      use mo_nad, only : i0_ad
      use mo_nad, only : ximt
      external f2pysetupfunc
      external f2py_mo_nad_getdims_h_c_ad
      external f2py_mo_nad_getdims_x_nf
      external f2py_mo_nad_getdims_tl_ad
      external f2py_mo_nad_getdims_df_ad
      external f2py_mo_nad_getdims_ximt_ad
      external f2py_mo_nad_getdims_h_c
      external f2py_mo_nad_getdims_xif
      external f2py_mo_nad_getdims_xi1u
      external f2py_mo_nad_getdims_xi1u_ad
      external f2py_mo_nad_getdims_rs_ad
      external f2py_mo_nad_getdims_xif_ad
      external f2py_mo_nad_getdims_tl
      external f2py_mo_nad_getdims_rl_ad
      external f2py_mo_nad_getdims_rl
      external f2py_mo_nad_getdims_i0
      external f2py_mo_nad_getdims_lai
      external f2py_mo_nad_getdims_df
      external f2py_mo_nad_getdims_xi1_ad
      external f2py_mo_nad_getdims_r_ad
      external f2py_mo_nad_getdims_c1_ad
      external f2py_mo_nad_getdims_a_f
      external f2py_mo_nad_getdims_c1
      external f2py_mo_nad_getdims_x_ly
      external f2py_mo_nad_getdims_rs
      external f2py_mo_nad_getdims_a_f_ad
      external f2py_mo_nad_getdims_lai_ad
      external f2py_mo_nad_getdims_xi1
      external f2py_mo_nad_getdims_r
      external f2py_mo_nad_getdims_i0_ad
      external f2py_mo_nad_getdims_ximt
      call f2pysetupfunc(f2py_mo_nad_getdims_h_c_ad,f2py_mo_nad_getdims_&
     &x_nf,f2py_mo_nad_getdims_tl_ad,ag,f2py_mo_nad_getdims_df_ad,f2py_m&
     &o_nad_getdims_ximt_ad,cg,number,f2py_mo_nad_getdims_h_c,nlm,n_c,nw&
     &maxx,f2py_mo_nad_getdims_xif,f2py_mo_nad_getdims_xi1u,f2py_mo_nad_&
     &getdims_xi1u_ad,f2py_mo_nad_getdims_rs_ad,f2py_mo_nad_getdims_xif_&
     &ad,f2py_mo_nad_getdims_tl,points,f2py_mo_nad_getdims_rl_ad,f2py_mo&
     &_nad_getdims_rl,pi,nw,f2py_mo_nad_getdims_i0,bg,f2py_mo_nad_getdim&
     &s_lai,phi_0,f2py_mo_nad_getdims_df,dg,f2py_mo_nad_getdims_xi1_ad,f&
     &2py_mo_nad_getdims_r_ad,f2py_mo_nad_getdims_c1_ad,f2py_mo_nad_getd&
     &ims_a_f,f2py_mo_nad_getdims_c1,ild,f2py_mo_nad_getdims_x_ly,f2py_m&
     &o_nad_getdims_rs,f2py_mo_nad_getdims_a_f_ad,f2py_mo_nad_getdims_la&
     &i_ad,f2py_mo_nad_getdims_xi1,f2py_mo_nad_getdims_r,weights,teta_0,&
     &f2py_mo_nad_getdims_i0_ad,f2py_mo_nad_getdims_ximt)
      end subroutine f2pyinitmo_nad


