33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
59
60
61
62#include "implicit_f.inc"
63
64
65
66 INTEGER ,INTENT(OUT) :: OPTION_ID,UNIT_ID
67 CHARACTER(len=ncharkey),INTENT(OUT) :: KEYWORD1,KEYWORD2,KEYWORD3,KEYWORD4
68 CHARACTER(len=nchartitle),INTENT(OUT) :: OPTION_TITR
69 OPTIONAL :: option_id,unit_id,keyword1,keyword2,keyword3,keyword4,option_titr
70
71
72
73 INTEGER :: CPT, CPT1,CPT2,IOK,S_KEYWORD,S_TITR_TMP,TMP_OPTION_ID
74CHARACTER(LEN=NCHARLINE) :: KEYWORD,
75
76 keyword=''
77 tmp_option_id = 0
78 tmp_unit_id = 0
79 tmp_submodel_index = 0
80 IF(PRESENT(option_titr)) option_titr=''
81 IF(PRESENT(keyword1)) keyword1=''
82 IF(PRESENT(keyword2)) keyword2=''
83 IF(PRESENT(keyword3)) keyword3=''
84 IF(PRESENT(keyword4)) keyword4=''
85 my_position = 0
86
87 CALL cpp_current_option(tmp_option_id,tmp_unit_id,tmp_submodel_index,keyword,s_keyword,
88 . titr_tmp,s_titr_tmp)
89
90 IF(PRESENT(option_id)) option_id = tmp_option_id
91 IF(PRESENT(unit_id)) unit_id = tmp_unit_id
92 IF(PRESENT(option_titr)) option_titr(1:s_titr_tmp) = titr_tmp(1:s_titr_tmp)
93
94 cpt = 2
95 cpt1 = 2
96 cpt2 = 2
97 iok = 0
98
100 IF(keyword(cpt:cpt) == '/' .OR. keyword(cpt:cpt) == ' ') THEN
101 cpt2 = cpt
102 iok = 1
103 ENDIF
104 cpt = cpt + 1
105 ENDDO
106 IF(
PRESENT(keyword1)) keyword1(1:cpt2-cpt1) = keyword(cpt1:
min((cpt2-1),s_keyword))
107 cpt1 = cpt2+1
108 iok = 0
109 DO WHILE (cpt <
ncharline .AND. iok == 0)
110 IF(keyword(cpt:cpt) == '/' .OR. keyword(cpt:cpt) == ' ') THEN
111 cpt2 = cpt
112 iok = 1
113 ENDIF
114 cpt = cpt + 1
115 ENDDO
116 IF(
PRESENT(keyword2)) keyword2(1:cpt2-cpt1) = keyword(cpt1:
min((cpt2-1),s_keyword))
117 cpt1 = cpt2+1
118 iok = 0
119 DO WHILE (cpt <
ncharline .AND. iok == 0)
120 IF(keyword(cpt:cpt) == '/' .OR. keyword(cpt:cpt) == ' ') THEN
121 cpt2 = cpt
122 iok = 1
123 ENDIF
124 cpt = cpt + 1
125 ENDDO
126 IF(
PRESENT(keyword3)) keyword3(1:cpt2-cpt1) = keyword(cpt1:
min((cpt2-1),s_keyword))
127 cpt1 = cpt2+1
128 iok = 0
129 DO WHILE (cpt <
ncharline .AND. iok == 0)
130 IF(keyword(cpt:cpt) == '/' .OR. keyword(cpt:cpt) == ' ') THEN
131 cpt2 = cpt
132 iok = 1
133 ENDIF
134 cpt = cpt + 1
135 ENDDO
136 IF(
PRESENT(keyword4)) keyword4(1:cpt2-cpt1) = keyword(cpt1:
min((cpt2-1),s_keyword))
137
138 RETURN
139
integer, parameter nchartitle
integer, parameter ncharkey
integer, parameter ncharline