! real*8 interface generated by r8igen.csh --
! ...in /transp/users/dmccune/troot/tmp/trgraf
! csh -f r8igen.csh r8_trangr.for foo.msg
 
!----------------------------------------------------------
! r8real -- generated (f90 fixed form) real*8 interface to:  GMMSELB
      SUBROUTINE R8_GMMSELB(
     > R8_R,R8_Y,ND1,NC,R8_Z,NZ,RUN,YUN,ZLAB,ZUN,MNLAB)
 
      external GMMSELB
 
! argument declarations
      REAL*8 R8_R(ND1,NZ)
      REAL*8 R8_Y(ND1,NZ)
      INTEGER ND1
      INTEGER NC
      REAL*8 R8_Z(NZ)
      INTEGER NZ
      CHARACTER*(*) RUN
      CHARACTER*(*) YUN
      CHARACTER*(*) ZLAB
      CHARACTER*(*) ZUN
      CHARACTER*(*) MNLAB(3)
 
! local (automatic array) declarations
 
      integer alloc_stat
      REAL, pointer :: R_act(:,:)
      REAL, pointer :: R_ref(:,:)
      REAL, pointer :: Y_act(:,:)
      REAL, pointer :: Y_ref(:,:)
      REAL, pointer :: Z_act(:)
      REAL, pointer :: Z_ref(:)
 
! allocation of working arrays...
 
      ALLOCATE(R_act(ND1,NZ)
     >   ,stat=alloc_stat)
      if(alloc_stat.ne.0) call errmsg_exit(
     >  ' ?R8_GMMSELB -- R_act ALLOCATE error!')
      ALLOCATE(R_ref(ND1,NZ)
     >   ,stat=alloc_stat)
      if(alloc_stat.ne.0) call errmsg_exit(
     >  ' ?R8_GMMSELB -- R_ref ALLOCATE error!')
      ALLOCATE(Y_act(ND1,NZ)
     >   ,stat=alloc_stat)
      if(alloc_stat.ne.0) call errmsg_exit(
     >  ' ?R8_GMMSELB -- Y_act ALLOCATE error!')
      ALLOCATE(Y_ref(ND1,NZ)
     >   ,stat=alloc_stat)
      if(alloc_stat.ne.0) call errmsg_exit(
     >  ' ?R8_GMMSELB -- Y_ref ALLOCATE error!')
      ALLOCATE(Z_act(NZ)
     >   ,stat=alloc_stat)
      if(alloc_stat.ne.0) call errmsg_exit(
     >  ' ?R8_GMMSELB -- Z_act ALLOCATE error!')
      ALLOCATE(Z_ref(NZ)
     >   ,stat=alloc_stat)
      if(alloc_stat.ne.0) call errmsg_exit(
     >  ' ?R8_GMMSELB -- Z_ref ALLOCATE error!')
 
! executable code:  copy for input
 
      R_act=R8_R
      R_ref=R8_R
 
      Y_act=R8_Y
      Y_ref=R8_Y
 
      Z_act=R8_Z
      Z_ref=R8_Z
 
! call to original routine:  GMMSELB
 
      CALL GMMSELB(
     > R_act(1,1),Y_act(1,1),ND1,NC,Z_act(1),NZ,RUN,YUN,ZLAB,ZUN,MNLAB)
 
! copy back outputs if modified.
 
      where(R_act.ne.R_ref)
         R8_R = R_act
      end where
      DEALLOCATE(R_act)
      DEALLOCATE(R_ref)
 
      where(Y_act.ne.Y_ref)
         R8_Y = Y_act
      end where
      DEALLOCATE(Y_act)
      DEALLOCATE(Y_ref)
 
      where(Z_act.ne.Z_ref)
         R8_Z = Z_act
      end where
      DEALLOCATE(Z_act)
      DEALLOCATE(Z_ref)
 
! exit
      return
      end
!----------------------------------------------------------
! r8real -- generated (f90 fixed form) real*8 interface to:  GRFASYM
      SUBROUTINE R8_GRFASYM(
     > R8_RCX,R8_YCX,MTBL,MIMOM,LCENTR,JMAX,NMOM,XUN,YUN,LBL1,LBL2,LBL3)
 
      external GRFASYM
 
! argument declarations
      REAL*8 R8_RCX(MTBL,0:MIMOM,2)
      REAL*8 R8_YCX(MTBL,0:MIMOM,2)
      INTEGER MTBL
      INTEGER MIMOM
      INTEGER LCENTR
      INTEGER JMAX
      INTEGER NMOM
      CHARACTER*(*) XUN
      CHARACTER*(*) YUN
      CHARACTER*(*) LBL1
      CHARACTER*(*) LBL2
      CHARACTER*(*) LBL3
 
