home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.lang.fortran      Putting John Backus on a giant pedestal      5,127 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 4,889 of 5,127   
   Lynn McGuire to Steven G. Kargl   
   Re: how do you send a fortran character    
   02 Jan 25 16:38:10   
   
   From: lynnmcguire5@gmail.com   
      
   On 1/2/2025 12:40 PM, Steven G. Kargl wrote:   
   > On Thu, 02 Jan 2025 02:27:54 -0600, Lynn McGuire wrote:   
   >   
   >> How do you send a fortran character string from GCC to GFortran ?   
   >>   
   >> I cannot get this to link.  I can do the reverse, send a fortran   
   >> character string from Gfortran to GCC.   
   >>   
   >> I do have the additional complication that I do not know the length of   
   >> the fortran character string being sent from GCC to Gfortran at compile   
   >> time, only run time.  So that is a character*(*) string.   
   >>   
   >> I am not using the ISO C binding.   
   >   
   > As Thomas as indicated, ISO C binding was introduced into the   
   > Fortran standard to address your needs.  But, if you want to   
   > go old school with gcc/gfortran, then   
   >   
   > % cat aa.c   
   > #include    
   >   
   > void   
   > string_(char *s, int *slen)   
   > {   
   >     strncpy(s, "abc", *slen);   
   > }   
   >   
   > % cat bb.f90   
   > program foo   
   >     external :: string   
   >     character(len=10) str   
   >     call string(str, len(str))   
   >     print *, '>>' // str //'<<'   
   > end program foo   
   >   
   > % ~/work/bin/gcc -c aa.c   
   > % gfcx -o z bb.f90 aa.o   
   > % ./z   
   >   >>abc<<   
      
   Isn't the character string length variable "slen" a value parameter and   
   size_t type ?   
      
   Lynn   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca