anchor.diff:  public  :: encode_ip_0, encode_ip_1, decode_ip_0, decode_ip_1
   public  :: encode_ip_2, encode_ip_3, decode_ip_2, decode_ip_3
   public  :: convip_plus, test_convip_plus, test_value_to_string
  -private :: conv_kind_15, value_to_string
  +public  :: value_to_string
  +private :: conv_kind_15
   
   type, BIND(C) :: float_ip
   real(C_FLOAT) :: lo, hi
  
positive.code:     if(ip1/=ip2) nip=nip+1
      if(p/=p2 .and. abs(p2/p-1.0) < .0000002) nip2=nip2+1
      if(ip1/=ip2 .and. p /= p2) then
        if(abs(p2/p-1.0) > .0000002) then ! not within tolerance
          print 111, j,i,ip1,ip2,iand(ip1,1048575),iand(ip2,1048575),p,p2,abs(p2/p-1.0)
          nip3 = nip3+1
  !           stop
  
negative.code:       grosint=grosint*10  ! largest integer value that will fit in maxc characters
      enddo
      if(value >= grosint) goto 444   ! try something else
      if(val>0) intdig = intdig - 1   ! one less character if number is positive
      write(fstring,12)'(I',min(maxc,intdig),')'    ! use I format
      value_to_string=min(maxc,intdig)
      goto 777
  