! local (automatic array) declarations
 
      integer alloc_stat
      REAL, pointer :: RCX_act(:,:,:)
      REAL, pointer :: RCX_ref(:,:,:)
      REAL, pointer :: YCX_act(:,:,:)
      REAL, pointer :: YCX_ref(:,:,:)
 
! allocation of working arrays...
 
      ALLOCATE(RCX_act(MTBL,0:MIMOM,2)
     >   ,stat=alloc_stat)
      if(alloc_stat.ne.0) call errmsg_exit(
     >  ' ?R8_GRFASYM -- RCX_act ALLOCATE error!')
      ALLOCATE(RCX_ref(MTBL,0:MIMOM,2)
     >   ,stat=alloc_stat)
      if(alloc_stat.ne.0) call errmsg_exit(
     >  ' ?R8_GRFASYM -- RCX_ref ALLOCATE error!')
      ALLOCATE(YCX_act(MTBL,0:MIMOM,2)
     >   ,stat=alloc_stat)
      if(alloc_stat.ne.0) call errmsg_exit(
     >  ' ?R8_GRFASYM -- YCX_act ALLOCATE error!')
      ALLOCATE(YCX_ref(MTBL,0:MIMOM,2)
     >   ,stat=alloc_stat)
      if(alloc_stat.ne.0) call errmsg_exit(
     >  ' ?R8_GRFASYM -- YCX_ref ALLOCATE error!')
 
! executable code:  copy for input
 
      RCX_act=R8_RCX
      RCX_ref=R8_RCX
 
      YCX_act=R8_YCX
      YCX_ref=R8_YCX
 
! call to original routine:  GRFASYM
 
      CALL GRFASYM(
     > RCX_act(1,0,1),YCX_act(1,0,1),MTBL,MIMOM,LCENTR,JMAX,NMOM,XUN,
     > YUN,LBL1,LBL2,LBL3)
 
! copy back outputs if modified.
 
      where(RCX_act.ne.RCX_ref)
         R8_RCX = RCX_act
      end where
      DEALLOCATE(RCX_act)
      DEALLOCATE(RCX_ref)
 
      where(YCX_act.ne.YCX_ref)
         R8_YCX = YCX_act
      end where
      DEALLOCATE(YCX_act)
      DEALLOCATE(YCX_ref)
 
! exit
      return
      end
!----------------------------------------------------------
! r8real -- generated (f90 fixed form) real*8 interface to:  GRFASYM2
      SUBROUTINE R8_GRFASYM2(
     > R8_RCX,R8_YCX,MIMOM,MTBL,NMOM,JMAX,XUN,YUN,LBL1,LBL2,LBL3)
 
      external GRFASYM2
 
! argument declarations
      REAL*8 R8_RCX(0:MIMOM,2,MTBL)
      REAL*8 R8_YCX(0:MIMOM,2,MTBL)
      INTEGER MIMOM
      INTEGER MTBL
      INTEGER NMOM
      INTEGER JMAX
      CHARACTER*(*) XUN
      CHARACTER*(*) YUN
      CHARACTER*(*) LBL1
      CHARACTER*(*) LBL2
      CHARACTER*(*) LBL3
 
! local (automatic array) declarations
 
      integer alloc_stat
      REAL, pointer :: RCX_act(:,:,:)
      REAL, pointer :: RCX_ref(:,:,:)
      REAL, pointer :: YCX_act(:,:,:)
      REAL, pointer :: YCX_ref(:,:,:)
 
! allocation of working arrays...
 
      ALLOCATE(RCX_act(0:MIMOM,2,MTBL)
     >   ,stat=alloc_stat)
      if(alloc_stat.ne.0) call errmsg_exit(
     >  ' ?R8_GRFASYM2 -- RCX_act ALLOCATE error!')
      ALLOCATE(RCX_ref(0:MIMOM,2,MTBL)
     >   ,stat=alloc_stat)
      if(alloc_stat.ne.0) call errmsg_exit(
     >  ' ?R8_GRFASYM2 -- RCX_ref ALLOCATE error!')
      ALLOCATE(YCX_act(0:MIMOM,2,MTBL)
     >   ,stat=alloc_stat)
      if(alloc_stat.ne.0) call errmsg_exit(
     >  ' ?R8_GRFASYM2 -- YCX_act ALLOCATE error!')
      ALLOCATE(YCX_ref(0:MIMOM,2,MTBL)
     >   ,stat=alloc_stat)
      if(alloc_stat.ne.0) call errmsg_exit(
     >  ' ?R8_GRFASYM2 -- YCX_ref ALLOCATE error!')
 
