libsim  Versione8.0.0
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 TYPE(l4f_handle) :: category
15 INTEGER :: ier
16 CHARACTER(len=512):: a_name
17 
18 !questa chiamata prende dal launcher il nome univoco
19 call l4f_launcher(a_name,a_name_force="volgrid6dtransform")
20 
21 !init di log4fortran
22 ier=l4f_init()
23 
24 !imposta a_name
25 category=l4f_category_get_handle(a_name//".main")
26 
27 
28 call register_pentolone(vfn)
29 call register_forno(vfn)
30 
31 mybin = [character(len=10)::"acqua","olio","patate","sale","pollo","mais","gommosa"]
32 mybout = [character (len=10) :: "pole.pata.","lesso"]
33 
34 !mybin = [character(len=10)::"acqua","olio","patate","sale","pollo","mais","gommosa"]
35 !mybout = [character (len=10) :: "pole.pata.","pane"]
36 
37 print *,"I have: ",mybin
38 print *,"I have to prepare: ",mybout
39 
40 if (.not. oracle(mybin,mybout,vfn,myvfn)) then
41  print*, "I cannot make ",mybout
42 
43  if (.not. shoppinglist(mybout,vfn,myvfn)) then
44  print*, " error shoppinglist"
45  stop 2
46  else
47  call display(myvfn)
48  call display(compile_sl(myvfn))
49  stop 3
50  end if
51 end if
52 
53 call display(myvfn)
54 print *,"I need ",myvfn%nout," more variables"
55 
56 allocate(myin(ndat,size(mybin)))
57 myin=1.5
58 allocate(myout(ndat,myvfn%nout))
59 myout=rmiss
60 call make(myvfn,mybin,mybout,myin,myout)
61 
62  !chiudo il logger
63 call l4f_category_delete(category)
64 ier=l4f_fini()
65 
66 end program cucina

Generated with Doxygen.