The TELEMAC-MASCARET system  trunk
cvsp_p.f
Go to the documentation of this file.
1 ! *****************
2  SUBROUTINE cvsp_p
3 ! *****************
4 !
5  &(path_pre,file_pre,jg)
6 !
7 !***********************************************************************
8 ! SISYPHE V7P2 16/05/2017
9 !***********************************************************************
10 !
11 !brief CSV-FILE OUTPUT OF A VERTICAL SORTING PROFILE IN POINT J
12 !
13 !history UWE MERKEL
14 !+ 20/07/2011
15 !+ V6P3
16 !+
17 !
18 !history P. A. TASSI (EDF R&D, LNHE)
19 !+ 12/03/2013
20 !+ V6P3
21 !+ Cleaning, cosmetic
22 !
23 !history J-M HERVOUET (EDF R&D, LNHE)
24 !+ 02/01/2014
25 !+ V7P0
26 !+ Use of KNOGL replaced by GLOBAL_TO_LOCAL_POINT.
27 !
28 !history UWE MERKEL, R. KOPMANN (BAW)
29 !+ 2016 / 2017
30 !+ V6P3 / V7P2
31 !
32 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
33 !| JG |<--| GLOBAL POINT NUMBER
34 !| PATH_PRE |<--| WHERE TO SAVE
35 !| FILE_PRE |<--| FILENAMETRUNK
36 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
37 !
39  USE bief
40  USE bief_def
42 !
44  IMPLICIT NONE
45 !
46 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
47 !
48  INTEGER , INTENT(IN) :: JG
49  CHARACTER(*), INTENT(IN) :: PATH_PRE
50  CHARACTER(*), INTENT(IN) :: FILE_PRE
51 !
52 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
53 !
54  CHARACTER(LEN=100) DEBUGFILE
55  CHARACTER(LEN=7) OCSTR
56  INTEGER I, K, J
57  DOUBLE PRECISION AT, BSUM
58  INTEGER :: ID
59 !
60 !-----------------------------------------------------------------------
61 !
62  at = dt*lt/percou
63  j = jg
65 !
66 ! GLOBAL NUMBERS TO LOCAL NUMBERS
67 !
68  IF(ncsize.GT.1) THEN
70  ENDIF
71 !
72  WRITE(unit=ocstr, fmt='(I7)') outputcounter
73  DO i=1,7
74  IF(ocstr(i:i)==' ') ocstr(i:i)='0'
75  ENDDO
76 !
77  WRITE(unit=debugfile, fmt='(A,A,A,A,I8,A,G15.8,A)')
78  & path_pre,ocstr,'_',file_pre,
79  & jg,'_T_',at,'_VSP.CSV'
80 
81  DO i=1,len_trim(debugfile)
82  IF(debugfile(i:i)==' ') debugfile(i:i)='_'
83  ENDDO
84 !
85  IF(j > 0) THEN
86  CALL get_free_id(id)
87  OPEN(id, file=debugfile, status='UNKNOWN' )
88  rewind id
89  WRITE(id,*)
90  &"J K FD50(I) AT PRO_D(K_I) PRO_F(K_I) X Y D50 ALT TOB HEIGHT"
91 !
92  DO k=1,pro_max(j)
93  bsum = 0.d0
94  DO i=1,nsicla
95  bsum = fdm(i)*pro_f(j,pro_max(j)+1-k,i) + bsum
96  ENDDO
97 !
98  DO i=1,nsicla
99  IF(k.EQ.1) THEN
100 ! FULL OUTPUT WITH COORDINATES ETC. ON SURFACE
101  WRITE (id,'(I8,1X,I4,1X,10(G20.12,1X))')
102  & jg,pro_max(j)+1-k,fdm(i),at,
103  & pro_d(j,pro_max(j)+1-k,i),
104  & pro_f(j,pro_max(j)+1-k,i),x(j),y(j),
105  & bsum,es(j,1),tob%R(j), z%R(j)
106  ELSE
107 ! FOLLOWING SECTIONS
108  WRITE (id,'(I8,1X,I4,1X,5(G20.12,1X))')
109  & jg,pro_max(j)+1-k,fdm(i),at,
110  & pro_d(j,pro_max(j)+1-k,i),
111  & pro_f(j,pro_max(j)+1-k,i)
112  ENDIF
113  ENDDO
114  ENDDO
115 !
116  bsum = 0.d0
117  DO i=1,nsicla
118  bsum = fdm(i)*pro_f(j,1,i) + bsum
119  ENDDO
120 !
121  CLOSE(id)
122 !
123  ENDIF
124 !
125 !-----------------------------------------------------------------------
126 !
127  RETURN
128  END SUBROUTINE cvsp_p
double precision, dimension(:,:,:), allocatable, target pro_f
integer ncsize
Definition: bief_def.f:49
double precision, target dt
double precision, dimension(:), pointer x
subroutine cvsp_p(PATH_PRE, FILE_PRE, JG)
Definition: cvsp_p.f:7
integer function global_to_local_point(IPOIN, MESH)
integer, dimension(:), allocatable pro_max
double precision, dimension(nsiclm), target fdm
type(bief_obj), target z
double precision, dimension(:), pointer y
double precision, dimension(:,:,:), allocatable, target pro_d
type(bief_obj), target tob
type(bief_mesh), target mesh
double precision, dimension(:,:), allocatable, target es
Definition: bief.f:3