! executable code:  copy for input
 
      RCX_act=R8_RCX
      RCX_ref=R8_RCX
 
      YCX_act=R8_YCX
      YCX_ref=R8_YCX
 
! call to original routine:  GRFASYM2
 
      CALL GRFASYM2(
     > RCX_act(0,1,1),YCX_act(0,1,1),MIMOM,MTBL,NMOM,JMAX,XUN,YUN,LBL1,
     > LBL2,LBL3)
 
! copy back outputs if modified.
 
      where(RCX_act.ne.RCX_ref)
         R8_RCX = RCX_act
      end where
      DEALLOCATE(RCX_act)
      DEALLOCATE(RCX_ref)
 
      where(YCX_act.ne.YCX_ref)
         R8_YCX = YCX_act
      end where
      DEALLOCATE(YCX_act)
      DEALLOCATE(YCX_ref)
 
! exit
      return
      end
!----------------------------------------------------------
! r8real -- generated (f90 fixed form) real*8 interface to:  GRFSSYM
      SUBROUTINE R8_GRFSSYM(
     > R8_R0,R8_RCX,R8_YCX,MTBL,MIMOM,LCENTR,JMAX,NMOM,XUN,YUN,LBL1,
     > LBL2,LBL3)
 
      external GRFSSYM
 
! argument declarations
      REAL*8 R8_R0(MTBL)
      REAL*8 R8_RCX(MTBL,MIMOM)
      REAL*8 R8_YCX(MTBL,MIMOM)
      INTEGER MTBL
      INTEGER MIMOM
      INTEGER LCENTR
      INTEGER JMAX
      INTEGER NMOM
      CHARACTER*(*) XUN
      CHARACTER*(*) YUN
      CHARACTER*(*) LBL1
      CHARACTER*(*) LBL2
      CHARACTER*(*) LBL3
 
! local (automatic array) declarations
 
      integer alloc_stat
      REAL, pointer :: R0_act(:)
      REAL, pointer :: R0_ref(:)
      REAL, pointer :: RCX_act(:,:)
      REAL, pointer :: RCX_ref(:,:)
      REAL, pointer :: YCX_act(:,:)
      REAL, pointer :: YCX_ref(:,:)
 
! allocation of working arrays...
 
      ALLOCATE(R0_act(MTBL)
     >   ,stat=alloc_stat)
      if(alloc_stat.ne.0) call errmsg_exit(
     >  ' ?R8_GRFSSYM -- R0_act ALLOCATE error!')
      ALLOCATE(R0_ref(MTBL)
     >   ,stat=alloc_stat)
      if(alloc_stat.ne.0) call errmsg_exit(
     >  ' ?R8_GRFSSYM -- R0_ref ALLOCATE error!')
      ALLOCATE(RCX_act(MTBL,MIMOM)
     >   ,stat=alloc_stat)
      if(alloc_stat.ne.0) call errmsg_exit(
     >  ' ?R8_GRFSSYM -- RCX_act ALLOCATE error!')
      ALLOCATE(RCX_ref(MTBL,MIMOM)
     >   ,stat=alloc_stat)
      if(alloc_stat.ne.0) call errmsg_exit(
     >  ' ?R8_GRFSSYM -- RCX_ref ALLOCATE error!')
      ALLOCATE(YCX_act(MTBL,MIMOM)
     >   ,stat=alloc_stat)
      if(alloc_stat.ne.0) call errmsg_exit(
     >  ' ?R8_GRFSSYM -- YCX_act ALLOCATE error!')
      ALLOCATE(YCX_ref(MTBL,MIMOM)
     >   ,stat=alloc_stat)
      if(alloc_stat.ne.0) call errmsg_exit(
     >  ' ?R8_GRFSSYM -- YCX_ref ALLOCATE error!')
 
! executable code:  copy for input
 
      R0_act=R8_R0
      R0_ref=R8_R0
 
      RCX_act=R8_RCX
      RCX_ref=R8_RCX
 
      YCX_act=R8_YCX
      YCX_ref=R8_YCX
 
! call to original routine:  GRFSSYM
 
      CALL GRFSSYM(
     > R0_act(1),RCX_act(1,1),YCX_act(1,1),MTBL,MIMOM,LCENTR,JMAX,NMOM,
     > XUN,YUN,LBL1,LBL2,LBL3)
 
