C CRETAR    SOURCE    GF238795  15/04/23    21:15:37     8502
      subroutine cretar(argume,pilLoc)
C=======================================================================
C  Sous-programme COLlaborateur RETourner ARgument
C=======================================================================
      integer iArgu
      integer nArg
      integer iPile
      integer iPoint
      real*8 xval
      character*512 chaval
      logical logval
      integer iobval,iretp,ival
      character*8 typNom
      integer debmot,finmot

-INC PPARAM
-INC CCOPTIO
      segment LISARG
         character*8 nom(nArg)
         integer     adress(nArg)
      endsegment
      segment PILOC
             real*8 reel(nbRee)
             character*(nbCha)  chara
             integer motdeb(nbMot+1)
      endsegment
      pointeur pilLoc.PILOC
      pointeur argume.LISARG
      nArg = argume.adress(/1)
C      write(ioimp,*) 'Entre dans MRETAR'
C      write(ioimp,*) 'Nombre d argu',nArg
C pour chaque argument
      do iArgu =nArg,1,-1
C     recuperer son type
         typNom = argume.nom(iArgu)
         if(iimpi.ge.7) then
            write(ioimp,*) 'type ',typNom
            write(ioimp,*) 'addr ',argume.adress(iArgu)
         endif
C     recuper le numero de pile associe
         iPile=0
         call typfil (typNom,iPile)
C         write(ioimp,*) 'pile',iPile
         iPoint = argume.adress(iArgu)
C         write(ioimp,*)'iPoint',iPoint
         if(iPile.eq.24) then
            logval=iPoint.ne.0
C            write(ioimp,*) 'on retourne le logique',logval
            call ecrlog(logval)
         else if(iPile.eq.25) then
C            write(ioimp,*) 'on retourne le reel',pilLoc.reel(iPoint)
            xval = pilLoc.reel(iPoint)
            call ecrree(xval)
         else if(iPile.eq.26) then
C            write(ioimp,*)'Sortie d un entier',iPoint
C            call queval(iPoint,'ENTIER  ', iretp, ival, xval, chaval,
C     &                  logval, iobval)
C            write(ioimp,*) 'on retourne l entier',iPoint
            call ecrent(iPoint)
         else if(iPile.eq.27) then
            call queval(iPoint,'MOT     ', iretp, ival, xval, chaval,
     &                  logval, iobval)
C            write(ioimp,*) 'on retourne ',pilLoc.chara(debmot:finmot)
            debmot=pilLoc.motDeb(iPoint)
            finmot=pilLoc.motDeb(iPoint+1)-1
            chaval(1:finmot+1-debmot) = pilLoc.chara(debmot:finmot)
            call ecrcha(chaval(1:finmot+1-debmot))
         else
            call ecrobj(typnom,iPoint)
         endif
      enddo
C      write(ioimp,*) 'Sortie de MRETAR'
      end


