36
37
38
42
43
44
45#include "implicit_f.inc"
46
47
48
49#include "com04_c.inc"
50#include "scr17_c.inc"
51#include "tabsiz_c.inc"
52
53
54
55 TYPE(SURF_) ,DIMENSION(NSURF) :: IGRSURF
56
57
58
59 INTEGER ISU,,J,K,L_SURF,ID,NSEG,TYPE,ID_MADYMO,IAD_BUFR,
60 . NB_MADYMO,TYPE_MADYMO,LEVEL,TH_SURF,ISH4N3N,NSEG_R2R_ALL,
61 . NSEG_R2R_SHARE,NODE,ELTYP,ELEM,ERR,ITITLE(LTITR),LEN
62 CHARACTER(LEN=NCHARTITLE) :: TITR
63 INTEGER, ALLOCATABLE, DIMENSION (:) :: ISURFI
64
65
66 DO isu=1,nsurf
70 len = 0
71 DO j=1,ltitr
72 IF (titr(j:j) /= ' ') len = j
73 ENDDO
74 igrsurf(isu)%TITLE = titr
75 ENDDO
76
77
78 ALLOCATE (isurfi(lenisurf) ,stat=err)
80!=======================================================================
81 l_surf = 0
82
83 DO isu=1,nsurf
85 l_surf = l_surf+1
86 nseg = isurfi(l_surf+1)
87 l_surf = l_surf+1
88 TYPE = isurfi(l_surf+1)
89 l_surf = l_surf+1
90 id_madymo = isurfi(l_surf+1)
91 l_surf = l_surf+1
92 iad_bufr = isurfi(l_surf+1)
93 l_surf = l_surf+1
94 nb_madymo = isurfi(l_surf+1)
95 l_surf = l_surf+1
96 type_madymo = isurfi(l_surf+1)
97 l_surf = l_surf+1
98 level = isurfi(l_surf+1)
99 l_surf = l_surf+1
100 th_surf = isurfi(l_surf+1)
101 l_surf = l_surf+1
102 ish4n3n = isurfi(l_surf+1)
103 l_surf = l_surf+1
104 nseg_r2r_all = isurfi(l_surf+1)
105 l_surf = l_surf+1
106 nseg_r2r_share = isurfi(l_surf+1)
107 l_surf = l_surf+1
108
109
110
111
113 igrsurf(isu)%NSEG = nseg
114 igrsurf(isu)%TYPE = TYPE
115 igrsurf(isu)%ID_MADYMO = id_madymo
116 igrsurf(isu)%IAD_BUFR = iad_bufr
117 igrsurf(isu)%NB_MADYMO = nb_madymo
118 igrsurf(isu)%TYPE_MADYMO = type_madymo
119 igrsurf(isu)%LEVEL = level
120 igrsurf(isu)%TH_SURF = th_surf
121 igrsurf(isu)%ISH4N3N = ish4n3n
122 igrsurf(isu)%NSEG_R2R_ALL = nseg_r2r_all
123 igrsurf(isu)%NSEG_R2R_SHARE = nseg_r2r_share
124
125
126
127 ALLOCATE(igrsurf(isu)%NODES(nseg,4))
128 ALLOCATE(igrsurf(isu)%ELTYP(nseg))
129 ALLOCATE(igrsurf(isu)%ELEM(nseg))
130
131 DO j=1,nseg
132 DO k=1,4
133 node = isurfi(l_surf+1)
134 l_surf = l_surf+1
135 igrsurf(isu)%NODES(j,k) = node
136 ENDDO
137 eltyp = isurfi(l_surf+1)
138 l_surf = l_surf+1
139 igrsurf(isu)%ELTYP(j) = eltyp
140 elem = isurfi(l_surf+1)
141 l_surf = l_surf+1
142 igrsurf(isu)%ELEM(j) = elem
143 ENDDO
144 ENDDO
145
146 DEALLOCATE (isurfi)
147
148 RETURN
integer, parameter nchartitle
void read_i_c(int *w, int *len)