! copy back outputs if modified.
 
      where(R0_act.ne.R0_ref)
         R8_R0 = R0_act
      end where
      DEALLOCATE(R0_act)
      DEALLOCATE(R0_ref)
 
      where(RCX_act.ne.RCX_ref)
         R8_RCX = RCX_act
      end where
      DEALLOCATE(RCX_act)
      DEALLOCATE(RCX_ref)
 
      where(YCX_act.ne.YCX_ref)
         R8_YCX = YCX_act
      end where
      DEALLOCATE(YCX_act)
      DEALLOCATE(YCX_ref)
 
! exit
      return
      end
!----------------------------------------------------------
! r8real -- generated (f90 fixed form) real*8 interface to:  GRFSSYM2
      SUBROUTINE R8_GRFSSYM2(
     > R8_R0,R8_RCX,R8_YCX,MIMOM,MTBL,NMOM,JMAX,XUN,YUN,LBL1,LBL2,LBL3)
 
      external GRFSSYM2
 
! argument declarations
      REAL*8 R8_R0(MTBL)
      REAL*8 R8_RCX(MIMOM,MTBL)
      REAL*8 R8_YCX(MIMOM,MTBL)
      INTEGER MIMOM
      INTEGER MTBL
      INTEGER NMOM
      INTEGER JMAX
      CHARACTER*(*) XUN
      CHARACTER*(*) YUN
      CHARACTER*(*) LBL1
      CHARACTER*(*) LBL2
      CHARACTER*(*) LBL3
 
! local (automatic array) declarations
 
      integer alloc_stat
      REAL, pointer :: R0_act(:)
      REAL, pointer :: R0_ref(:)
      REAL, pointer :: RCX_act(:,:)
      REAL, pointer :: RCX_ref(:,:)
      REAL, pointer :: YCX_act(:,:)
      REAL, pointer :: YCX_ref(:,:)
 
! allocation of working arrays...
 
      ALLOCATE(R0_act(MTBL)
     >   ,stat=alloc_stat)
      if(alloc_stat.ne.0) call errmsg_exit(
     >  ' ?R8_GRFSSYM2 -- R0_act ALLOCATE error!')
      ALLOCATE(R0_ref(MTBL)
     >   ,stat=alloc_stat)
      if(alloc_stat.ne.0) call errmsg_exit(
     >  ' ?R8_GRFSSYM2 -- R0_ref ALLOCATE error!')
      ALLOCATE(RCX_act(MIMOM,MTBL)
     >   ,stat=alloc_stat)
      if(alloc_stat.ne.0) call errmsg_exit(
     >  ' ?R8_GRFSSYM2 -- RCX_act ALLOCATE error!')
      ALLOCATE(RCX_ref(MIMOM,MTBL)
     >   ,stat=alloc_stat)
      if(alloc_stat.ne.0) call errmsg_exit(
     >  ' ?R8_GRFSSYM2 -- RCX_ref ALLOCATE error!')
      ALLOCATE(YCX_act(MIMOM,MTBL)
     >   ,stat=alloc_stat)
      if(alloc_stat.ne.0) call errmsg_exit(
     >  ' ?R8_GRFSSYM2 -- YCX_act ALLOCATE error!')
      ALLOCATE(YCX_ref(MIMOM,MTBL)
     >   ,stat=alloc_stat)
      if(alloc_stat.ne.0) call errmsg_exit(
     >  ' ?R8_GRFSSYM2 -- YCX_ref ALLOCATE error!')
 
! executable code:  copy for input
 
      R0_act=R8_R0
      R0_ref=R8_R0
 
      RCX_act=R8_RCX
      RCX_ref=R8_RCX
 
      YCX_act=R8_YCX
      YCX_ref=R8_YCX
 
! call to original routine:  GRFSSYM2
 
      CALL GRFSSYM2(
     > R0_act(1),RCX_act(1,1),YCX_act(1,1),MIMOM,MTBL,NMOM,JMAX,XUN,YUN,
     > LBL1,LBL2,LBL3)
 
! copy back outputs if modified.
 
      where(R0_act.ne.R0_ref)
         R8_R0 = R0_act
      end where
      DEALLOCATE(R0_act)
      DEALLOCATE(R0_ref)
 
      where(RCX_act.ne.RCX_ref)
         R8_RCX = RCX_act
      end where
      DEALLOCATE(RCX_act)
      DEALLOCATE(RCX_ref)
 
      where(YCX_act.ne.YCX_ref)
         R8_YCX = YCX_act
      end where
      DEALLOCATE(YCX_act)
      DEALLOCATE(YCX_ref)
 
! exit
      return
      end
