The TELEMAC-MASCARET system  trunk
read_bin_2d.f
Go to the documentation of this file.
1 ! *************************
2  SUBROUTINE read_bin_2d
3 ! *************************
4 !
5  &( q ,varname,at,nfic,fformat,npoin,found,offset)
6 !
7 !***********************************************************************
8 ! BIEF V7P2 01/09/2016
9 !***********************************************************************
10 !
11 !brief READS AND INTERPOLATES VALUES FROM A BINARY
12 !+ FILE ON THE WHOLE 2D MESH.
13 !
14 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
15 !| AT |-->| TIME IN SECONDS
16 !| NFIC |-->| LOGICAL UNIT OF FILE
17 !| Q |<--| ARRAY WHERE THE VARIABLE IS STORED
18 !| FOUND |<--| IF FALSE: VARIABLE NOT FOUND
19 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
20 !
21  USE bief, ex_read_bin_2d => read_bin_2d
23 !
24  IMPLICIT NONE
25 !
26 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
27 !
28  CHARACTER(LEN=16), INTENT(IN) :: VARNAME
29  INTEGER , INTENT(IN) :: NFIC,NPOIN
30  DOUBLE PRECISION, INTENT(IN) :: AT
31  DOUBLE PRECISION, INTENT(INOUT) :: Q(npoin)
32  CHARACTER(LEN=8), INTENT(IN) :: FFORMAT
33  LOGICAL , INTENT(OUT) :: FOUND
34  DOUBLE PRECISION, INTENT(IN) :: OFFSET
35 !
36 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
37 !
38  INTEGER :: J,NPOINATM,IERR
39 !
40 !-----------------------------------------------------------------------
41 !
42 ! INITIALISE THE ARRAY TO BE FILLED
43  DO j=1,npoin
44  q(j) = 0.d0
45  ENDDO
46 !
47 !-----------------------------------------------------------------------
48 !
49 ! READ THE FILE
50 ! AND STORE VARIABLE VALUE AT ALL 2D POINTS
51 !
52 !-----------------------------------------------------------------------
53 !
54 ! GET THE NUMBER OF POINTS IN THE FILE
55 !
56  CALL get_mesh_npoin(fformat,nfic,triangle_elt_type,
57  & npoinatm,ierr)
58  CALL check_call(ierr,"READ_BIN_FRILQ: GET_MESH_NPOIN")
59  IF(npoinatm.NE.npoin) THEN
60  WRITE(lu,*) "READ_BIN_2D: ",
61  & "INCORRECT NUMBER OF POINTS IN THE FILE"
62  CALL plante(1)
63  stop
64  ENDIF
65 !
66 !-----------------------------------------------------------------------
67 !
68 ! STORE THE VARIABLE VALUES IN Q
69 !
70  CALL find_variable(fformat,nfic,varname,q,npoin,ierr,
71  & time=at,eps_time=1.d-6,offset=offset)
72  IF(ierr.EQ.hermes_var_unknown_err) THEN
73  found = .false.
74  ELSE
75  found = .true.
76  ENDIF
77  CALL check_call(ierr,"READ_BIN_2D: FIND_VARIABLE")
78 
79  RETURN
80  END
subroutine get_mesh_npoin(FFORMAT, FID, TYP_ELEM, NPOIN, IERR)
Definition: get_mesh_npoin.f:7
subroutine find_variable(FFORMAT, FID, VAR_NAME, RES, N, IERR, TIME, EPS_TIME, RECORD, TIME_RECORD, OFFSET)
Definition: find_variable.f:8
double precision function q(I)
Definition: q.f:7
subroutine read_bin_2d(Q, VARNAME, AT, NFIC, FFORMAT, NPOIN, FOUND, OFFSET)
Definition: read_bin_2d.f:7
Definition: bief.f:3