1      SUBROUTINE LIOPT(FICLEC,FICLEC2,XINIT_ROTX,XINIT_ROTY,XINIT_ROTZ
2     &                ,XINIT_VISO,XINIT_VMIN,XINIT_VMAX,XINIT_FACT
3     &                ,XINIT_FACTX,XINIT_FACTY,XINIT_FACTZ,XINIT_FACV
4     &                ,XINIT_XCUR,XINIT_YCUR,XINIT_ZOOM
5     &                ,INIT_TABLE,INIT_ISO,INIT_FICH
6     &                ,INIT_FICH2,INIT_BORD,INIT_DEFPS,INIT_NBCOUL
7     &                ,INIT_FLECH,INIT_RECON,INIT_ISOBID,INIT_IBOITE
8     &                ,INIT_IECBOI,INIT_FOND,INIT_IAXES,INIT_IPERSP
9     &                ,INIT_DIRL,INIT_MODE,INIT_DEPL,INIT_SYMINV
10     &                ,INIT_ICTFAC)
11      INCLUDE 'com_options.f'
12      CHARACTER*128 FICLEC,FICLEC2,CBIDON
13      INTEGER IVIRG(10)
14C
15      XINIT_ECH(1,1) = BIGS
16      XINIT_ECH(2,1) = BIGS
17      XINIT_ECH(1,2) = BIGS
18      XINIT_ECH(2,2) = BIGS
19      XINIT_ECH(1,3) = BIGS
20      XINIT_ECH(2,3) = BIGS
21      XINIT_FACT = BIGS
22      XINIT_FACTX = BIGS
23      XINIT_FACTY = BIGS
24      XINIT_FACTZ = BIGS
25      XINIT_FACV = 0.
26      XINIT_ROTX = BIGS
27      XINIT_ROTY = BIGS
28      XINIT_ROTZ = BIGS
29      XINIT_VISO = BIGS
30      XINIT_VMIN = BIGS
31      XINIT_VMAX = BIGS
32      XINIT_XCUR = BIGS
33      XINIT_YCUR = BIGS
34      XINIT_ZOOM = BIGS
35      INIT_BORD   = 9999
36      INIT_DEPL   = -1
37      INIT_DEFPS  = 9999
38      INIT_DIRL   = 0
39      INIT_FICH   = 0
40      INIT_FICH2  = 0
41      INIT_FLECH  = 0
42      INIT_FOND   = -1
43      INIT_IAXES  = -1
44      INIT_IBOITE = -1
45      INIT_ICTFAC = 0
46      INIT_IECBOI = -1
47      INIT_IPERSP = 0
48      INIT_ISO    = 0
49      INIT_ISOBID = 0
50      INIT_MODE   = -1
51      INIT_NBCOUL = 0
52      INIT_RECON  = 0
53      INIT_TABLE  = 0
54      INIT_SYMINV = 0
55      ICHARG = 0
56C
57      CALL GETARG(0,PROGEFF)
58      CALL ENLEVE_TOUS_BLANCS(PROGEFF,LPROGEFF,80)
59      NUMARG = IARGC()
60      IF (NUMARG.EQ.0) THEN
61        NOM_FICH = ' '
62        LONG = 0
63      ELSE
64        CALL GETARG(NUMARG,NOM_FICH)
65        CALL ENLEVE_TOUS_BLANCS(NOM_FICH,LONG,128)
66        IF (NOM_FICH(1:1).EQ.'-') THEN
67          DO I=1,NUMARG
68            CALL GETARG(I,CBIDON)
69            CALL ENLEVE_TOUS_BLANCS(CBIDON,LBID,128)
70            IF ((LBID.EQ.8.AND.CBIDON(1:8).EQ.'-english')
71     &      .OR.(LBID.EQ.4.AND.CBIDON(1:4).EQ.'-eng')) THEN
72              III = ILANG
73              ILANG = 1
74              IF (III.NE.ILANG) CALL BERLITZ(ILANG)
75            ELSEIF((LBID.EQ.9.AND.CBIDON(1:9).EQ.'-francais')
76     &         .OR.(LBID.EQ.7.AND.CBIDON(1:7).EQ.'-french')) THEN
77              III = ILANG
78              ILANG = 0
79              IF (III.NE.ILANG) CALL BERLITZ(ILANG)
80            ENDIF
81          ENDDO
82          CALL VH
83          NOM_FICH = ' '
84          LONG = 0
85          NUMARG = NUMARG+1
86        ENDIF
87        NBERR = 0
88        IF (NUMARG.GT.1) THEN
89          DO I=1,NUMARG-1
90            DO K=1,128
91              CBIDON(K:K) = ' '
92            ENDDO
93            CALL GETARG(I,CBIDON)
94            CALL ENLEVE_TOUS_BLANCS(CBIDON,LBID,128)
95            IF (LBID.EQ.5.AND.CBIDON(1:5).EQ.'-auto') THEN
96              IAUTORELOAD = 1
97            ELSEIF(LBID.EQ.7.AND.CBIDON(1:6).EQ.'-axis=') THEN
98              READ(CBIDON(7:7),'(I1)') INIT_IAXES
99              INIT_IAXES = MIN(5,MAX(0,INIT_IAXES))
100            ELSEIF(LBID.GT.4.AND.CBIDON(1:4).EQ.'-bg=') THEN
101              IF (LBID.EQ.5) THEN
102                READ(CBIDON(5:5),'(I1)') INIT_FOND
103              ELSE
104                READ(CBIDON(5:6),'(I2)') INIT_FOND
105              ENDIF
106              INIT_FOND = MIN(15,MAX(0,INIT_FOND))
107            ELSEIF(LBID.EQ.7.AND.CBIDON(1:6).EQ.'-bord=') THEN
108              READ(CBIDON(7:7),'(I1)') INIT_BORD
109              IF (INIT_BORD.GT.8) THEN
110                INIT_BORD = 9999
111                IF (ILANG.EQ.0) THEN
112                  PRINT*,
113     &         '*** Les types de bords sont compris entre 0 et 8'
114                ELSE
115                  PRINT*,
116     &         '*** Boundary type lies between 0 and 8'
117                ENDIF
118                CALL ERREUROPT(CBIDON,LBID,NBERR)
119              ENDIF
120            ELSEIF(LBID.GT.5.AND.CBIDON(1:5).EQ.'-box=') THEN
121              IF (LBID.NE.7) THEN
122                IF (LBID.EQ.6.AND.CBIDON(6:6).EQ.'0') THEN
123                  INIT_IBOITE = 0
124                  INIT_IECBOI = 0
125                ELSE
126                  IF (ILANG.EQ.0) THEN
127                    PRINT*,
128     & '*** Types de boites possibles: 0 ou [10,14] ou [20,24]'
129                  ELSE
130                    PRINT*,
131     & '*** Possible box types: 0 or [10,14] or [20,24]'
132                  ENDIF
133                  CALL ERREUROPT(CBIDON,LBID,NBERR)
134                ENDIF
135              ELSE
136                READ(CBIDON(6:7),'(I2)') IBID
137                INIT_IBOITE = IBID/10
138                INIT_IECBOI = MOD(IBID,10)
139                INIT_IBOITE = MAX(0,MIN(2,INIT_IBOITE))
140                INIT_IECBOI = MAX(0,MIN(8,INIT_IECBOI))
141              ENDIF
142            ELSEIF(LBID.GT.8.AND.CBIDON(1:8).EQ.'-colseg=') THEN
143              READ(CBIDON(9:LBID),*) ICOLAR
144              ICOLAR = MIN(15,MAX(0,ICOLAR))
145            ELSEIF(LBID.GT.5.AND.CBIDON(1:5).EQ.'-cour') THEN
146              IF (CBIDON(6:10).EQ.'fich=') THEN
147                NOM_COUR = CBIDON(11:LBID)
148                LONCOUR = LBID-10
149              ELSEIF(CBIDON(6:14).EQ.'lignecol=') THEN
150                READ(CBIDON(15:LBID),*) ICSEG
151                IF (ICSEG.LT.0.OR.ICSEG.GT.15) ICSEG = 7
152              ELSEIF(CBIDON(6:11).EQ.'ptcol=') THEN
153                READ(CBIDON(12:LBID),*) ICPTS
154                IF (ICPTS.LT.0.OR.ICPTS.GT.15) ICPTS = 1
155              ELSEIF(CBIDON(6:12).EQ.'ptsize=') THEN
156                READ(CBIDON(13:LBID),*) FACPTS
157                FACPTS = MAX(0.,FACPTS)
158              ELSEIF(CBIDON(6:16).EQ.'epaisligne=') THEN
159                READ(CBIDON(17:LBID),*) IEPSEG
160              ELSEIF(CBIDON(6:12).EQ.'pttype=') THEN
161                READ(CBIDON(13:LBID),*) ITPTS
162              ELSEIF(CBIDON(6:10).EQ.'ptvu=') THEN
163                READ(CBIDON(11:LBID),*) IOPMAR
164              ENDIF
165            ELSEIF(LBID.GE.4.AND.CBIDON(1:4).EQ.'-cri') THEN
166              IOPTFORME = -3
167              NODEPL = 1
168            ELSEIF(LBID.GE.5.AND.CBIDON(1:5).EQ.'-depl') THEN
169              IF (LBID.EQ.5) THEN
170                INIT_DEPL = 0
171              ELSEIF(CBIDON(6:6).EQ.'=') THEN
172                READ(CBIDON(7:LBID),*) INIT_DEPL
173              ELSE
174                CALL ERREUROPT(CBIDON,LBID,NBERR)
175              ENDIF
176            ELSEIF(LBID.GE.7.AND.CBIDON(1:7).EQ.'-nodepl') THEN
177              NODEPL = 1
178            ELSEIF(LBID.GT.4.AND.CBIDON(1:4).EQ.'-ech') THEN
179              IF (LBID.GT.7.AND.CBIDON(1:7).EQ.'-echx0=') THEN
180                READ(CBIDON(8:LBID),*) XINIT_ECH(1,1)
181              ELSEIF(LBID.GT.7.AND.CBIDON(1:7).EQ.'-echx1=') THEN
182                READ(CBIDON(8:LBID),*) XINIT_ECH(2,1)
183              ELSEIF(LBID.GT.7.AND.CBIDON(1:7).EQ.'-echy0=') THEN
184                READ(CBIDON(8:LBID),*) XINIT_ECH(1,2)
185              ELSEIF(LBID.GT.7.AND.CBIDON(1:7).EQ.'-echy1=') THEN
186                READ(CBIDON(8:LBID),*) XINIT_ECH(2,2)
187              ELSEIF(LBID.GT.7.AND.CBIDON(1:7).EQ.'-echz0=') THEN
188                READ(CBIDON(8:LBID),*) XINIT_ECH(1,3)
189              ELSEIF(LBID.GT.7.AND.CBIDON(1:7).EQ.'-echz1=') THEN
190                READ(CBIDON(8:LBID),*) XINIT_ECH(2,3)
191              ENDIF
192              IF (XINIT_ECH(1,1).NE.BIGS
193     &       .AND.XINIT_ECH(2,1).NE.BIGS) THEN
194                XEMI = MIN(XINIT_ECH(1,1),XINIT_ECH(2,1))
195                XEMA = MAX(XINIT_ECH(1,1),XINIT_ECH(2,1))
196                XINIT_ECH(1,1) = XEMI
197                XINIT_ECH(2,1) = XEMA
198              ENDIF
199              IF (XINIT_ECH(1,2).NE.BIGS
200     &       .AND.XINIT_ECH(2,2).NE.BIGS) THEN
201                YEMI = MIN(XINIT_ECH(1,2),XINIT_ECH(2,2))
202                YEMA = MAX(XINIT_ECH(1,2),XINIT_ECH(2,2))
203                XINIT_ECH(1,2) = YEMI
204                XINIT_ECH(2,2) = YEMA
205              ENDIF
206              IF (XINIT_ECH(1,3).NE.BIGS
207     &       .AND.XINIT_ECH(2,3).NE.BIGS) THEN
208                ZEMI = MIN(XINIT_ECH(1,3),XINIT_ECH(2,3))
209                ZEMA = MAX(XINIT_ECH(1,3),XINIT_ECH(2,3))
210                XINIT_ECH(1,3) = ZEMI
211                XINIT_ECH(2,3) = ZEMA
212              ENDIF
213            ELSEIF(LBID.EQ.8.AND.CBIDON(1:8).EQ.'-english') THEN
214              III = ILANG
215              ILANG = 1
216              IF (III.NE.ILANG) CALL BERLITZ(ILANG)
217            ELSEIF(LBID.EQ.4.AND.CBIDON(1:4).EQ.'-eng') THEN
218              III = ILANG
219              ILANG = 1
220              IF (III.NE.ILANG) CALL BERLITZ(ILANG)
221            ELSEIF(LBID.GE.5.AND.CBIDON(1:5).EQ.'-exag') THEN
222              IF (LBID.EQ.5
223     &             .OR.(LBID.EQ.10.AND.CBIDON(6:10).EQ.'=auto')) THEN
224                XINIT_FACT = 311263.
225                ITOUCHEX = 1
226              ELSEIF(LBID.GT.6.AND.CBIDON(6:6).EQ.'=') THEN
227                READ(CBIDON(7:LBID),*) XINIT_FACT
228                IF (XINIT_FACT.NE.1.) ITOUCHEX = 1
229              ELSEIF(LBID.GT.7.AND.CBIDON(1:7).EQ.'-exagx=') THEN
230                READ(CBIDON(8:LBID),*) XINIT_FACTX
231                IF (XINIT_FACTX.NE.1.) ITOUCHEX = 1
232              ELSEIF(LBID.GT.7.AND.CBIDON(1:7).EQ.'-exagy=') THEN
233                READ(CBIDON(8:LBID),*) XINIT_FACTY
234                IF (XINIT_FACTY.NE.1.) ITOUCHEX = 1
235              ELSEIF(LBID.GT.7.AND.CBIDON(1:7).EQ.'-exagz=') THEN
236                READ(CBIDON(8:LBID),*) XINIT_FACTZ
237                IF (XINIT_FACTZ.NE.1.) ITOUCHEX = 1
238              ENDIF
239            ELSEIF(LBID.EQ.5.AND.CBIDON(1:5).EQ.'-cube') THEN
240              XINIT_FACTX = 0.
241              XINIT_FACTY = 0.
242              XINIT_FACTZ = 0.
243            ELSEIF(LBID.GT.6.AND.CBIDON(1:6).EQ.'-fich=') THEN
244              IDIEZE = 0
245              DO K=7,LBID
246                IF (CBIDON(K:K).EQ.'#') IDIEZE=K
247              ENDDO
248              IF (IDIEZE.GT.0.AND.IDIEZE.LT.LBID) THEN
249                READ(CBIDON(IDIEZE+1:LBID),*) ICHARG
250                LBID = IDIEZE-1
251              ENDIF
252              IF (INIT_FICH.GT.0) THEN
253                FICLEC2 = CBIDON(7:LBID)
254                INIT_FICH2 = LBID-6
255                CALL REMETFULLPATH(FICLEC2,INIT_FICH2)
256              ELSE
257                FICLEC = CBIDON(7:LBID)
258                INIT_FICH = LBID-6
259                CALL REMETFULLPATH(FICLEC,INIT_FICH)
260              ENDIF
261            ELSEIF(LBID.GE.7.AND.CBIDON(1:7).EQ.'-fleche') THEN
262              INIT_FLECH = 1
263              IF (LBID.GT.7.AND.CBIDON(8:8).EQ.'=') THEN
264                READ(CBIDON(9:LBID),*) XINIT_FACV
265                IF (XINIT_FACV.EQ.0.) XINIT_FACV = 1.E-4
266              ENDIF
267            ELSEIF(LBID.GE.6.AND.CBIDON(1:6).EQ.'-arrow') THEN
268              INIT_FLECH = 1
269              IF (LBID.GT.6.AND.CBIDON(7:7).EQ.'=') THEN
270                READ(CBIDON(8:LBID),*) XINIT_FACV
271                IF (XINIT_FACV.EQ.0.) XINIT_FACV = 1.E-4
272              ENDIF
273            ELSEIF(LBID.EQ.9.AND.CBIDON(1:9).EQ.'-francais') THEN
274              III = ILANG
275              ILANG = 0
276              IF (III.NE.ILANG) CALL BERLITZ(ILANG)
277            ELSEIF(LBID.EQ.7.AND.CBIDON(1:7).EQ.'-french') THEN
278              III = ILANG
279              ILANG = 0
280              IF (III.NE.ILANG) CALL BERLITZ(ILANG)
281            ELSEIF(LBID.GT.7.AND.CBIDON(1:7).EQ.'-front=') THEN
282              IF (CBIDON(8:8).EQ.'1') THEN
283                IFRONT = 1
284              ELSEIF(CBIDON(8:8).EQ.'2') THEN
285                IFRONT = 2
286              ELSEIF(CBIDON(8:8).EQ.'3') THEN
287                IFRONT = 3
288              ELSEIF(CBIDON(8:8).EQ.'4') THEN
289                IFRONT = -1
290              ELSE
291                CALL ERREUROPT(CBIDON,LBID,NBERR)
292              ENDIF
293            ELSEIF(LBID.GE.5.AND.CBIDON(1:5).EQ.'-full') THEN
294              IELIMI = 1
295              IF (LBID.GE.11.AND.CBIDON(1:11).EQ.'-fullshrink')
296     &          IDEBRAP = 1
297            ELSEIF(LBID.EQ.10.AND.CBIDON(1:9).EQ.'-gouraud=') THEN
298              IF (CBIDON(10:10).EQ.'1') THEN
299                INIT_ICTFAC = 97
300              ELSEIF(CBIDON(10:10).EQ.'2') THEN
301                INIT_ICTFAC = 96
302              ENDIF
303            ELSEIF(LBID.GE.7.AND.CBIDON(1:7).EQ.'-hidden') THEN
304              IFC = 1
305            ELSEIF(LBID.GE.9.AND.CBIDON(1:9).EQ.'-nohidden') THEN
306              IFC = -1
307            ELSEIF(LBID.EQ.7.AND.CBIDON(1:6).EQ.'-info=') THEN
308              IF (CBIDON(7:7).EQ.'1') THEN
309                IDEPOUILLE = 1
310              ELSEIF(CBIDON(7:7).EQ.'2') THEN
311                IDEPOUILLE = 2
312              ENDIF
313            ELSEIF((LBID.EQ.6.OR.LBID.GE.7)
314     &             .AND.CBIDON(1:5).EQ.'-iso=') THEN
315              IF (LBID.EQ.6) THEN
316                IF (CBIDON(6:6).EQ.'x') THEN
317                  INIT_ISOBID = 2
318                ELSEIF(CBIDON(6:6).EQ.'y') THEN
319                  INIT_ISOBID = 3
320                ELSEIF(CBIDON(6:6).EQ.'z') THEN
321                  INIT_ISOBID = 1
322                ELSE
323                  READ(CBIDON(6:6),'(I1)') INIT_ISO
324                ENDIF
325              ELSE
326                READ(CBIDON(6:7),'(I2)') INIT_ISO
327              ENDIF
328              IF (INIT_ISO.GT.11.OR.INIT_ISO.LT.0) THEN
329                INIT_ISO = 0
330                IF (ILANG.EQ.0) THEN
331                  PRINT*,
332     &         '*** Les types d''isovaleurs sont compris entre 0 et 11'
333                ELSE
334                  PRINT*,
335     &         '*** Contour plot type lies between 0 and 11'
336                ENDIF
337                CALL ERREUROPT(CBIDON,LBID,NBERR)
338              ENDIF
339            ELSEIF(LBID.GT.8.AND.CBIDON(1:8).EQ.'-isosurf') THEN
340              IF (CBIDON(9:9).EQ.'=') THEN
341                READ(CBIDON(10:LBID),*) XINIT_VISO
342                ICALSU = 0
343              ELSEIF(CBIDON(9:10).EQ.'+=') THEN
344                READ(CBIDON(11:LBID),*) XINIT_VISO
345                ICALSU = 2
346              ELSEIF(CBIDON(9:10).EQ.'-=') THEN
347                READ(CBIDON(11:LBID),*) XINIT_VISO
348                ICALSU = 1
349              ELSE
350                CALL ERREUROPT(CBIDON,LBID,NBERR)
351              ENDIF
352            ELSEIF(LBID.GT.5.AND.CBIDON(1:4).EQ.'-leg') THEN
353              IF (CBIDON(5:5).EQ.'=') THEN
354                LONLEG = LBID-5
355                LEG(1:LONLEG) = CBIDON(6:LBID)
356                IF (LONLEG.GT.2.AND.LEG(1:1).EQ.LEG(LONLEG:LONLEG)) THEN
357                  IF (LEG(1:1).EQ.'"'.OR.LEG(1:1).EQ."'") THEN
358                    LEG(1:LONLEG-2) = LEG(2:LONLEG-1)
359                    LONLEG = LONLEG-2
360                  ENDIF
361                ENDIF
362                ILEGMAN = 1
363                IF (ILEG.EQ.0) ILEG = 1
364              ELSEIF(LBID.EQ.9.AND.CBIDON(1:8).EQ.'-legpos=') THEN
365                READ(CBIDON(9:9),*) ILEG
366                ILEG = MIN(MAX(ILEG,0),5)
367              ELSE
368                CALL ERREUROPT(CBIDON,LBID,NBERR)
369              ENDIF
370            ELSEIF(LBID.EQ.6.AND.CBIDON(1:6).EQ.'-noleg') THEN
371              ILEG = -1
372            ELSEIF(LBID.GT.7.AND.CBIDON(1:7).EQ.'-light=') THEN
373              READ(CBIDON(8:LBID),*) INIT_DIRL
374              IF (INIT_DIRL.LT.-1.OR.INIT_DIRL.GT.6) THEN
375                CALL ERREUROPT(CBIDON,LBID,NBERR)
376                INIT_DIRL = 0
377              ENDIF
378            ELSEIF(LBID.GE.4.AND.CBIDON(1:4).EQ.'-log') THEN
379              IF (LBID.EQ.4) THEN
380                ILOGX = 1
381                ILOGY = 1
382                ILOGZ = 1
383              ELSEIF(CBIDON(5:5).EQ.'x') THEN
384                ILOGX = 1
385              ELSEIF(CBIDON(5:5).EQ.'y') THEN
386                ILOGY = 1
387              ELSEIF(CBIDON(5:5).EQ.'z') THEN
388                ILOGZ = 1
389              ELSE
390                CALL ERREUROPT(CBIDON,LBID,NBERR)
391              ENDIF
392            ELSEIF(LBID.GE.5.AND.CBIDON(1:5).EQ.'-mode') THEN
393              IF (LBID.EQ.5) THEN
394                INIT_MODE = 0
395              ELSEIF(CBIDON(6:6).EQ.'=') THEN
396                READ(CBIDON(7:LBID),*) INIT_MODE
397              ELSE
398                CALL ERREUROPT(CBIDON,LBID,NBERR)
399              ENDIF
400            ELSEIF(LBID.GT.7.AND.CBIDON(1:7).EQ.'-nbcol=') THEN
401              READ(CBIDON(8:LBID),*) INIT_NBCOUL
402              ITOUCHNB = 1
403            ELSEIF(LBID.GT.8.AND.CBIDON(1:8).EQ.'-nbcoul=') THEN
404              READ(CBIDON(9:LBID),*) INIT_NBCOUL
405              ITOUCHNB = 1
406            ELSEIF(LBID.GE.4.AND.CBIDON(1:4).EQ.'-opt') THEN
407              IF (LBID.GE.5.AND.CBIDON(5:5).EQ.'p') THEN
408                IOPTFORME = 2
409              ELSE
410                IOPTFORME = 1
411              ENDIF
412cc              NODEPL = 1
413            ELSEIF(LBID.GE.4.AND.CBIDON(1:4).EQ.'-lev') THEN
414              IF (CBIDON(5:5).EQ.'0') THEN
415                IOPTFORME = -2
416              ELSE
417                IOPTFORME = -1
418              ENDIF
419cc              NODEPL = 1
420            ELSEIF(LBID.GT.7.AND.CBIDON(1:7).EQ.'-persp=') THEN
421              READ(CBIDON(8:LBID),*) INIT_IPERSP
422              IF (INIT_IPERSP.LT.0.OR.INIT_IPERSP.GT.3) THEN
423                CALL ERREUROPT(CBIDON,LBID,NBERR)
424                INIT_IPERSP = 0
425              ELSE
426                IF (INIT_IPERSP.EQ.0) THEN
427                  INIT_IPERSP = 1
428                ELSE
429                  INIT_IPERSP = -INIT_IPERSP
430                ENDIF
431              ENDIF
432            ELSEIF(LBID.GE.3.AND.CBIDON(1:3).EQ.'-ps') THEN
433              IF (LBID.GT.7.AND.CBIDON(1:7).EQ.'-psdef=') THEN
434                NVIRG = 0
435                DO J=8,LBID
436                  IF (CBIDON(J:J).EQ.',') THEN
437                    NVIRG = NVIRG+1
438                    IVIRG(NVIRG) = J
439                  ENDIF
440                ENDDO
441                IVIRG(NVIRG+1) = LBID+1
442                I0 = 8
443                ISIG = 1
444                IINF = 0
445                IPOR = 1
446                IFLAG = 0
447                DO J=1,NVIRG+1
448                  IF (CBIDON(I0:IVIRG(J)-1).EQ.'seul') THEN
449                    INIT_DEFPS = 8
450                    GOTO 10
451                  ELSEIF(CBIDON(I0:IVIRG(J)-1).EQ.'sign') THEN
452                    ISIG = 1
453                    IFLAG = 1
454                  ELSEIF(CBIDON(I0:IVIRG(J)-1).EQ.'nosign') THEN
455                    ISIG = 0
456                    IFLAG = 1
457                  ELSEIF(CBIDON(I0:IVIRG(J)-1).EQ.'info') THEN
458                    IINF = 1
459                    IFLAG = 1
460                  ELSEIF(CBIDON(I0:IVIRG(J)-1).EQ.'noinfo') THEN
461                    IINF = 0
462                    IFLAG = 1
463                  ELSEIF(CBIDON(I0:IVIRG(J)-1).EQ.'port') THEN
464                    IPOR = 1
465                    IFLAG = 1
466                  ELSEIF(CBIDON(I0:IVIRG(J)-1).EQ.'land') THEN
467                    IPOR = 0
468                    IFLAG = 1
469                  ELSE
470Cfj                    IF (ILANG.EQ.0) THEN
471Cfj                      PRINT*,
472Cfj     &'*** Option invalide : -psdef='//CBIDON(I0:IVIRG(J)-1)
473Cfj                    ELSE
474Cfj                      PRINT*,
475Cfj     &'*** Invalid option: -psdef='//CBIDON(I0:IVIRG(J)-1)
476Cfj                    ENDIF
477                    CALL ERREUROPT(CBIDON,LBID,NBERR)
478                  ENDIF
479                  I0 = IVIRG(J)+1
480                ENDDO
481 10             IF (INIT_DEFPS.NE.8.AND.IFLAG.EQ.1) THEN
482                  INIT_DEFPS = 0
483                  IF (ISIG.EQ.0) INIT_DEFPS = INIT_DEFPS+1
484                  IF (IINF.EQ.1) INIT_DEFPS = INIT_DEFPS+2
485                  IF (IPOR.EQ.0) INIT_DEFPS = INIT_DEFPS+4
486                ENDIF
487              ELSE
488                IBATCH = 1
489                ITERMC = 3
490                LLL = 4
491                IF (LBID.GE.6.AND.CBIDON(1:6).EQ.'-pscol') THEN
492                  IPOSTCOL = 1
493                  LLL = 7
494                ELSEIF(LBID.GE.7.AND.CBIDON(1:7).EQ.'-pscoul') THEN
495                  IPOSTCOL = 1
496                  LLL = 8
497                ENDIF
498                IF (LBID.GT.LLL) THEN
499                  IF (CBIDON(LLL:LLL).EQ.'=') THEN
500                    LONPS = LBID-LLL
501                    NOMPS(1:LONPS) = CBIDON(LLL+1:LBID)
502                    ISTDOUT = 1
503                  ENDIF
504                ENDIF
505              ENDIF
506            ELSEIF(LBID.GT.6.AND.CBIDON(1:6).EQ.'-rotx=') THEN
507              READ(CBIDON(7:LBID),*) XINIT_ROTX
508            ELSEIF(LBID.GT.6.AND.CBIDON(1:6).EQ.'-roty=') THEN
509              READ(CBIDON(7:LBID),*) XINIT_ROTY
510            ELSEIF(LBID.GT.6.AND.CBIDON(1:6).EQ.'-rotz=') THEN
511              READ(CBIDON(7:LBID),*) XINIT_ROTZ
512            ELSEIF(LBID.GE.9.AND.CBIDON(1:9).EQ.'-savemesh') THEN
513              ISAUVEMESH = 1
514            ELSEIF(LBID.GE.4.AND.CBIDON(1:4).EQ.'-sym') THEN
515              IF (LBID.GT.5.AND.CBIDON(1:5).EQ.'-sym=') THEN
516                READ(CBIDON(6:LBID),*) INIT_RECON
517              ELSEIF(LBID.EQ.5.AND.CBIDON(1:5).EQ.'-symr') THEN
518                IF (INIT_SYMINV.NE.1) ISYMR = 1
519              ELSEIF(LBID.EQ.7.AND.CBIDON(1:7).EQ.'-syminv') THEN
520                IF (ISYMR.NE.1) INIT_SYMINV = 1
521              ELSE
522                INIT_RECON = -1
523              ENDIF
524            ELSEIF(LBID.GT.7.AND.CBIDON(1:7).EQ.'-table=') THEN
525              ITOUCHTAB = 1
526              READ(CBIDON(8:LBID),*) INIT_TABLE
527              IF (INIT_TABLE.LE.0.OR.INIT_TABLE.GT.NTABMAX) THEN
528                IF (ILANG.EQ.0) THEN
529                  PRINT*,
530     &  '*** Les tables de couleurs doivent �tre entre 1 et',NTABMAX
531                ELSE
532                  PRINT*,
533     &         '*** Color table number are between 1 and',NTABMAX
534                ENDIF
535                INIT_TABLE = 0
536                CALL ERREUROPT(CBIDON,LBID,NBERR)
537              ENDIF
538            ELSEIF(LBID.GT.6.AND.CBIDON(1:6).EQ.'-vmax=') THEN
539              READ(CBIDON(7:LBID),*) XINIT_VMAX
540            ELSEIF(LBID.GT.6.AND.CBIDON(1:6).EQ.'-vmin=') THEN
541              READ(CBIDON(7:LBID),*) XINIT_VMIN
542            ELSEIF(LBID.GT.8.AND.CBIDON(1:8).EQ.'-xcentr=') THEN
543              READ(CBIDON(9:LBID),*) XINIT_XCUR
544            ELSEIF(LBID.GT.8.AND.CBIDON(1:8).EQ.'-ycentr=') THEN
545              READ(CBIDON(9:LBID),*) XINIT_YCUR
546            ELSEIF(LBID.GT.6.AND.CBIDON(1:6).EQ.'-zoom=') THEN
547              READ(CBIDON(7:LBID),*) XINIT_ZOOM
548            ELSE
549              CALL ERREUROPT(CBIDON,LBID,NBERR)
550            ENDIF
551          ENDDO
552        ENDIF
553        IF (NBERR.GT.0) CALL ETLEHELPALORS
554      ENDIF
555      END
556C=======================================================================
557      SUBROUTINE ETLEHELPALORS
558      INCLUDE 'com_options.f'
559C
560      IF (ILANG.EQ.0) THEN
561        PRINT*,'*** tapez "'//PROGEFF(1:LPROGEFF)//
562     &       ' -h" pour voir la liste des options'
563      ELSE
564        PRINT*,'*** type "'//PROGEFF(1:LPROGEFF)//
565     &       ' -h" to display the options list'
566      ENDIF
567      END
568C=======================================================================
569      SUBROUTINE ERREUROPT(CBIDON,LBID,NBERR)
570      INCLUDE 'com_options.f'
571      CHARACTER*128 CBIDON
572C
573      NBERR = NBERR+1
574      IF (ILANG.EQ.0) THEN
575        PRINT*,'*** Option invalide : '//CBIDON(1:LBID)
576      ELSE
577        PRINT*,'*** Invalid option: '//CBIDON(1:LBID)
578      ENDIF
579      END
580