rih5342
Marine/Ocean
- May 8, 2007
- 40
Hello, I'm using gcc 6.3 on w7-64, with these gfortran compile flags
FLAGS = -std=f2008 -O2 -Wall -Wextra -fno-range-check
Is this legal code?
Code:
MODULE WAV
integer, parameter :: int2 = selected_int_kind(2)
integer, parameter :: int4 = selected_int_kind(4)
integer, parameter :: int8 = selected_int_kind(8)
integer, parameter :: int16 = selected_int_kind(16)
integer, parameter :: SP = selected_real_kind(4)
integer, parameter :: DP = selected_real_kind(8)
integer, parameter :: QP = selected_real_kind(16)
TYPE :: HEADER ! DERIVED TYPE
CHARACTER (LEN=8) :: FILE_ID
INTEGER(INT8) :: FILE_LENGTH
CHARACTER(LEN=8) :: FILE_TYPE
CHARACTER(LEN=8) :: SUBHEADER1_FORMAT
INTEGER(INT8) :: SUBHEADER1_LENGTH
INTEGER(INT8) :: AUDIO_FORMAT
INTEGER(INT8) :: NUM_CHAN
INTEGER(INT8) :: SAMPLE_RATE
INTEGER(INT8) :: BYTE_RATE
INTEGER(INT8) :: BLOCK_ALIGN
INTEGER(INT8) :: BITS_PER_SAMP
CHARACTER(LEN=8) :: SUBHEADER2_FORMAT
INTEGER(INT8) :: SUBHEADER2_LENGTH
END TYPE
CONTAINS
SUBROUTINE CLEAR_HEADER(W_HEADER)
IMPLICIT NONE
TYPE (HEADER), INTENT(OUT) :: W_HEADER
CHARACTER (LEN=8), PARAMETER :: CHAR8 = ' '
W_HEADER % FILE_ID = CHAR8 ! 01
W_HEADER % FILE_LENGTH = 0_INT8 ! 02
W_HEADER % FILE_TYPE = CHAR8 ! 03
W_HEADER % SUBHEADER1_FORMAT = CHAR8 ! 04
W_HEADER % SUBHEADER1_LENGTH = 0_INT8 ! 05
W_HEADER % AUDIO_FORMAT = 0_INT8 ! 06
W_HEADER % NUM_CHAN = 0_INT8 ! 07
W_HEADER % SAMPLE_RATE = 0_INT8 ! 08
W_HEADER % BYTE_RATE = 0_INT8 ! 09
W_HEADER % BLOCK_ALIGN = 0_INT8 ! 10
W_HEADER % BITS_PER_SAMP = 0_INT8 ! 11
W_HEADER % SUBHEADER2_FORMAT = CHAR8 ! 12
W_HEADER % SUBHEADER2_LENGTH = 0_INT8 ! 13
W_HEADER = [CHAR8, 0_INT8, CHAR8, CHAR8, 0_INT8, 0_INT8, 0_INT8, &
0_INT8, 0_INT8, 0_INT8, 0_INT8, CHAR8, 0_INT8 ]
END SUBROUTINE CLEAR_HEADER
END MODULE WAV
I get this compile error.
Code:
W_HEADER = [CHAR8, 0_INT8, CHAR8, CHAR8, 0_INT8, 0_INT8, 0_INT8, &
1
Error: Element in CHARACTER(1) array constructor at (1) is INTEGER(4)
make: *** [makefile:12: ref_time_source.o] Error 1
Thank you.