51 TYPE(spectrum) ,
INTENT(INOUT) :: SPEC
55 INTEGER :: IERR, I, IFF, IDD, ISPEC
60 DOUBLE PRECISION :: EPS, DIST
61 DOUBLE PRECISION,
ALLOCATABLE :: X1(:),Y1(:),STOCK(:)
63 CHARACTER(LEN=8) :: FFORMAT
64 CHARACTER(LEN=16),
ALLOCATABLE :: VARNAME(:),VARUNIT(:)
66 INTRINSIC dsqrt, datan, datan2
70 ALLOCATE(varname(spec%N),stat=ierr)
71 CALL check_allocate(ierr,
'GET_TOMSPEC_VALUE2:VARNAME')
72 ALLOCATE(varunit(spec%N),stat=ierr)
73 CALL check_allocate(ierr,
'GET_TOMSPEC_VALUE2:VARUNIT')
75 ALLOCATE(x1(
nf*
ndir),stat=ierr)
76 CALL check_allocate(ierr,
'GET_TOMSPEC_VALUE2:X1')
77 ALLOCATE(y1(
nf*
ndir),stat=ierr)
78 CALL check_allocate(ierr,
'GET_TOMSPEC_VALUE2:Y1')
79 ALLOCATE(stock(
ndir),stat=ierr)
80 CALL check_allocate(ierr,
'GET_TOMSPEC_VALUE2:STOCK')
96 CALL check_call(ierr,
'GET_TOMSPEC_VALUE2:GET_DATA_VAR_LIST')
98 READ (varname(ispec)(9:16),
'(I8)') spec%NOUTER(ispec)
112 dist = dsqrt((spec%XOUTER(ispec)-
x_sfref)**2 +
113 & (spec%YOUTER(ispec)-
y_sfref)**2 )
122 DEALLOCATE(x1,y1,stock)
123 DEALLOCATE(varname,varunit)
126 ELSEIF(
debug.GT.0)
THEN 127 WRITE(
lu,*)
'GET_TOMSPEC_VALUE2: N_SFREF:',
n_sfref 128 WRITE(
lu,*)
' : NOUTER:',spec%NOUTER(
n_sfref)
136 CALL check_call(ierr,
'GET_TOMSPEC_VALUE2:GET_MESH_COORD:X')
138 CALL check_call(ierr,
'GET_TOMSPEC_VALUE2:GET_MESH_COORD:Y')
143 spec%FRE(i) = dsqrt(x1((i-1)*
ndir+1)**2+y1((i-1)*
ndir+1)**2)
153 spec%DIR(i) = datan2(y1(i),x1(i))
154 spec%DIR(i) = spec%DIR(i)/
degrad 156 IF (spec%DIR(i).LT.0d0)
THEN 157 spec%DIR(i) = 360.d0 + spec%DIR(i)
169 IF (spec%DIR(i).LT.eps)
THEN 182 spec%DIR(idd)=stock(i)
184 spec%DIR(
ndir+1)=spec%DIR(1)+360.d0
191 CALL check_call(ierr,
'GET_TOMSPEC_VALUE2:GET_DATA_TIMESTEP')
197 CALL check_call(ierr,
'GET_TOMSPEC_VALUE2:GET_DATA_VALUE')
201 spec%ADR(ispec)%SOUTER(iff,idd) = x1((iff-1)*
ndir+idd)
204 spec%ADR(ispec)%SOUTER(iff,
ndir+1) =
205 & spec%ADR(ispec)%SOUTER(iff,1)
213 stock(i)=spec%ADR(ispec)%SOUTER(iff,i)
221 spec%ADR(ispec)%SOUTER(iff,idd)=stock(i)
223 spec%ADR(ispec)%SOUTER(iff,
ndir+1) =
224 & spec%ADR(ispec)%SOUTER(iff,1)
231 DEALLOCATE(x1,y1,stock)
232 DEALLOCATE(varname,varunit)
236 DEALLOCATE(varname,varunit)
248 301
FORMAT(/,1
x,
'GET_TOMSPEC_VALUE2 : READING TIME STEP ',1f9.2,
'S')
250 201
FORMAT(/,1
x,
'GET_TOMSPEC_VALUE2 : NO SPECTRAL POINT FOUND LESS',
251 &
' THAN 3KM FROM REFERENCE POINT (',1f9.2,
';',1f9.2,
')',/,
254 101
FORMAT(/,1
x,
'GET_TOMSPEC_VALUE2 : NO SPECTRAL POINT IN THE',
255 &
' TOMAWAC FILE ',1a30,
';',/,
subroutine get_tomspec_value2(SPEC)
subroutine get_data_var_list(FFORMAT, FID, NVAR, VARLIST, UNITLIST, IERR)
subroutine get_data_value(FFORMAT, FID, RECORD, VAR_NAME, RES_VALUE, N, IERR)
subroutine xy_tomawac(SPEC)
subroutine get_data_timestep(FFORMAT, FID, RECORD, TIME, IERR)
type(bief_file), dimension(maxlu_art), target art_files
double precision, dimension(:), pointer x
integer, parameter quadrangle_elt_type
subroutine get_mesh_coord(FFORMAT, FID, JDIM, NDIM, NPOIN, COORD, IERR)