Hello world, with this patch, it is now possible to specify both the endianness and the REAL(KIND=16) format using the environment variable GFORTRAN_CONVERT_UNIT. The following now works: koenig@gcc-fortran:~/Tst$ cat write_env.f90 program main real(kind=16) :: x character (len=30) :: conv x = 1/3._16 open (10,file="out.dat",status="replace",access="stream",form="unformatted") inquire(10,convert=conv) print *,conv write (10) 1/3._16 end program main tkoenig@gcc-fortran:~/Tst$ gfortran -g -static-libgfortran write_env.f90 tkoenig@gcc-fortran:~/Tst$ GFORTRAN_CONVERT_UNIT="little_endian;r16_ibm" && ./a.out LITTLE_ENDIAN,R16_IBM tkoenig@gcc-fortran:~/Tst$ GFORTRAN_CONVERT_UNIT="little_endian;r16_ieee" && ./a.out LITTLE_ENDIAN,R16_IEEE tkoenig@gcc-fortran:~/Tst$ GFORTRAN_CONVERT_UNIT="big_endian;r16_ieee" && ./a.out BIG_ENDIAN,R16_IEEE tkoenig@gcc-fortran:~/Tst$ GFORTRAN_CONVERT_UNIT="big_endian;r16_ibm" && ./a.out BIG_ENDIAN,R16_IBM Since the branch has been pushed to trunk, I don't think we need it any more (or do we?), so OK for trunk? Best regards Thomas Allow for multiple defaults in endianness and r16 in GFORTRAN_CONVERT_UNIT. With this patch, it is possible to specify multiple defaults inthe GFORTRAN_CONVERT_UNIT environment variable so that, for example, R16_IEEE and BIG_ENDIAN can be specified together. libgfortran/ChangeLog: * runtime/environ.c: Allow for multiple default values so that separate default specifications for IBM long double format and endianness are possible.