libsim  Versione7.2.3
example_alchimia.f03

Sample program to demostrate the alchimia module. This module use cuisine problems to demostrate the capacity of the module.

1 program cucina
2 
3 USE alchimia
4 USE forno
5 USE pentolone
7 USE log4fortran
8 
9 IMPLICIT NONE
10 integer, parameter :: ndat=100
11 type(fndsv) :: vfn,myvfn
12 character(len=10), allocatable:: mybin(:),mybout(:)
13 real,allocatable :: myin(:,:),myout(:,:)
14 integer :: category,ier
15 CHARACTER(len=512):: a_name
16 
17 !questa chiamata prende dal launcher il nome univoco
18 call l4f_launcher(a_name,a_name_force="volgrid6dtransform")
19 
20 !init di log4fortran
21 ier=l4f_init()
22 
23 !imposta a_name
24 category=l4f_category_get(a_name//".main")
25 
26 
27 call register_pentolone(vfn)
28 call register_forno(vfn)
29 
30 mybin = [character(len=10)::"acqua","olio","patate","sale","pollo","mais","gommosa"]
31 mybout = [character (len=10) :: "pole.pata.","lesso"]
32 
33 !mybin = [character(len=10)::"acqua","olio","patate","sale","pollo","mais","gommosa"]
34 !mybout = [character (len=10) :: "pole.pata.","pane"]
35 
36 print *,"I have: ",mybin
37 print *,"I have to prepare: ",mybout
38 
39 if (.not. oracle(mybin,mybout,vfn,myvfn)) then
40  print*, "I cannot make ",mybout
41 
42  if (.not. shoppinglist(mybout,vfn,myvfn)) then
43  print*, " error shoppinglist"
44  stop 2
45  else
46  call display(myvfn)
47  call display(compile_sl(myvfn))
48  stop 3
49  end if
50 end if
51 
52 call display(myvfn)
53 print *,"I need ",myvfn%nout," more variables"
54 
55 allocate(myin(ndat,size(mybin)))
56 myin=1.5
57 allocate(myout(ndat,myvfn%nout))
58 myout=rmiss
59 call make(myvfn,mybin,mybout,myin,myout)
60 
61  !chiudo il logger
62 call l4f_category_delete(category)
63 ier=l4f_fini()
64 
65 end program cucina

Generated with Doxygen.