The TELEMAC-MASCARET system  trunk
bief_animp.f
Go to the documentation of this file.
1 ! *********************
2  SUBROUTINE bief_animp
3 ! *********************
4 
5  &(format_res,varnim,n,nres,at,lt,ldir,textanim,npale)
6 !
7 !***********************************************************************
8 ! BIEF V7P2 December 2016
9 !***********************************************************************
10 !
11 !brief WRITES THE WAVE HEIGHT AND WAVE PHASE TO RESULT FILE.
12 ! (TO BE USED TO COMPUTE THE FREE SURFACE ELEVATION AT EVERY POINT)
13 !
14 !history J.PARISI, N.TOZER
15 !+ 08/01/2014
16 !+ V6P3
17 !+
18 !
19 !history N.DURAND (HRW)
20 !+ 19/03/2014
21 !+ V7P0
22 !+ Simplified. SLF file header with variables and mesh generated outside
23 !+ of BIEF_DESNIM in CREATE_DATANIM_SERAFIN and WRITE_MESH_SERAFIN
24 !
25 !history N.DURAND (HRW)
26 !+ Dec 2016
27 !+ V7P2
28 !+ Ported to V7P2 with use of Hermes interface to write data
29 !
30 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
31 !| FORMAT_RES |-->| FILE FORMAT
32 !| VARNIM |-->| BIEF_OBJ BLOCK WITH DATA VALUES
33 !| N |-->| NUMBER OF POINTS IN THE MESH
34 !| NRES |-->| LOGICAL UNIT OF THE RESULTS FILE
35 !| AT |-->| "TIME STAMP" (PERIOD IN THIS CASE)
36 !| LT |-->| ITERATION NUMBER
37 !| LDIR |-->| DIRECTION NUMBER
38 !| TEXTANIM |-->| NAMES AND UNITS OF VARIABLES
39 !| NPALE |-->| NUMBER OF DISCRETISED PERIODS
40 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
41 !
42  USE bief, ex_bief_animp => bief_animp
44 !
46 !
47  IMPLICIT NONE
48 !
49 !-----------------------------------------------------------------------
50 ! DECLARES TYPES AND DIMENSIONS
51 !-----------------------------------------------------------------------
52 !
53 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
54 !
55  CHARACTER(LEN=8), INTENT(IN) :: FORMAT_RES
56  CHARACTER(LEN=32),INTENT(IN) :: TEXTANIM(*)
57  INTEGER, INTENT(IN) :: N, NRES
58  INTEGER, INTENT(IN) :: LT,LDIR
59  DOUBLE PRECISION, INTENT(IN) :: AT
60  TYPE(bief_obj), INTENT(IN) :: VARNIM
61  INTEGER, INTENT(IN) :: NPALE
62 !
63 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
64 !
65  LOGICAL :: FIRST_VAR
66  CHARACTER(LEN=32) :: VAR_NAME
67  INTEGER :: I,IERR
68 !
69 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
70 !
71 ! IN THIS FILE, TIME STAMPS CORRESPOND TO DIFFERENT PERIOD COMPONENTS
72 ! AND THERE ARE AS MANY (AMPLITUDE,PHASE) PAIRS AS THERE ARE DIRECTION
73 ! COMPONENTS
74 !
75 !=======================================================================
76 !
77  first_var = .false.
78 ! NEW "TIME STAMP" PRINTED TO FILE WITH EACH NEW PERIOD
79 ! SHOULD NOT WRITE AGAIN FOR THE NEXT DIRECTION COMPONENT
80  IF (lt .LT. npale) THEN
81  first_var = .true.
82  ENDIF
83 !
84 ! AMPLITUDE AND PHASE FOR DIRECTION LDIR, PERIOD MOD(LT,NPALE)
85 !
86  DO i = 1,2
87  IF(ASSOCIATED(varnim%ADR(i)%P%R)) THEN
88  var_name = textanim(2*(ldir-1)+i)
89  CALL add_data(format_res,nres,var_name,at,mod(lt,npale),
90  & first_var,varnim%ADR(i)%P%R,n,ierr)
91  CALL check_call(ierr,'WRITE_DATASET:ADD_DATA')
92  first_var = .false.
93  ELSE
94  WRITE(lu,*) 'WRITE_DATA: VARIABLE NO: ',i
95  WRITE(lu,*) ' NOT OR NOT WELL ALLOCATED'
96  WRITE(lu,*) ' OR POINTER NOT ASSOCIATED '
97  ENDIF
98  ENDDO
99 !
100 !=======================================================================
101 !
102  RETURN
103  END
subroutine add_data(FFORMAT, FILE_ID, VAR_NAME, TIME, RECORD, FIRST_VAR, VAR_VALUE, N, IERR)
Definition: add_data.f:8
subroutine bief_animp
Definition: bief_animp.f:4
Definition: bief.f:3