38
39
40
41 USE elbufdef_mod
44
45
46
47
48
49
50
51#include "implicit_f.inc"
52
53
54
55#include "vect01_c.inc"
56#include "param_c.inc"
57#include "scr17_c.inc"
58
59
60
61 INTEGER IGEO(NPROPGI,*),IX(NIX,*),NIX,IPM(NPROPMI,*),NLAY,IR,IS,IMAT
62 my_real geo(npropg,*),pm(npropm,*)
63 TYPE(), TARGET :: ELBUF_STR
64
65
66
67 INTEGER IPTHK,IPMAT,IPPOS,,MLN,IMID,IPID,PID
68 INTEGER I,N,I1,I2,I3,J,IGTYP,II,L_DMG,ILAYER,IT,NPTT
70 CHARACTER(LEN=NCHARTITLE) :: TITR,TITR1
71 my_real,
DIMENSION(:),
POINTER :: dir_dmg
72
73 TYPE(BUF_LAY_) ,POINTER :: BUFLY
74 TYPE(L_BUFEL_) ,POINTER :: LBUF
75
76 IF(npt==0)THEN
77 imid=ix(1,1)
78 ipid = ix(nix-1,1)
79 pid = igeo(1,ipid)
80 mid = ipm(1,imid)
81 mln = nint(pm(19,imid))
82 CALL fretitl2(titr,igeo(npropgi-ltitr+1,pid),ltitr)
83 CALL fretitl2(titr1,ipm(npropmi-ltitr+1,imid),ltitr)
84 CALL ancmsg(msgid=23, anmode=aninfo, msgtype=msgerror, i1=pid, c1=titr, i2=mid, c2=titr1, i3=27)
85 ENDIF
86
87 igtyp=nint(geo(12,imat))
88 IF (igtyp /= 51 .AND. igtyp /= 52) THEN
89 DO n=1,npt
90 ilayer = n
91 IF (nlay > 1) THEN
92 lbuf => elbuf_str%BUFLY(ilayer)%LBUF(ir,is,1)
93 ELSE
94 lbuf => elbuf_str%BUFLY(1)%LBUF(ir,is,ilayer)
95 ENDIF
96
97 l_dmg = elbuf_str%BUFLY(1)%L_DMG
98 dir_dmg => lbuf%DMG(1:l_dmg*llt)
99
100 DO i=lft,llt
101 dir_dmg(i) = one
102 dir_dmg(i+llt) = zero
103 ENDDO
104 ENDDO
105 ELSEIF (igtyp == 51) THEN
106 DO ilayer=1,nlay
107 nptt = elbuf_str%BUFLY(ilayer)%NPTT
108 DO it=1,nptt
109 lbuf => elbuf_str%BUFLY(ilayer)%LBUF(ir,is,it)
110
111 l_dmg = elbuf_str%BUFLY(ilayer)%L_DMG
112 dir_dmg => lbuf%DMG(1:l_dmg*llt)
113
114 DO i=lft,llt
115 dir_dmg(i) = one
116 dir_dmg(i+llt) = zero
117 ENDDO
118 ENDDO
119 ENDDO
120 ENDIF
121
122 ipthk = 300
123 ippos = 400
124 ipmat = 100
125 IF(igtyp/=11 .AND. igtyp/=17 . and. igtyp/=51) THEN
126 thkl = one / npt
127 pos0 =-half*(one + thkl)
128 DO n=1,npt
129 i1=ippos+n
130 i2=ipthk+n
131 i3=ipmat+n
132 dp = n*thkl
133 DO i=lft,llt
134 geo(i1,imat) = pos0 + dp
135 geo(i2,imat) = thkl
136 ENDDO
137 ENDDO
138 ENDIF
139
140 RETURN
integer, parameter nchartitle
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)