Philippe 02/05/2016: moved all LIBTOOLS files in LIBTOOLS directory
[MNH-git_open_source-lfs.git] / LIBTOOLS / tools / diachro / src / DIAPRO / prints.f90
1 !     #############################
2       MODULE MODI_PRINTS
3 !     #############################
4 !
5 INTERFACE
6 !
7 SUBROUTINE PRINTS(HCARIN)
8 CHARACTER(LEN=*) :: HCARIN
9 END SUBROUTINE  PRINTS
10 !
11 END INTERFACE
12 END MODULE MODI_PRINTS
13 !     ######spl
14       SUBROUTINE PRINTS(HCARIN)
15 !     #########################
16 !
17 !!****  *PRINTS* -  Gestion des impressions temps reel
18 !!
19 !!    PURPOSE
20 !!    -------
21 !
22 !!**  METHOD
23 !!    ------
24 !!     
25 !!
26 !!    EXTERNAL
27 !!    --------
28 !!
29 !!    IMPLICIT ARGUMENTS
30 !!    ------------------
31 !!
32 !!
33 !!
34 !!    REFERENCE
35 !!    ---------
36 !!
37 !!
38 !!    AUTHOR
39 !!    ------
40 !!      
41 !!      J. Duron    * Laboratoire d'Aerologie *
42 !!
43 !!    MODIFICATIONS
44 !!    -------------
45 !!      Original     
46 !-------------------------------------------------------------------------------
47 !
48 !*       0.    DECLARATIONS
49 !              ------------
50 !
51 USE MODD_TITLE
52 USE MODD_DEFCV
53 USE MODD_MEMCV
54 USE MODD_RESOLVCAR
55 USE MODD_ALLOC_FORDIACHRO
56 USE MODD_FILES_DIACHRO
57 USE MODN_NCAR
58 USE MODD_DIM1
59 USE MODD_TYPE_AND_LH
60 USE MODD_PARAMETERS
61 USE MODN_PARA
62 USE MODI_REALLOC_AND_LOAD
63 USE MODD_SEVERAL_RECORDS
64 USE MODD_CTL_AXES_AND_STYL
65 USE MODI_VERIF_GROUP
66 USE MODI_FMREAD
67
68 IMPLICIT NONE
69 !
70 !*       0.1  Dummy arguments 
71 !          
72 CHARACTER(LEN=*) :: HCARIN
73 !
74 !*       0.2  local variables
75 !          
76
77 INTEGER          :: INDGRPS, INDGRP, INDPRI, INDFIL, INDVPT
78 INTEGER          :: INDIM,   INDPROC, INDTIME, INDNAM, INDVAL
79 INTEGER          :: INDMNMX, INDNITV, INDIR
80 INTEGER          :: IND, INDN
81 INTEGER          :: INDPAR1, INDPAR2
82 INTEGER          :: J, JM, JJ, JA, J2, JB, JC
83 INTEGER          :: JLOOPI, JLOOPJ, JLOOPK, JLOOPT, JLOOPN, JLOOPP
84 INTEGER          :: ILOOP, IDEB, IFIN, II
85 INTEGER   ::   ILENG, ILENCH, IGRID, ILENDIM, IT, IM
86 INTEGER   ::   IRESPDIA, IRESP, INUM
87 INTEGER   ::   IGROUP=0, ICOMPT
88 INTEGER   ::   IDI, IEI, IDJ, IEJ, IDK, IEK
89 INTEGER   ::   IIB, IIE, IJB, IJE, IKB, IKE
90 INTEGER,DIMENSION(:),ALLOCATABLE :: ITABCHAR
91 INTEGER,DIMENSION(5)             :: IMN, IMX
92 INTEGER,DIMENSION(12)            :: ITEM
93
94 REAL      ::   ZMN, ZMX, ZMOY
95
96 LOGICAL  :: GPRIGRP
97 LOGICAL, DIMENSION(:,:,:,:),ALLOCATABLE  :: GMASK
98
99 CHARACTER(LEN=16) :: YGROUP2
100 CHARACTER(LEN=17),DIMENSION(10) :: YTIME2
101 CHARACTER(LEN=8),DIMENSION(20)  :: YTIMES
102 CHARACTER(LEN=8),DIMENSION(50)  :: YMASK
103 CHARACTER(LEN=1)  :: YC1
104 CHARACTER(LEN=2)  :: YC2
105 CHARACTER(LEN=3)  :: YC3
106 CHARACTER(LEN=4)  :: YC4
107 CHARACTER(LEN=5)  :: YC5
108 CHARACTER(LEN=6)  :: YC6
109 CHARACTER(LEN=16) :: YRECFM
110 CHARACTER(LEN=40) :: YTEM
111 ! Aout 99 Longueur YCOMMENT passee de 20 A 100
112 CHARACTER(LEN=100) :: YCOMMENT
113 CHARACTER(LEN=16),DIMENSION(5000),SAVE    :: YGROUP 
114 !
115 !-------------------------------------------------------------------------------
116 IIB=1+JPHEXT; IIE=NIMAX+JPHEXT
117 IJB=1+JPHEXT; IJE=NJMAX+JPHEXT
118 IKB=1+JPVEXT; IKE=NKMAX+JPVEXT
119
120 ICOMPT=0
121 ITEM(:)=1
122 YTEM(1:LEN(YTEM))=' '
123
124 GPRIGRP=.FALSE.
125 INDIR  =INDEX(HCARIN,'DIRCUR')
126 INDGRPS=INDEX(HCARIN,'GROUP')
127 INDIM  =INDEX(HCARIN,'DIM')
128 INDPROC=INDEX(HCARIN,'PROC')
129 INDTIME=INDEX(HCARIN,'TIME')
130 INDPRI =INDEX(HCARIN,'PRINT')
131 INDFIL =INDEX(HCARIN,'FILE')
132 INDNAM =INDEX(HCARIN,'NAM')
133 INDVAL =INDEX(HCARIN,'VAL')
134 INDMNMX =INDEX(HCARIN,'MNMX')
135 IF(INDMNMX == 0)THEN
136   INDMNMX =INDEX(HCARIN,'MINMAX')
137 ENDIF
138 INDNITV =INDEX(HCARIN,'NITV')
139 INDVPT =INDEX(HCARIN,'VPTCUR')
140 INDPAR1=INDEX(HCARIN,'(')
141 INDPAR2=INDEX(HCARIN,')')
142
143 YGROUP(1:LEN(YGROUP))=' '
144 !
145 ! Impression de la directive courante
146 !
147 IF(INDIR /= 0)THEN
148   PRINT*, CDIRPREC
149   RETURN
150 ENDIF
151
152 !
153 ! Impression limites de la fenetre du dessin qui vient d etre trace
154 !
155 IF(INDVPT /= 0)THEN
156   print *,' **Limites, en coord. normalisees, de la fenetre du dernier graphique**' 
157   IF(XCURVPTL== 0. .AND. XCURVPTR == 0. .AND. XCURVPTB == 0. .AND. XCURVPTT == 0.)THEN
158     print *,' Non initialisees. Besoin de generer le dessin dont vous voulez les limites '
159   ELSE
160     print *,'   XMIN,XMAX,YMIN,YMAX= ',XCURVPTL,XCURVPTR,XCURVPTB,XCURVPTT
161   ENDIF
162   RETURN
163 ENDIF
164 !
165 ! Impression du nb d'intervalles sur les axes X et Y definissant
166 ! les graduations majeures et mineures
167 !
168 IF(INDNITV /= 0)THEN
169    PRINT '(1X,''Controle des graduations Majeures et mineures par definition du nb '')'
170    PRINT '(1X,''d intervalles sur les axes X et Y.  VALEURS ACTUELLES :'')'
171   PRINT '(1X,78(1H*))'
172   PRINT '(1X,''CH Cartesien   _K_  _Z_  _PR_  _TK_'')'
173   PRINT '(1X,78(1H.))'
174   PRINT '(1X,''NCHITVXMJ:'',I4,2X,''NCHITVXMN:'',I4,2X,''NCHITVYMJ:'',I4,2X, &
175 & ''NCHITVYMN:'',I4)',NCHITVXMJ,NCHITVXMN,NCHITVYMJ,NCHITVYMN
176   PRINT '(1X,78(1H.))'
177   PRINT '(1X,''CH Projection cartographique _K_  _Z_  _PR_  _TK_  _EV_'')'
178   IF(NCHPCITVXMJ == 0 .AND. NCHPCITVXMN == 0 .AND. NCHPCITVYMJ == 0 .AND. &
179      NCHPCITVYMN == 0)THEN
180     PRINT '(1X,''NCHPCITVXMJ: 1  NCHPCITVXMN:NISUP-NIINF  NCHPCITVYMJ: 1  &
181     &NCHPCITVYMN:NJSUP-NJINF '')'
182   ELSE
183   PRINT '(1X,''NCHPCITVXMJ:'',I4,2X,''NCHPCITVXMN:'',I4,2X,''NCHPCITVYMJ:'',I4,2X, &
184 & ''NCHPCITVYMN:'',I4)',NCHPCITVXMJ,NCHPCITVXMN,NCHPCITVYMJ,NCHPCITVYMN
185   ENDIF
186   PRINT '(1X,78(1H.))'
187   PRINT '(1X,''CV   _CV_  _PVT_'')'
188   PRINT '(1X,''NCVITVXMJ:'',I4,2X,''NCVITVXMN:'',I4,2X,''NCVITVYMJ:'',I4,2X, &
189 & ''NCVITVYMN:'',I4)',NCVITVXMJ,NCVITVXMN,NCVITVYMJ,NCVITVYMN
190   PRINT '(1X,78(1H.))'
191   PRINT '(1X,''PV   _PV_ '')'
192   PRINT '(1X,''NPVITVXMJ:'',I4,2X,''NPVITVXMN:'',I4,2X,''NPVITVYMJ:'',I4,2X, &
193 & ''NPVITVYMN:'',I4)',NPVITVXMJ,NPVITVXMN,NPVITVYMJ,NPVITVYMN
194   PRINT '(1X,78(1H.))'
195   PRINT '(1X,''FT   _FT_  _PVKT_'')'
196   PRINT '(1X,''NFTITVXMJ:'',I4,2X,''NFTITVXMN:'',I4,2X,''NFTITVYMJ:'',I4,2X, &
197 & ''NFTITVYMN:'',I4)',NFTITVXMJ,NFTITVXMN,NFTITVYMJ,NFTITVYMN
198   PRINT '(1X,78(1H.))'
199   PRINT '(1X,''FT1   _FT1_  '')'
200   PRINT '(1X,''NFT1ITVXMJ:'',I4,2X,''NFT1ITVXMN:'',I4,2X,''NFT1ITVYMJ:'',I4,2X, &
201 & ''NFT1ITVYMN:'',I4)',NFT1ITVXMJ,NFT1ITVXMN,NFT1ITVYMJ,NFT1ITVYMN
202   PRINT '(1X,78(1H.))'
203   PRINT '(1X,''MASK   _MASK_  '')'
204   PRINT '(1X,''NMASKITVXMJ:'',I4,2X,''NMASKITVXMN:'',I4,2X,''NMASKITVYMJ:'',I4,2X, &
205 & ''NMASKITVYMN:'',I4)',NMASKITVXMJ,NMASKITVXMN,NMASKITVYMJ,NMASKITVYMN
206   PRINT '(1X,78(1H.))'
207   PRINT '(1X,''XY   _XY_  '')'
208   PRINT '(1X,''NXYITVXMJ:'',I4,2X,''NXYITVXMN:'',I4,2X,''NXYITVYMJ:'',I4,2X, &
209 & ''NXYITVYMN:'',I4)',NXYITVXMJ,NXYITVXMN,NXYITVYMJ,NXYITVYMN
210   PRINT '(1X,78(1H.))'
211   RETURN
212 ENDIF
213
214 !
215 ! Impression des parametres de namelist
216 !
217 IF(INDNAM /= 0)THEN
218   PRINT '(1X,''NIINF:'',I4,6X,''NISUP:'',I4,6X,''NJINF:'',I4,6X,''NJSUP:'',I4,6X,''LGEOG:'',L1)', &
219   NIINF,NISUP,NJINF,NJSUP,LGEOG
220   PRINT '(1X,''XSZTITXL:'',F5.3,4X,''XSZTITXM:'',F5.3,4X,''XSZTITXR:'',F5.3)',&
221   XSZTITXL,XSZTITXM,XSZTITXR
222   PRINT '(1X,78(1H.))'
223   PRINT '(1X,''NIDEBCOU:'',I4,3X,''NJDEBCOU:'',I4,3X,''NLANGLE:'',I3,5X, &
224 & ''NLMAX:'',I4)',NIDEBCOU,NJDEBCOU,NLANGLE,NLMAX
225   PRINT '(1X,''XIDEBCOU:'',F6.0,1X,''XJDEBCOU:'',F6.0,1X,''XHMIN:'',F6.0,4X, &
226 & ''XHMAX:'',F6.0)',XIDEBCOU,XJDEBCOU,XHMIN,XHMAX
227   PRINT '(1X,''LDEFCV2:'',L1,7X,''LDEFCV2LL:'',L1,5X,''LDEFCV2IND:'',L1,2X,''LTRACECV:'',L1)',LDEFCV2,LDEFCV2LL,LDEFCV2IND,LTRACECV
228   PRINT '(1X,''XIDEBCV:'',F8.0,2X,''XJDEBCV:'',F8.0,2X,''XIFINCV:'',F8.0,2X, &
229 & ''XJFINCV:'',F8.0)',XIDEBCV,XJDEBCV,XIFINCV,XJFINCV
230   PRINT '(1X,''XIDEBCVLL'',F10.5,1X,''XJDEBCVLL'',F10.5,1X,''XIFINCVLL'',F10.5,1X, &
231 & ''XJFINCVLL'',F10.5)',XIDEBCVLL,XJDEBCVLL,XIFINCVLL,XJFINCVLL
232   PRINT '(1X,''NIDEBCV:'',I4,4X,''NJDEBCV:'',I4,4X,''NIFINCV:'',I4,4X, &
233 & ''NJFINCV:'',I4)',NIDEBCV,NJDEBCV,NIFINCV,NJFINCV
234   PRINT '(1X,''PROFILE:'',I4,4X,''LMNMXUSER:'',L2,4X,''LCOLUSER:'', &
235 & L2)',NPROFILE,LMNMXUSER,LCOLUSER
236   IF(NBFTMN /= 0)THEN
237 !   PRINT '(1X,''NBFTMN:'',I4,''NBFTMX:'',I4)
238     IF(NBFTMN == NBFTMX)THEN
239       PRINT '(11X,''PROC'',11X,''*  XPV(ou FT ou PVKT)MIN_  *'', &
240 &             ''*  XPV(ou FT ou PVKT)MAX_'')'
241       PRINT '(1X,78(1H*))'
242       DO J=1,NBFTMN
243         PRINT '(1X,A25,''*'',E15.8,10X,''*'',E15.8)',CFTMN(J),XFTMN(J),XFTMX(J)
244       ENDDO
245     ELSE
246       PRINT '(11X,''PROC'',11X,''*  XPV(ou FT ou PVKT)MIN_'')'
247       PRINT '(1X,51(1H*))'
248       DO J=1,NBFTMN
249         PRINT '(1X,A25,''*'',E15.8)',CFTMN(J),XFTMN(J)
250       ENDDO
251       IF(NBFTMX /= 0)THEN
252         PRINT '(11X,''PROC'',11X,''*  XPV(ou FT ou PVKT)MAX_ '')'
253         PRINT '(1X,51(1H*))'
254         DO J=1,NBFTMX
255           PRINT '(1X,A25,''*'',E15.8)',CFTMX(J),XFTMX(J)
256         ENDDO
257       ENDIF
258     ENDIF
259   ENDIF
260   PRINT '(1X,78(1H.))'
261   PRINT '(1X,''NDOT:'',I7,4X,''NHI:'',I4,8X,''NIOFFD:'',I4,5X, &
262 & ''NIFDC:'',I4,6X,''NIGRNC:'',I4)',NDOT,NHI,NIOFFD,NIFDC,NIGRNC
263   PRINT '(1X,''NULBLL:'',I5,4X,''XSPVAL:'',F11.3,14X,''LSPVALT:'',L1,7X, &
264 & ''XSPVALT:'',F11.3)',NULBLL,XSPVAL,LSPVALT,XSPVALT
265   PRINT '(1X,''NIMNMX:'',I3,6X,''XISOMIN:'',F10.3,3X,''XISOMAX:'',F10.3,3X, &
266 & ''XDIAINT:'',F10.3)',NIMNMX,XISOMIN,XISOMAX,XDIAINT
267   DO J=SIZE(XISOLEV),1,-1
268     IF(XISOLEV(J) /= 9999.)THEN
269       JM=J
270       EXIT
271     ENDIF
272     JM=J
273   ENDDO
274   IF(XISOLEV(JM) == 9999.)THEN
275     JM=JM-1
276   ENDIF
277   !PRINT '(17X,''XISOLEV:'',4(F10.3,3X))',(XISOLEV(J),J=1,JM)
278   PRINT '(17X,''XISOREF:'',F10.3,3X,''XISOLEV:'',4(F10.3,3X))',&
279         XISOREF,(XISOLEV(J),J=1,JM)
280   IF(NLPCAR /= 0)THEN
281   PRINT '(1X,''NLPCAR:'',I3,6X,''XLATCAR:'',6F7.2)',NLPCAR,(XLATCAR(J),J=1,NLPCAR)
282   PRINT '(17X,''XLONCAR:'',6F7.2)',(XLONCAR(J),J=1,NLPCAR)
283   ENDIF
284   IF(NIJCAR /= 0)THEN
285   PRINT '(1X,''NIJCAR:'',I3,6X,''XICAR:'',6F7.2)',NIJCAR,(XICAR(J),J=1,NIJCAR)
286   PRINT '(17X,''XJCAR:'',6F7.2)',(XJCAR(J),J=1,NIJCAR)
287   ENDIF
288   PRINT '(1X,''LCOLAREA:'',L1,6X,''LCOLAREASEL:'',L1,3X,''LCOLINE:'',L1,7X, &
289 & ''LCOLINESEL:'',L1)',LCOLAREA,LCOLAREASEL,LCOLINE,LCOLINESEL
290   PRINT '(1X,''LCOLBR:'',L1,8X,''LISO:'',L1,10X,''LISOWHI:'',L1,7X, &
291 & ''LTABCOLDEF:'',L1)',LCOLBR,LISO,LISOWHI,LTABCOLDEF
292   PRINT '(1X,''LMINMAX:'',L1,7X,''LDATFILE:'',L1,6X,''LMNMXLOC:'',L1)',LMINMAX,LDATFILE,LMNMXLOC
293   PRINT '(1X,''LXY:'',L1,11X,''LXZ:'',L1,11X,''LPRINT:'',L1,8X,''LPRINTXY:'',L1)',LXY,LXZ,LPRINT,LPRINTXY
294   PRINT '(1X,78(1H.))'
295   PRINT '(1X,''LVECTMNMX:'',L1,5X,''XVHC:'',F7.3,4X,''XVRL:'',F7.3,  &
296 & 4X,''XVLC:'',F7.3,4X,''NISKIP:'',I3)', &
297   LVECTMNMX,XVHC,XVRL,XVLC,NISKIP
298   PRINT '(1X,''LULMVTMOLD:'',L1,4X,''LDIRWIND:'',L1,6X,''XANGULVT:'',F7.3)', &
299   LULMVTMOLD,LDIRWIND,XANGULVT
300   PRINT '(1X,78(1H.))'
301   PRINT '(1X,''NIRS:'',I4,7X,''NJRS:'',I4,7X,''XIRS:'',F4.0,7X,''XJRS:'',F4.0)',&
302   NIRS,NJRS,XIRS,XJRS
303   PRINT '(1X,78(1H.))'
304   PRINT '(1X,''LFT1STYLUSER:'',L1,2X,''LFTSTYLUSER:'',L1,3X,''LTITFTUSER:'',L1)',LFT1STYLUSER,LFTSTYLUSER,LTITFTUSER
305
306   RETURN
307 ENDIF
308 DO J=1,NBFILES
309   IF(NUMFILES(J) == NUMFILECUR)THEN
310     JM=J
311   ENDIF
312 ENDDO
313 !
314 ! Impression des fichiers
315 !
316 IF(INDFIL /=0)THEN
317
318 IF(NUMFILECUR <10)THEN
319   WRITE(YC1,'(I1)')NUMFILECUR
320   PRINT *,' CURRENT FILE(S): _FILE'//YC1,'_',CFILEDIAS(JM)
321 ELSE
322   WRITE(YC2,'(I2)')NUMFILECUR
323   PRINT *,' CURRENT FILE(S): _FILE'//YC2,'_',CFILEDIAS(JM)
324 ENDIF
325 IF(LFIC1)THEN
326 ELSE
327   DO J=2,NBSIMULT
328     IF(NUMFILES(NINDFILESIMULT(J)) <10)THEN
329       WRITE(YC1,'(I1)')NUMFILES(NINDFILESIMULT(J))
330       PRINT *,'                : _FILE'//YC1,'_',CFILEDIAS(NINDFILESIMULT(J))
331     ELSE
332       WRITE(YC2,'(I2)')NUMFILES(NINDFILESIMULT(J))
333       PRINT *,'                : _FILE'//YC2,'_',CFILEDIAS(NINDFILESIMULT(J))
334     ENDIF
335   ENDDO
336
337 ENDIF
338 RETURN
339 ENDIF
340 !
341 ! Impression des groupes
342 !
343 IF(INDGRPS /=0)THEN
344   ILENDIM=1
345   YRECFM='MENU_BUDGET.DIM'
346   CALL FMREAD(CFILEDIAS(JM),YRECFM,CLUOUTDIAS(JM),ILENDIM,ILENG, &
347   IGRID,ILENCH,YCOMMENT,IRESPDIA)
348   ALLOCATE(ITABCHAR(ILENG))
349   YRECFM='MENU_BUDGET'
350   CALL FMREAD(CFILEDIAS(JM),YRECFM,CLUOUTDIAS(JM),ILENG,ITABCHAR, &
351   IGRID,ILENCH,YCOMMENT,IRESPDIA)
352   IGROUP=ILENG/16
353   DO JJ=1,IGROUP
354     DO J=1,16
355       YGROUP(JJ)(J:J)=CHAR(ITABCHAR(16*(JJ-1)+J))
356     ENDDO
357   ENDDO
358   print *,'************************************ GROUPS ************************************'
359 !fuji print 100,(ADJUSTL(ADJUSTR(YGROUP(J))),J=1,IGROUP)
360 print 100,(YGROUP(J),J=1,IGROUP)
361 100 FORMAT(1X,5A15)
362 DEALLOCATE(ITABCHAR)
363 ENDIF
364 IF(INDIM + INDPROC + INDTIME + INDVAL + INDMNMX + INDPAR1 +INDPAR2 == 0)THEN
365   RETURN
366 ENDIF
367 DO JJ=INDPRI+5,LEN(HCARIN)
368   IF(HCARIN(JJ:JJ) /= ' ')THEN
369     INDGRP=JJ
370     EXIT
371   ENDIF
372 ENDDO
373 DO JJ=INDGRP,LEN(HCARIN)
374   IF(HCARIN(JJ:JJ) == ' ')EXIT
375 ENDDO
376 YGROUP2=HCARIN(INDGRP:JJ-1)
377 CALL VERIF_GROUP(CFILEDIAS(JM),CLUOUTDIAS(JM),YGROUP2)
378 IF(LGROUP)THEN
379   CALL READ_DIACHRO(CFILEDIAS(JM),CLUOUTDIAS(JM),YGROUP2)
380 ELSE
381   IF(LPBREAD)THEN
382     IF(ALLOCATED(XVAR))THEN
383       CALL ALLOC_FORDIACHRO(1,1,1,1,1,1,3)
384     ENDIF
385     LPBREAD=.FALSE.
386     RETURN
387   ENDIF
388 ENDIF
389 IF(.NOT.LFIC1)THEN
390   CALL REALLOC_AND_LOAD(YGROUP2)
391 ENDIF
392
393 !
394 ! Impression d'une matrice partielle
395 !
396 IF(INDPAR1 /= 0 .AND. INDPAR2 /= 0)THEN
397 ! Suppression des ()
398   YTEM(1: INDPAR2-INDPAR1-1)=HCARIN(INDPAR1+1:INDPAR2-1)
399   YTEM=ADJUSTL(YTEM)
400 ! Extraction des limites du domaine demande
401 ! JA -> position a un instant donne de : ou , 
402 ! J2 -> compteur de valeurs 
403   JA=0 ; J2=0
404
405   DO J=1,LEN_TRIM(YTEM)
406     IF(YTEM(J:J) == ':')THEN
407       J2=J2+1
408       READ(YTEM(JA+1:J-1),*)ITEM(J2)
409       JA=J
410     ELSE IF(YTEM(J:J) == ',')THEN
411       J2=J2+1
412       READ(YTEM(JA+1:J-1),*)ITEM(J2)
413       IF(MOD(J2,2) /= 0)THEN
414         J2=J2+1
415         ITEM(J2)=ITEM(J2-1)
416       ENDIF
417       JA=J
418     ELSE
419       IF(J == LEN_TRIM(YTEM))THEN
420         J2=J2+1
421         READ(YTEM(JA+1:J),*)ITEM(J2)
422         IF(MOD(J2,2) /= 0)THEN
423           J2=J2+1
424           ITEM(J2)=ITEM(J2-1)
425         ENDIF
426       ENDIF
427     ENDIF
428   ENDDO
429   print *,' ** print Limites du domaine demande en impression ',ITEM
430   DO J=ITEM(11),ITEM(12)
431     DO JA=ITEM(9),ITEM(10)
432       IF(ITEM(12)-ITEM(11) /= 0 .OR. ITEM(10)-ITEM(9) /=0)THEN
433         print *,' INDICES P et N ',J,' ',JA
434       ENDIF
435
436       DO JB=ITEM(7),ITEM(8)
437         IF(ITEM(8)-ITEM(7) /= 0)THEN
438           print *,' INDICE T ',JB
439         ENDIF
440         DO JC=ITEM(5),ITEM(6)
441           print *,' INDICE K= ',JC
442           ILOOP=MAX(1,(ITEM(2)-ITEM(1)+1)/5)
443           IF(ILOOP * 5 < (ITEM(2)-ITEM(1)+1))ILOOP=ILOOP+1
444           PRINT '(1X,78(1H*))'
445 !         print "(1X,78(''*''))"
446           DO JLOOPI=1,ILOOP
447             IF(JLOOPI == 1)THEN
448               IDEB=1; IFIN=5
449               IDEB=IDEB+ITEM(1)-1; IFIN=IFIN+MIN(ITEM(1),SIZE(XVAR,1))-1
450                                    IFIN=MIN(IFIN,ITEM(2))
451             ELSE
452               IDEB=IFIN+1; IFIN=MIN(IFIN+5,ITEM(2))
453             ENDIF
454           print '('' J   I-> '',3X,I4,6X,3(6X,I4,6X),(6X,I4,2X))',(/(II,II=IDEB,IFIN)/)
455           print '(1X,78(1H*))'
456           DO JLOOPJ=ITEM(4),ITEM(3),-1
457             print '(I4,2X,5(1X,E14.7))',JLOOPJ,(XVAR(II,JLOOPJ,JC,JB,JA,J),II=IDEB,IFIN)
458           ENDDO
459           ENDDO
460           print '(1X,78(1H*))'
461         ENDDO
462       ENDDO
463
464     ENDDO
465   ENDDO
466 ENDIF
467 !
468 ! Impression des dimensions
469 !
470 IF(INDIM /=0)THEN
471   SELECT CASE(CTYPE)
472     CASE('CART','MASK','SPXY')
473       PRINT *,' ******** GROUP: ',YGROUP2,' ******* TYPE: ',CTYPE,' ******* '
474       PRINT '(1X,78(1H*))'
475       GPRIGRP=.TRUE.
476       PRINT '(1X,''NIMAX='',I4,4X,''NJMAX='',I4,4X,''NKMAX='',I4,4X,''JPHEXT='', &
477 &     I2,5X,''JPVEXT='',I2)',NIMAX,NJMAX,NKMAX,JPHEXT,JPVEXT
478       PRINT '(1X,''NIL='',I4,4X,''NIH='',I4,4X,''NJL='',I4,4X,''NJH='',I4,4X   &
479 &     ,''NKL='',I4,4X,''NKH='',I4)',NIL,NIH,NJL,NJH,NKL,NKH
480       PRINT '(1X,''LICP='',L1,18X,''LJCP='',L1,18X,''LKCP='',L1)', &
481       LICP,LJCP,LKCP
482       PRINT '(1X,''('',I4,'','',I4,'','',I4,'','',I4,'','',I1,'','',I2,'') ('',I4,'','',I1,'') ('', &
483  &    I2,'') ('',I2,'') ('',I2,'') ('',I1,'') ('',I2,'','',I4,'')'')', &
484       SIZE(XVAR,1),SIZE(XVAR,2),SIZE(XVAR,3),SIZE(XVAR,4),SIZE(XVAR,5),SIZE(XVAR,6), &
485       SIZE(XTRAJT,1),SIZE(XTRAJT,2),  SIZE(CTITRE),SIZE(CUNITE),SIZE(CCOMMENT), &
486       SIZE(NGRIDIA),SIZE(XDATIME,1),SIZE(XDATIME,2)
487       IF(CTYPE == 'MASK')THEN
488          PRINT '(1X,''('',I4,'','',I4,'','',I1,'','',I4,'','',I2,'','',I1,'')'')', &
489          SIZE(XMASK,1),SIZE(XMASK,2),SIZE(XMASK,3),SIZE(XMASK,4),    &
490          SIZE(XMASK,5),SIZE(XMASK,6)
491       ENDIF
492       PRINT '(1X,78(1H*))'
493       IF(CTYPE == 'MASK')THEN
494 ! Juillet 2001
495         YMASK(:)(1:LEN(YMASK))=' '
496         DO J=1,9
497           WRITE(YC1,'(I1)')J
498           YMASK(J)(2:6)='MASK'//YC1
499         ENDDO
500         IM=SIZE(XVAR,5)
501         IF(IM > 9)THEN
502           DO J=10,IM
503             WRITE(YC2,'(I2)')J
504             YMASK(J)(2:7)='MASK'//YC2
505           ENDDO
506         ENDIF
507         PRINT '(10(1X,8(A8,''*''),/))',(YMASK(J),J=1,IM)
508         PRINT '(1X,78(1H*))'
509       ENDIF
510     CASE DEFAULT
511       PRINT *,' ******** GROUP: ',YGROUP2,' ******* TYPE: ',CTYPE,' ******* '
512       PRINT '(1X,78(1H*))'
513       GPRIGRP=.TRUE.
514       PRINT '(1X,''('',I4,'','',I4,'','',I4,'','',I6,'','',I2,'','',I2,'') ('',I6,'','',I2,'') ('', &
515  &    I2,'','',I6,'','',I4,'')'')', &
516       SIZE(XVAR,1),SIZE(XVAR,2),SIZE(XVAR,3),SIZE(XVAR,4),SIZE(XVAR,5),SIZE(XVAR,6), &
517       SIZE(XTRAJT,1),SIZE(XTRAJT,2),  SIZE(XTRAJX,1),SIZE(XTRAJX,2), &
518       SIZE(XTRAJX,3)
519       PRINT '(1X,''('',I4,'','',I6,'','',I4,'') ('',I4,'','',I6,'','',I4, &
520 & '') ('',I4,'') ('',I4,'') ('',I4,'') ('',I4,'') ('',I2,'','',I6,'')'')',&
521       SIZE(XTRAJY,1),SIZE(XTRAJY,2),SIZE(XTRAJY,3), &
522       SIZE(XTRAJZ,1),SIZE(XTRAJZ,2),SIZE(XTRAJZ,3), &
523       SIZE(CTITRE),SIZE(CUNITE),SIZE(CCOMMENT), &
524       SIZE(NGRIDIA),SIZE(XDATIME,1),SIZE(XDATIME,2)
525       IF(SIZE(XVAR,5) > 1)THEN
526         PRINT '(1X,78(1H*))'
527         DO JLOOPN=1,SIZE(XVAR,5)    !  Boucle sur les stations
528           IF(CTYPE == 'SSOL')THEN
529             INDN=1
530           ELSE
531             INDN=JLOOPN
532           ENDIF
533           YC5(1:LEN(YC5))=' '
534           WRITE(YC5,'(I5)')JLOOPN
535           IEK=SIZE(XVAR,3)
536           DO JA=1,1000000
537             IF(XTRAJZ(IEK,1,JLOOPN) == -1.E-15)THEN
538               IF(IEK == 1)THEN
539                 EXIT
540               ELSE
541                 IEK=IEK-1
542               ENDIF
543             ELSE
544               EXIT
545             ENDIF
546           ENDDO
547           IT=SIZE(XVAR,4)
548           DO JA=1,1000000
549             IF(XTRAJT(IT,INDN) == -1.E-15)THEN
550               IF(IT == 1)THEN
551                 EXIT
552               ELSE
553                 IT=IT-1
554               ENDIF
555             ELSE
556               EXIT
557             ENDIF
558           ENDDO
559           print '(1X,A4,'' N:'',A5,''  *  XVAR('',I4,I4,I4,I6,'' ,,'',I4,'' )'')',CTYPE,YC5, &
560 &         SIZE(XVAR,1),SIZE(XVAR,2),IEK,IT,SIZE(XVAR,6)
561         ENDDO
562         PRINT '(1X,78(1H*))'
563       ENDIF
564   END SELECT
565 ENDIF
566
567 DO JLOOPN=1,SIZE(XVAR,5)    !  Boucle sur les stations
568
569 IF(INDPROC + INDTIME /= 0)THEN
570   IF(SIZE(XVAR,5) /= 1)THEN
571     YC5(1:LEN(YC5))=' '
572     WRITE(YC5,'(I5)')JLOOPN
573     print *,' ++++++++ ',CTYPE,' N:',YC5
574     PRINT '(1X,78(1H*))'
575   ENDIF
576 ENDIF
577
578 ! Impression des processus
579 !
580 IF(INDPROC /=0)THEN
581   IF(CTYPE == 'MASK' .AND. JLOOPN >1)THEN
582   ELSE
583
584   IF(.NOT.GPRIGRP)THEN
585     PRINT *,' ******** GROUP: ',YGROUP2,' ******* TYPE: ',CTYPE,' ******* '
586     PRINT '(1X,78(1H*))'
587     GPRIGRP=.TRUE.
588   ENDIF
589   PRINT '(1X,''g'',6X,''*'',7X,''TITRE'',7X,''*'',7X,''UNITE'',8X,''*'',10X,''COMMENT.'')'
590 ! PRINT '(8X,''*'',7X,''TITRE'',7X,''*'',7X,''UNITE'',8X,''*'',10X,''COMMENT.'')'
591   PRINT '(1X,78(1H*))'
592   DO JJ=1,SIZE(CTITRE)
593     YC2='  '
594     IF(JJ < 10)THEN
595       WRITE(YC2(1:1),'(I1)')JJ
596     ELSE 
597       WRITE(YC2(1:2),'(I2)')JJ
598     ENDIF
599     CTITRE(JJ)=ADJUSTL(ADJUSTR(CTITRE(JJ)))
600     CUNITE(JJ)=ADJUSTL(ADJUSTR(CUNITE(JJ)))
601     CCOMMENT(JJ)=ADJUSTL(ADJUSTR(CCOMMENT(JJ)))
602     PRINT '(1X,I1,A6,''* '',A17,1X,''*'',1X,A18, &
603 !   PRINT '(1X,A6,'' * '',A17,1X,''*'',1X,A18, &
604 &   '' * '',A26)',NGRIDIA(JJ),'PROC'//YC2,CTITRE(JJ)(1:17),  &
605 !&   '' * '',A26)','PROC'//YC2,CTITRE(JJ)(1:17),  &
606     CUNITE(JJ)(1:18),CCOMMENT(JJ)(1:26)
607     IF(LEN_TRIM(CCOMMENT(JJ)) > 26 .OR. LEN_TRIM(CTITRE(JJ)) > 17 .OR. &
608     LEN_TRIM(CUNITE(JJ)) >18)THEN
609       PRINT '(8X,''* '',A17,'' * '',A18,'' * '',A26)',  &
610       CTITRE(JJ)(18:34),CUNITE(JJ)(19:36), &
611       CCOMMENT(JJ)(27:52)
612     ENDIF
613   ENDDO
614   PRINT '(1X,78(1H*))'
615
616   ENDIF
617 ENDIF
618
619 !
620 ! Impression des temps
621 !
622 SELECT CASE(CTYPE)
623   CASE('DRST','RSPL','RAPL')
624     INDN=JLOOPN
625   CASE DEFAULT
626     INDN=1
627 END SELECT
628 IF(INDTIME /= 0)THEN
629   IF(.NOT.GPRIGRP)THEN
630     PRINT *,' ******** GROUP: ',YGROUP2,' ******* TYPE: ',CTYPE,' ******* '
631     PRINT '(1X,78(1H*))'
632     GPRIGRP=.TRUE.
633   ENDIF
634   YTIMES(:)(1:LEN(YTIMES))=' '
635   YTIME2(:)(1:LEN(YTIME2))=' '
636   DO J=1,9
637     WRITE(YC1,'(I1)')J
638     YTIMES(J:J)(2:6)='TIME'//YC1
639   ENDDO
640   IT=SIZE(XTRAJT,1)
641 ! print *,'IT INDN AV DO JA ',IT,INDN
642   DO JA=1,100000
643 !print *,'on cerne le pb, JA',JA
644     IF(XTRAJT(IT,INDN) == -1.E-15)THEN
645     IF(IT == 1)THEN
646       EXIT
647     ELSE
648       IT=IT-1
649 ! print *,'on continue'
650     ENDIF
651     ELSE
652       EXIT
653     ENDIF
654   ENDDO
655
656   IF(IT < 9)THEN
657     PRINT '(1X,8(A8,''*''))',(YTIMES(J),J=1,IT)
658     PRINT '(1X,78(1H*))'
659     PRINT '(1X,8(F8.0,''*''))',(XTRAJT(J,INDN),J=1,IT)
660 !   PRINT '(1X,8(F8.0,''*''))',(XTRAJT(J,1),J=1,IT)
661     PRINT '(1X,78(1H*))'
662   ELSE
663     PRINT '(1X,8(A8,''*''))',(YTIMES(J),J=1,8)
664     PRINT '(1X,78(1H*))'
665     PRINT '(1X,8(F8.0,''*''))',(XTRAJT(J,INDN),J=1,8)
666 !   PRINT '(1X,8(F8.0,''*''))',(XTRAJT(J,1),J=1,8)
667     PRINT '(1X,78(1H*))'
668     SELECT CASE(IT)
669       CASE(9:16)
670         DO J=10,IT
671           WRITE(YC2,'(I2)')J
672           YTIMES(J:J)(2:7)='TIME'//YC2
673         ENDDO
674         PRINT '(1X,8(A8,''*''))',(YTIMES(J),J=9,IT)
675         PRINT '(1X,78(1H*))'
676         PRINT '(1X,8(F8.0,''*''))',(XTRAJT(J,INDN),J=9,IT)
677 !       PRINT '(1X,8(F8.0,''*''))',(XTRAJT(J,1),J=9,IT)
678         PRINT '(1X,78(1H*))'
679       CASE(17:99)
680         IND=8
681         DO J=IT-8+1,IT
682           WRITE(YC2,'(I2)')J
683           IND=IND+1
684           YTIMES(IND)(2:7)='TIME'//YC2
685         ENDDO
686         PRINT '(1X,8(A8,''*''))',(YTIMES(J),J=9,16)
687         PRINT '(1X,78(1H*))'
688         PRINT '(1X,8(F8.0,''*''))',(XTRAJT(J,INDN),J=IT-8+1,IT)
689 !       PRINT '(1X,8(F8.0,''*''))',(XTRAJT(J,1),J=IT-8+1,IT)
690         PRINT '(1X,78(1H*))'
691       CASE(100:999)
692         IND=8
693         DO J=IT-8+1,IT
694           WRITE(YC3,'(I3)')J
695           IND=IND+1
696           YTIMES(IND)(1:7)='TIME'//YC3
697         ENDDO
698         PRINT '(1X,8(A8,''*''))',(YTIMES(J),J=9,16)
699         PRINT '(1X,78(1H*))'
700         PRINT '(1X,8(F8.0,''*''))',(XTRAJT(J,INDN),J=IT-8+1,IT)
701 !       PRINT '(1X,8(F8.0,''*''))',(XTRAJT(J,1),J=IT-8+1,IT)
702         PRINT '(1X,78(1H*))'
703       CASE(1000:9999)
704         IND=8
705         DO J=IT-8+1,IT
706           WRITE(YC4,'(I4)')J
707           IND=IND+1
708           YTIMES(IND)(1:8)='TIME'//YC4
709         ENDDO
710         PRINT '(1X,8(A8,''*''))',(YTIMES(J),J=9,16)
711         PRINT '(1X,78(1H*))'
712         PRINT '(1X,8(F8.0,''*''))',(XTRAJT(J,INDN),J=IT-8+1,IT)
713 !       PRINT '(1X,8(F8.0,''*''))',(XTRAJT(J,1),J=IT-8+1,IT)
714         PRINT '(1X,78(1H*))'
715       CASE(10000:)
716         IND=0
717         IF(IT >= 10000 .AND. IT <= 99999)THEN
718         DO J=IT-4+1,IT
719           WRITE(YC5,'(I5)')J
720           IND=IND+1
721           YTIME2(IND)(2:10)='TIME'//YC5
722         ENDDO
723         PRINT '(1X,4(A17,''*''))',(YTIME2(J),J=1,4)
724         PRINT '(1X,78(1H*))'
725         PRINT '(1X,4(F8.0,9X,''*''))',(XTRAJT(J,INDN),J=IT-4+1,IT)
726 !       PRINT '(1X,4(F8.0,9X,''*''))',(XTRAJT(J,1),J=IT-4+1,IT)
727         PRINT '(1X,78(1H*))'
728         ELSE
729         DO J=IT-4+1,IT
730           WRITE(YC6,'(I6)')J
731           IND=IND+1
732           YTIME2(IND)(2:11)='TIME'//YC6
733         ENDDO
734         PRINT '(1X,4(A17,''*''))',(YTIME2(J),J=1,4)
735         PRINT '(1X,78(1H*))'
736         PRINT '(1X,4(F8.0,9X,''*''))',(XTRAJT(J,INDN),J=IT-4+1,IT)
737 !       PRINT '(1X,4(F8.0,9X,''*''))',(XTRAJT(J,1),J=IT-4+1,IT)
738         PRINT '(1X,78(1H*))'
739         ENDIF
740     END SELECT
741   ENDIF
742 ENDIF
743
744 ENDDO       ! Fin de boucle stations
745 !
746 ! Impression de  valeurs
747 !
748 IF(INDVAL /= 0)THEN
749   CALL FMLOOK('FICVAL','FICVAL',INUM,IRESP)
750   IF(IRESP /= 0)THEN
751     CALL FMATTR('FICVAL','FICVAL',INUM,IRESP)
752     OPEN(UNIT=INUM,FILE='FICVAL',FORM='FORMATTED')
753     PRINT '('' Les valeurs seront mises dans le fichier FICVAL '')'
754   ENDIF
755   JLOOPP=1
756 ! JLOOPK=1; JLOOPT=1; JLOOPN=1; JLOOPP=1;
757   ILOOP=SIZE(XVAR,1)/6
758   IF(ILOOP * 6 < SIZE(XVAR,1))ILOOP=ILOOP+1
759 !   WRITE(INUM,'(1X,78(1H*))')
760   DO JLOOPN=1,SIZE(XVAR,5)
761   DO JLOOPT=1,SIZE(XVAR,4)
762   WRITE(INUM,'('' 6eme indice='',I4,'' 5eme indice='',I4,'' Time JLOOPT and val '',I4,1X,F10.0)')JLOOPP,JLOOPN,&
763   JLOOPT,XTRAJT(JLOOPT,JLOOPN)
764   DO JLOOPK=1,SIZE(XVAR,3)
765   WRITE(INUM,'('' K= '',I8)')JLOOPK 
766   DO JLOOPI=1,ILOOP
767
768     IF(JLOOPI == 1)THEN
769       IDEB=1; IFIN=6
770     ELSE
771       IDEB=IFIN+1; IFIN=IFIN+6
772     ENDIF
773     IF(JLOOPI == ILOOP)THEN
774       IFIN=SIZE(XVAR,1)
775     ENDIF
776
777 !   PRINT '(1X,78(1H*))'
778 !   PRINT '(1X,6(5X,I3,5X))',(/(II,II=IDEB,IFIN)/)
779 !   PRINT '(1X,78(1H*))'
780     WRITE(INUM,'(1X,78(1H*))')
781     WRITE(INUM,'(1X,''I->'',2X,I4,5X,5(5X,I4,5X))')(/(II,II=IDEB,IFIN)/)
782     WRITE(INUM,'(1X,78(1H*))')
783
784     DO JLOOPJ=SIZE(XVAR,2),1,-1
785 !     PRINT '(1X,6E13.6)',(XVAR(II,JLOOPJ,JLOOPK,JLOOPT,JLOOPN,JLOOPP), &
786 !     II=IDEB,IFIN)
787       WRITE(INUM,'(I4,1X,6E12.5)')JLOOPJ,(XVAR(II,JLOOPJ,JLOOPK,JLOOPT,JLOOPN,JLOOPP), &
788       II=IDEB,IFIN)
789 !     WRITE(INUM,'(1X,6E13.6)')(XVAR(II,JLOOPJ,JLOOPK,JLOOPT,JLOOPN,JLOOPP), &
790     ENDDO
791 !   WRITE(INUM,'(1X,78(1H*))')
792 !   PRINT '(1X,78(1H*))'
793
794   ENDDO
795
796   ENDDO
797   ENDDO
798   ENDDO
799 ENDIF
800
801 DO JLOOPN=1,SIZE(XVAR,5)    !  Boucle sur les stations
802
803 SELECT CASE(CTYPE)
804   CASE('CART','MASK','SSOL','SPXY')
805     INDN=1
806   CASE DEFAULT
807     INDN=JLOOPN
808 END SELECT
809
810 IF(INDMNMX /= 0)THEN
811
812 SELECT CASE(CTYPE)
813   CASE('CART','MASK','SPXY')
814     IF(NIH-NIL /= 0)THEN
815       IF(NIL >= IIB)THEN
816         IDI=1
817       ELSE
818         IDI=IIB
819       ENDIF
820       IF(NIH <= IIE)THEN
821         IEI=SIZE(XVAR,1)
822       ELSE
823         IEI=IIE
824       ENDIF
825 ! Correction en Juillet 99 pour compatibilite avec les nouveaux masques(Nicole)
826       IF(CTYPE == 'MASK')THEN
827         IDI=1;IEI=1
828       ENDIF
829     ELSE
830       IDI=1; IEI=1
831     ENDIF
832
833     IF(NJH-NJL /= 0)THEN
834       IF(NJL >= IJB)THEN
835         IDJ=1
836       ELSE
837         IDJ=IJB
838       ENDIF
839       IF(NJH <= IJE)THEN
840         IEJ=SIZE(XVAR,2)
841       ELSE
842         IEJ=IJE
843       ENDIF
844 ! Correction en Juillet 99 pour compatibilite avec les nouveaux masques(Nicole)
845       IF(CTYPE == 'MASK')THEN
846         IDJ=1;IEJ=1
847       ENDIF
848     ELSE
849       IDJ=1; IEJ=1
850     ENDIF
851
852     IF(NKH-NKL /= 0)THEN
853       IF(NKL >= IKB)THEN
854         IDK=1
855       ELSE
856         IDK=IKB
857       ENDIF
858       IF(NKH <= IKE)THEN
859         IEK=SIZE(XVAR,3)
860       ELSE
861         IEK=IKE
862       ENDIF
863     ELSE
864       IDK=1; IEK=1
865     ENDIF
866     IT=SIZE(XVAR,4)
867
868   CASE DEFAULT
869
870     IDI=1; IEI=SIZE(XVAR,1)
871     IDJ=1; IEJ=SIZE(XVAR,2)
872     IDK=1; IEK=SIZE(XVAR,3)
873     DO JA=1,1000000
874       IF(XTRAJZ(IEK,1,JLOOPN) == -1.E-15)THEN
875         IF(IEK == 1)THEN
876           EXIT
877         ELSE
878           IEK=IEK-1
879         ENDIF
880       ELSE
881         EXIT
882       ENDIF
883     ENDDO
884     IT=SIZE(XVAR,4)
885     DO JA=1,1000000
886       IF(XTRAJT(IT,INDN) == -1.E-15)THEN
887         IF(IT == 1)THEN
888           EXIT
889         ELSE
890           IT=IT-1
891         ENDIF
892       ELSE
893         EXIT
894       ENDIF
895     ENDDO
896 END SELECT
897
898 IF(SIZE(XVAR,5) /= 1)THEN
899   YC5(1:LEN(YC5))=' '
900   WRITE(YC5,'(I5)')JLOOPN
901   print *,' ******** ',CTYPE,' N:',YC5
902 ENDIF
903
904   IF(.NOT.GPRIGRP)THEN
905     PRINT *,' ******** GROUP: ',YGROUP2,' ******* TYPE: ',CTYPE,' ******* '
906     PRINT '(1X,78(1H*))'
907     GPRIGRP=.TRUE.
908   ENDIF
909   PRINT '(7X,''PROC'',7X,''*'',11X,''MINVAL'',11X,''*'',11X,''MAXVAL'')'
910   PRINT '(46X,''MOY'')'
911   IF(LMNMXLOC)THEN
912   PRINT '(18X,''*'',4X,''MINLOC (i,j,k,t,n,p)'',4X,''*'',5X,  &
913   & ''MAXLOC (i,j,k,t,n,p)'')'
914   PRINT '(6X,'' Expression des indices par / a (1,1,1,1,1,1) de la matrice'',&
915 &'' consideree'')'
916   ENDIF
917   PRINT '(1X,78(1H*))'
918
919   ALLOCATE(GMASK(IEI-IDI+1,IEJ-IDJ+1,IEK-IDK+1,IT))
920   DO JLOOPP=1,SIZE(XVAR,6)
921     GMASK(:,:,:,:)=XVAR(IDI:IEI,IDJ:IEJ,IDK:IEK,1:IT,JLOOPN,JLOOPP) /= XSPVAL
922     ZMN=MINVAL(XVAR(IDI:IEI,IDJ:IEJ,IDK:IEK,1:IT,JLOOPN,JLOOPP), &
923                !MASK=XVAR(IDI:IEI,IDJ:IEJ,IDK:IEK,1:IT,JLOOPN,JLOOPP) /= XSPVAL)
924                MASK=GMASK)
925     ZMX=MAXVAL(XVAR(IDI:IEI,IDJ:IEJ,IDK:IEK,1:IT,JLOOPN,JLOOPP), &
926                !MASK=XVAR(IDI:IEI,IDJ:IEJ,IDK:IEK,1:IT,JLOOPN,JLOOPP) /= XSPVAL)
927                MASK=GMASK)
928     ZMOY=SUM(XVAR(IDI:IEI,IDJ:IEJ,IDK:IEK,1:IT,JLOOPN,JLOOPP), &
929              MASK=GMASK                                        )  /COUNT(GMASK)
930     IF(LMNMXLOC)THEN
931     IMN(1:4)=MINLOC(XVAR(IDI:IEI,IDJ:IEJ,IDK:IEK,1:IT,JLOOPN,JLOOPP), &
932                !MASK=XVAR(IDI:IEI,IDJ:IEJ,IDK:IEK,1:IT,JLOOPN,JLOOPP) /= XSPVAL)
933                MASK=GMASK)
934     IMX(1:4)=MAXLOC(XVAR(IDI:IEI,IDJ:IEJ,IDK:IEK,1:IT,JLOOPN,JLOOPP), & 
935                !MASK=XVAR(IDI:IEI,IDJ:IEJ,IDK:IEK,1:IT,JLOOPN,JLOOPP) /= XSPVAL)
936                MASK=GMASK)
937 !   ZMN=MINVAL(XVAR(IDI:IEI,IDJ:IEJ,IDK:IEK,:,JLOOPN,JLOOPP))
938 !   ZMX=MAXVAL(XVAR(IDI:IEI,IDJ:IEJ,IDK:IEK,:,JLOOPN,JLOOPP))
939 !   IMN(:)=MINLOC(XVAR(IDI:IEI,IDJ:IEJ,IDK:IEK,:,:,JLOOPP))
940 !   IMX(:)=MAXLOC(XVAR(IDI:IEI,IDJ:IEJ,IDK:IEK,:,:,JLOOPP))
941     IMN(1)=IMN(1)+IDI-1
942     IMN(2)=IMN(2)+IDJ-1
943     IMN(3)=IMN(3)+IDK-1
944     IMX(1)=IMX(1)+IDI-1
945     IMX(2)=IMX(2)+IDJ-1
946     IMX(3)=IMX(3)+IDK-1
947     IMN(5)=JLOOPN
948     IMX(5)=JLOOPN
949     ENDIF
950     CTITRE(JLOOPP)=ADJUSTL(ADJUSTR(CTITRE(JLOOPP)))
951     PRINT '(1X,A17,''*'',7X,E14.7,7X,''*'',7X,E14.7)', &
952     & CTITRE(JLOOPP)(1:17),ZMN,ZMX
953     PRINT '(40X,E14.7)',ZMOY
954
955     IF(LMNMXLOC)THEN
956 !   PRINT '(1X,17X,''*'',7X,E14.7,7X,''*'',7X,E14.7)',ZMN,ZMX
957     PRINT '(1X,A17,''*'',''  ('',4(I4,1H,),I2,'','',I2, &
958     & '')   *   ('',4(I4,1H,),I2,'','',I2,'')'')',  &
959     & CTITRE(JLOOPP)(1:17),IMN,JLOOPP,IMX,JLOOPP
960     ENDIF
961   ENDDO
962   DEALLOCATE(GMASK)
963   PRINT '(1X,78(1H*))'
964 ENDIF
965
966 ENDDO      !  Fin boucle stations
967 !
968 CALL ALLOC_FORDIACHRO(1,1,1,1,1,1,3)
969
970 RETURN
971 !
972 !
973 !------------------------------------------------------------------------------
974 !
975 !*     5.       EXIT
976 !               ----
977 !
978 !
979 END SUBROUTINE  PRINTS