32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 USE my_alloc_mod
53
54
55
56#include "implicit_f.inc"
57
58
59
60 INTEGER, INTENT(INOUT) :: IGRS
61 TYPE (SURF_) , TARGET ,INTENT(INOUT):: IGRSURF(*)
62 TYPE (SET_) , INTENT(INOUT) :: SET
63 INTEGER, INTENT(IN) :: LISURF1,NSURF
65
66
67
68 INTEGER NSEG,J,IAD
69 CHARACTER MESS*40
70 DATA mess/'SET SURF GROUP DEFINITION '/
71
72
73
74
75 nseg = set%NB_ELLIPSE
76
77
78 igrs = igrs + 1
79
80 igrsurf(igrs)%ID = set%SET_ID
81 igrsurf(igrs)%TITLE = set%TITLE
82 igrsurf(igrs)%NSEG = nseg
83
84 igrsurf(igrs)%TYPE = 0
85 igrsurf(igrs)%ID_MADYMO = 0
86 igrsurf(igrs)%IAD_BUFR = 0
87 igrsurf(igrs)%NB_MADYMO = 0
88 igrsurf(igrs)%TYPE_MADYMO = 0
89 igrsurf(igrs)%LEVEL = 1
90 igrsurf(igrs)%TH_SURF = 0
91 igrsurf(igrs)%ISH4N3N = 0
92 igrsurf(igrs)%NSEG_R2R_ALL = 0
93 igrsurf(igrs)%NSEG_R2R_SHARE = 0
94 igrsurf(igrs)%IAD_IGE = 0
95 igrsurf(igrs)%NSEG_IGE = 0
96
97
98
99 IF (nseg == 0) igrsurf(igrs)%SET_GROUP = 1
100
101
102 IF (nseg > 0) THEN
103
104 CALL my_alloc(igrsurf(igrs)%NODES,nseg,4)
105 igrsurf(igrs)%NODES(1:nseg,1:4) = 0
106 CALL my_alloc(igrsurf(igrs)%ELTYP,nseg)
107 igrsurf(igrs)%ELTYP(1:nseg) = 0
108 CALL my_alloc(igrsurf(igrs)%ELEM,nseg)
109 igrsurf(igrs)%ELEM(1:nseg) = 0
110
111 igrsurf(igrs)%TYPE = 101
112 igrsurf(igrs)%IAD_BUFR = set%ELLIPSE_IAD_BUFR
113 iad=set%ELLIPSE_IAD_BUFR
114 igrsurf(igrs)%ID_MADYMO = set%ELLIPSE_ID_MADYMO
115 DO j=1,9
116 bufsf(iad+7+j-1)=set%ELLIPSE_SKEW(j)
117 ENDDO
118
119 bufsf(iad+1)=set%ELLIPSE_A
120 bufsf(iad+2)=set%ELLIPSE_B
121 bufsf(iad+3)=set%ELLIPSE_C
122 bufsf(iad+4)=set%ELLIPSE_XC
123 bufsf(iad+5)=set%ELLIPSE_YC
124 bufsf(iad+6)=set%ELLIPSE_ZC
125
126
127 bufsf(iad+16)=set%ELLIPSE_XC
128 bufsf(iad+17)=set%ELLIPSE_YC
129 bufsf(iad+18)=set%ELLIPSE_ZC
130
131 bufsf(iad+36)=set%ELLIPSE_N
132
133
134 ENDIF
135
136 set%SET_NSURF_ID = igrs
137 set%HAS_SURF_SEG = nseg
138
139 RETURN