Programma esempio semplice per la scrittura su file di un volume vol7d Programma che scrive su file un volume vol7d letto da una serie di file ASCII. Questo programma scrive i dati del clima che poi verranno letti da modqccli
34 integer,
parameter :: cli_nsuperarea=3
36 character(len=2) :: minuti(3)
37 character(len=1) :: area(3)
39 character(len=80) ::filename
43 integer :: nana, ntime ,nlevel, ndativarr, nnetwork
44 integer :: iana, itime, ilevel, itimerange, idativarr, inetwork
45 integer,
parameter :: ntimerange=3 ,nperc=9
47 TYPE(vol7d_dballe) :: v7d_dballe
49 TYPE(datetime) :: time
50 TYPE(vol7d_level) :: level(cli_nlevel)
51 TYPE(vol7d_timerange) :: timerange(ntimerange)
52 TYPE(vol7d_network) :: network
53 TYPE(vol7d_var) :: dativar,anavar
54 CHARACTER(len=vol7d_ana_lenident) :: ident
55 REAL(kind=fp_geo) :: lat,lon
60 integer :: scadenze(ntimerange) = (/900,1800,3600/)
63 integer :: category,ier
64 character(len=512):: a_name
66 call l4f_launcher(a_name,a_name_force=
"qc_convert")
72 category=l4f_category_get(a_name//
".main")
74 call l4f_category_log(category,l4f_info,
"inizio")
79 nana=nperc*cli_nsuperarea
87 call vol7d_alloc (v7d, &
88 nana=nana, ntime=ntime, ntimerange=ntimerange, &
89 nlevel=nlevel, nnetwork=nnetwork, &
93 call vol7d_alloc_vol (v7d,ini=.true.)
107 call init(v7d%network(inetwork),
'climat')
108 call init(v7d%dativar%r(idativarr), btable=
"B13011")
110 call cli_level_generate(v7d%level)
113 do iarea = 1, cli_nsuperarea
114 do ilevel = 1,cli_nlevel
115 do itimerange=1,ntimerange
117 call init(v7d%timerange(itimerange), 1, 0,scadenze(itimerange))
119 filename =
"pctl_prec_"//minuti(itimerange)//
"m_all_"//area(iarea)
120 write (filename(20:) ,
"(i1.1)")ilevel-1
121 filename =filename(:20)//
".txt" 122 filename=
"/autofs/nethomes/pavan/cq_emr/percentili/"//filename
124 print *,
"apro file=",filename
125 open (unit=iunit,file=filename)
129 call init(v7d%time(itime), year=1001, month=itime, day=1, hour=0, minute=0)
139 write(ident,
'("BOX-",2i2.2)')iarea,iper*10
140 iana=iper+(iarea-1)*nperc
142 call init(v7d%ana(iana),lat=lat,lon=lon,ident=ident)
144 read (iunit,
"(10x,f7.0)") dato
145 if (dato == -999.9) dato=rmiss
148 v7d%voldatir(iana,itime,ilevel,itimerange,idativarr,inetwork) = ilevel
158 open (unit=iunit,file=
"climaprec.v7d", form=
'UNFORMATTED', access=stream_if_possible)
160 call export(v7d,unit=iunit)
164 filename=
"climaprec.bufr" 165 call init(v7d_dballe,file=.true.,wipe=.true.,write=.true.,filename=filename,categoryappend=
"esporto",template=
"generic")
166 call copy(v7d,v7d_dballe%vol7d)
173 call l4f_category_delete(category)