33
34
35
39 USE reader_old_mod , ONLY : nslash
40 USE reader_old_mod , ONLY : kr2r
41
42
43
44#include "implicit_f.inc"
45
46
47
48#include "com01_c.inc"
49#include "com04_c.inc"
50#include "scr17_c.inc"
51#include "param_c.inc"
52#include "r2r_c.inc"
53
54
55
56 INTEGER IEXTER(NR2R,*)
57
58
59
60 INTEGER REF,I,J,S,START,ADDRESS(NSUBDOM+1),NB(NSUBDOM+1)
61 INTEGER COMPT,TAB_TMP((+1)*NR2RLNK),,TLK
62 CHARACTER NAME_FULL*150,NAM*150,NAM_TMP*150,LINKZ*80,CHRUN*4
63 INTEGER :: LEN_TMP_NAME
64 CHARACTER(len=4096) :: TMP_NAME
65
66
67 ref = 1981
68 tab_tmp(:)=0
69
70
71
72 compt = 1
73 start = nslash(kr2r)+1
74
75 DO i=0,nsubdom
76 address(i+1)=compt
77 DO j=start,nr2rlnk
78 IF ((iexter(3,j)==i).OR.(iexter(4,j)==i)) THEN
79 tab_tmp(compt)=iexter(2,j)
80 compt = compt+1
81 ENDIF
82 END DO
83 nb(i+1)=compt-address(i+1)
84 END DO
85
86
87
88 WRITE(chrun,'(I4.4)')irun
89
90 nam = rootnam0(1:len_trim(rootnam0))//'_'//chrun//'.r2r'
93
94 OPEN(unit=ref,file=tmp_name(1:len_tmp_name),
95 . access='SEQUENTIAL',form='FORMATTED',status='UNKNOWN')
96
97 WRITE(ref,1000)'--------------------------------------------'
98 WRITE(REF,1000)' rad2rad input file - generated by
starter '
99 WRITE(REF,1000)'--------------------------------------------'
100 WRITE(REF,1400)'$ '
101
102
103
104 WRITE(REF,1000)'--------------------------------------------'
105 WRITE(REF,1000)' 1. domains '
106 WRITE(REF,1000)'--------------------------------------------'
107 NAME_FULL=ROOTNAM0(1:LEN_TRIM(ROOTNAM0))
108 WRITE(REF,1100) NAME_FULL
109
110 DO I=1,NSUBDOM+1
111 IF ((I-1)/=0) THEN
112 NAM=DOM_NAME(ISUBDOM(8,I-1):ISUBDOM(8,I-1)+ISUBDOM(7,I-1)-1)
113 WRITE(REF,1100) NAM
114 ENDIF
115 WRITE(REF,1500) (TAB_TMP(J+ADDRESS(I)-1),J=1,NB(I))
116 END DO
117
118
119
120 WRITE(REF,1000)'--------------------------------------------'
121 WRITE(REF,1000)' 2. interfaces '
122 WRITE(REF,1000)'--------------------------------------------'
123
124 DO I=START,NR2RLNK
125 IF (IEXTER(5,I)==40) THEN
126
127 WRITE(REF,1310) IEXTER(5,I)/10
128 ELSEIF (IEXTER(5,I)==50) THEN
129
130 WRITE(REF,1330) IEXTER(5,I)/10
131 ELSEIF (IEXTER(5,I)==60) THEN
132
133 TLK = 4
134 IF (FLG_TIED(5)==1) THEN
135 WRITE(REF,1350) TLK
136 ELSE
137 WRITE(REF,1340) TLK
138 ENDIF
139 WRITE(REF,*) ' 0.1'
140 ELSEIF (IEXTER(5,I)==70) THEN
141
142 TLK = 4
143 WRITE(REF,1360) TLK
144 ELSEIF (FLG_TIED(IEXTER(5,I))==1) THEN
145 WRITE(REF,1320) IEXTER(5,I)
146 ELSE
147 WRITE(REF,1300) IEXTER(5,I)
148 ENDIF
149 WRITE(LINKZ,1800) IEXTER(2,I)
150
151 DO J=1,2
152 IF (IEXTER(2+J,I)==0) THEN
153 NAM_TMP = NAME_FULL
154 ELSE
155 IDOM = IEXTER(2+J,I)
156 S = ISUBDOM(8,IDOM)
157 NAM_TMP = DOM_NAME(S:S+ISUBDOM(7,IDOM)-1)
158 ENDIF
159 NAM=TRIM(NAM_TMP)//' '//TRIM(LINKZ)
160 WRITE(REF,1900) NAM
161 END DO
162
163 END DO
164
165
166
167 WRITE(REF,1000)'--------------------------------------------'
168 WRITE(REF,1000)' 3. options '
169 WRITE(REF,1000)'--------------------------------------------'
170
171 WRITE(REF,1400)'/siff '
172 WRITE(REF,1400)'/mltps/on '
173 WRITE(REF,1400)'$ '
174 WRITE(REF,1400)'/END '
175 CLOSE(REF)
176
177
178 RETURN
179
180 1000 FORMAT('$',A44)
181 1100 FORMAT('/DOMAIN/',A100)
182 1300 FORMAT('/LINK/TYPE',I1)
183 1310 FORMAT('/LINK/TYPE',I1,'/RBODY')
184 1320 FORMAT('/LINK/TYPE',I1,'/TIED')
185 1330 FORMAT('/LINK/TYPE',I1,'/KINE')
186 1340 FORMAT('/LINK/TYPE',i1,'/FSI')
187 1350 FORMAT('/LINK/TYPE',i1,'/TIED/FSI')
188 1360 FORMAT('/LINK/TYPE',i1,'/NLOCAL')
189 1400 FORMAT('',a10)
190 1500 FORMAT( 3x,10i5)
191 1600 FORMAT(' ',a10,i10)
192 1700 FORMAT(' SUBDOMAIN',i1,i10)
193 1800 FORMAT(i10)
194 1900 FORMAT(' ',a100)
195
196
197 RETURN
character(len=infile_char_len) infile_name