! Example program to reduce to one the dimensions of levels and time without loss of data
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18PROGRAM v7ddballe_move_and_collapse
19
20
21
24
25IMPLICIT NONE
26
27TYPE(vol7d_dballe) :: v7d_in,v7d_out
28
29integer :: indana,indtime,indlevel,indtimerange,indnetwork
30integer :: indananew,indtimenew,indlevelnew,indtimerangenew,indnetworknew
31integer :: inddativar,inddatiattr,inddativarattr
32
33
34CHARACTER(len=80) :: filein="../data/in.bufr",fileout="../data/out.bufr"
35
36character(len=512):: a_name
37integer :: category,ier
38
39
40call l4f_launcher(a_name,a_name_force="ensascii")
41
42
43ier=l4f_init()
44
45
46category=l4f_category_get(trim(a_name)//".main")
47call l4f_category_log(category,l4f_info,"start")
48
49
50
51CALL init(v7d_in,filename=filein,file=.true.)
52
53
54CALL init(v7d_out,filename=fileout,write=.true.,wipe=.true.,file=.true.)
55
58
59
60do indana=1,size(v7d_in%vol7d%ana)
61 do indtime=2,size(v7d_in%vol7d%time)
62 do indlevel=2,size(v7d_in%vol7d%level)
63 do indtimerange=1,size(v7d_in%vol7d%timerange)
64 do indnetwork=1,size(v7d_in%vol7d%network)
65 indananew=indana
66 indtimenew=1
67 indlevelnew=1
68 indtimerangenew=indtimerange
69 indnetworknew=indnetwork
70
71 call move_datac (v7d_in%vol7d,&
72 indana,indtime,indlevel,indtimerange,indnetwork,&
73 indananew,indtimenew,indlevelnew,indtimerangenew,indnetworknew)
74
75 end do
76 end do
77 end do
78 end do
79end do
80
81
82do indlevel=2,size(v7d_in%vol7d%level)
83 call init (v7d_in%vol7d%level(indlevel))
84end do
85
86do indtime=2,size(v7d_in%vol7d%time)
87 call init (v7d_in%vol7d%time(indtime))
88end do
89
90
91call vol7d_copy(v7d_in%vol7d,v7d_out%vol7d,miss=.true.)
93
94
95call init (v7d_out%vol7d%level(1))
96call init (v7d_out%vol7d%time(1))
97
101
102
103call l4f_category_log(category,l4f_info,"end")
104call l4f_category_delete(category)
105ier=l4f_fini()
106
107END PROGRAM v7ddballe_move_and_collapse
Distruttore per la classe vol7d.
Costruttore per la classe vol7d.
Classe per la gestione di un volume completo di dati osservati.
classe per import ed export di volumi da e in DB-All.e