7 integer,
parameter :: MaxWriteField = 100
8 integer,
dimension(MaxWriteField),
save :: FieldId
9 integer,
dimension(MaxWriteField),
save :: FieldVarId
10 integer,
dimension(MaxWriteField),
save :: FieldIndex
11 character(len=255),
dimension(MaxWriteField) :: FieldName
13 integer,
save :: NbField = 0
23 character(len=*) :: name
25 character(len=255) :: truename
29 truename=trim(adjustl(name))
33 if (truename==fieldname(
i))
then
42 character(len=*) :: name
43 real,
dimension(:,:,:) :: field
44 integer,
dimension(3) :: dim
53 character(len=*) :: name
54 real,
dimension(:,:) :: field
55 integer,
dimension(2) :: dim
64 character(len=*) :: name
65 real,
dimension(:) :: field
66 integer,
dimension(1) :: dim
76 character(len=*) :: name
77 integer :: dimx,dimy,dimz
78 real,
dimension(dimx,dimy,dimz) :: field
79 integer,
dimension(dimx*dimy*dimz) :: ndex
91 fieldindex(index)=fieldindex(index)+1.
97 start(4)=fieldindex(index)
104 status = nf_put_vara_double(fieldid(index),fieldvarid(index),start,count,field)
105 status = nf_sync(fieldid(index))
112 character(len=*) :: name
113 integer :: dimx,dimy,dimz
119 fieldname(nbfield)=trim(adjustl(name))
120 fieldindex(nbfield)=1
123 status = nf_create(trim(adjustl(name))//
'.nc', nf_clobber, fieldid(nbfield))
124 status = nf_def_dim(fieldid(nbfield),
'X',dimx,tabdim(1))
125 status = nf_def_dim(fieldid(nbfield),
'Y',dimy,tabdim(2))
126 status = nf_def_dim(fieldid(nbfield),
'Z',dimz,tabdim(3))
127 status = nf_def_dim(fieldid(nbfield),
'iter',nf_unlimited,tabdim(4))
128 status = nf_def_var(fieldid(nbfield),fieldname(nbfield),nf_double,4,tabdim,fieldvarid(nbfield))
129 status = nf_enddef(fieldid(nbfield))
138 integer,
parameter :: maxdim=1
139 character(len=*) :: name
140 real,
dimension(:) :: field
141 real,
dimension(:),
allocatable :: new_field
142 character(len=20) :: str
143 integer,
dimension(MaxDim) :: dim
145 integer,
parameter :: id=10
146 integer,
parameter :: nbcol=4
147 integer :: columnsize
149 character(len=255) :: form
150 character(len=255) :: maxlen
153 open(
unit=id,file=name//
'.field',form=
'formatted',status=
'replace')
154 write (id,
'("----- Field '//name//
'",//)')
157 columnsize=20+6+3+len(trim(
int2str(dim(1))))
163 if (mod(nb,nbcol)==0)
then
164 form=
'(t'//trim(
int2str(pos))//
',i'//trim(maxlen) //
'," ---> ",g22.16,/)'
167 form=
'(t'//trim(
int2str(pos))//
',i'//trim(maxlen) //
'," ---> ",g22.16," | ",)'
170 write (id,form,advance=
'no')
i,field(
i)
180 integer,
parameter :: maxdim=2
181 character(len=*) :: name
182 real,
dimension(:,:) :: field
183 real,
dimension(:,:),
allocatable :: new_field
184 character(len=20) :: str
185 integer,
dimension(MaxDim) :: dim
187 integer,
parameter :: id=10
188 integer,
parameter :: nbcol=4
189 integer :: columnsize
190 integer :: pos,offset
191 character(len=255) :: form
192 character(len=255) :: spacing
194 open(
unit=id,file=name//
'.field',form=
'formatted',status=
'replace')
195 write (id,
'("----- Field '//name//
'",//)')
199 columnsize=20+6+3+offset
201 spacing=
'(t2,"'//repeat(
'-',columnsize*nbcol)//
'")'
209 if (mod(nb,nbcol)==0)
then
210 form=
'(t'//trim(
int2str(pos))// &
214 //
'," ---> ",g22.16,/)'
217 form=
'(t'//trim(
int2str(pos))// &
221 //
'," ---> ",g22.16," | ")'
224 write (id,form,advance=
'no') field(
j,
i)
226 if (mod(nb,nbcol)==0)
then
239 integer,
parameter :: maxdim=3
240 character(len=*) :: name
241 real,
dimension(:,:,:) :: field
242 real,
dimension(:,:,:),
allocatable :: new_field
243 integer,
dimension(MaxDim) :: dim
245 integer,
parameter :: id=10
246 integer,
parameter :: nbcol=4
247 integer :: columnsize
248 integer :: pos,offset
249 character(len=255) :: form
250 character(len=255) :: spacing
252 open(
unit=id,file=name//
'.field',form=
'formatted',status=
'replace')
253 write (id,
'("----- Field '//name//
'"//)')
257 columnsize=22+6+3+offset
261 spacing=
'(t2,"'//repeat(
'-',columnsize*nbcol)//
'")'
272 if (mod(nb,nbcol)==0)
then
273 form=
'(t'//trim(
int2str(pos))// &
278 //
'," ---> ",g22.16,/)'
281 form=
'(t'//trim(
int2str(pos))// &
286 //
'," ---> ",g22.16," | ")'
290 write (id,form,advance=
'no') field(
k,
j,
i)
292 if (mod(nb,nbcol)==0)
then
308 integer,
parameter :: maxlen=10
309 integer,
intent(in) :: int
310 character(len=MaxLen) ::
int2str