libsim  Versione 7.1.6
pentolone.F03
1 module pentolone
2 
3 USE alchimia
5 IMPLICIT NONE
6 
7 contains
8 
9 subroutine register_pentolone(vfn)
10 
11  type(fndsv),intent(inout) :: vfn
12 
13  call fnregister(vfn,bolli_def())
14  call fnregister(vfn,mescola_def())
15  call fnregister(vfn,friggi_def())
16  call fnregister(vfn,gira_def())
17 
18 end subroutine register_pentolone
19 
20 
21 subroutine bolli(mybin,mybout,bin,bout,in,out)
22  CHARACTER(len=10),intent(in) :: mybin(:)
23  CHARACTER(len=10),intent(in) :: mybout(:)
24  CHARACTER(len=10),intent(in) :: bin(:)
25  CHARACTER(len=10),intent(in) :: bout(:)
26  real, intent(in) :: in(:,:)
27  real, intent(out) :: out(:,:)
28  integer :: i
29 
30  do i=1,size(bin)
31  if (index_c(mybin,bin(i)) == 0) print *,"not in bin : ",bin(i)
32  end do
33  do i=1,size(bout)
34  if (index_c(mybout,bout(i)) == 0) print *,"not in bout: ",bout(i)
35  end do
36 
37  out=1.
38 
39 end subroutine bolli
40 
41 type(fnds) function bolli_def()
42 
43 !!$ call init(bolli_def,"bolli",&
44 !!$ (/"pollo ","gommosa "/),&
45 !!$ (/"brodo "/),0,bolli)
46 !!$
47  call init(bolli_def,"bolli",&
48  [character(len=10) :: "pollo","gommosa"],&
49  [character(len=10) :: "brodo","lesso"],0,func=bolli)
50  ![character(len=10) :: "brodo"],0)
51 
52 end function bolli_def
53 
54 
55 subroutine mescola(mybin,mybout,bin,bout,in,out)
56  CHARACTER(len=10),intent(in) :: mybin(:)
57  CHARACTER(len=10),intent(in) :: mybout(:)
58  CHARACTER(len=10),intent(in) :: bin(:)
59  CHARACTER(len=10),intent(in) :: bout(:)
60  real, intent(in) :: in(:,:)
61  real, intent(out) :: out(:,:)
62  integer :: i
63 
64  do i=1,size(bin)
65  if (index_c(mybin,bin(i)) == 0) print *,"not in bin : ",bin(i)
66  end do
67  do i=1,size(bout)
68  if (index_c(mybout,bout(i)) == 0) print *,"not in bout: ",bout(i)
69  end do
70 
71  out=2.
72 
73 end subroutine mescola
74 
75 
76 type(fnds) function mescola_def()
77 
78  call init(mescola_def,"mescola",&
79  [character(len=10) :: "mais","sale","acqua"],&
80  [character(len=10) :: "polenta","sudore"],0,func=mescola)
81 !!$
82 !!$ call init(mescola_def,"mescola",&
83 !!$ (/"mais ","sale ","acqua "/),&
84 !!$ (/"polenta "/),0)
85 
86 end function mescola_def
87 
88 
89 subroutine friggi(mybin,mybout,bin,bout,in,out)
90  CHARACTER(len=10),intent(in) :: mybin(:)
91  CHARACTER(len=10),intent(in) :: mybout(:)
92  CHARACTER(len=10),intent(in) :: bin(:)
93  CHARACTER(len=10),intent(in) :: bout(:)
94  real, intent(in) :: in(:,:)
95  real, intent(out) :: out(:,:)
96  integer :: i
97 
98  do i=1,size(bin)
99  if (index_c(mybin,bin(i)) == 0) print *,"not in bin : ",bin(i)
100  end do
101  do i=1,size(bout)
102  if (index_c(mybout,bout(i)) == 0) print *,"not in bout: ",bout(i)
103  end do
104 
105  out=3.
106 
107 end subroutine friggi
108 
109 
110 type(fnds) function friggi_def()
111 
112  call init(friggi_def,"friggi",&
113  [character(len=10) :: "olio","polenta"],&
114  [character(len=10) :: "pole.frit."],0,func=friggi)
115 !!$
116 !!$ call init(friggi_def,"friggi",&
117 !!$ (/"olio ","polenta "/),&
118 !!$ (/"pole.frit."/),0)
119 
120 end function friggi_def
121 
122 
123 
124 subroutine gira(mybin,mybout,bin,bout,in,out)
125  CHARACTER(len=10),intent(in) :: mybin(:)
126  CHARACTER(len=10),intent(in) :: mybout(:)
127  CHARACTER(len=10),intent(in) :: bin(:)
128  CHARACTER(len=10),intent(in) :: bout(:)
129  real, intent(in) :: in(:,:)
130  real, intent(out) :: out(:,:)
131  integer :: i
132 
133  do i=1,size(bin)
134  if (index_c(mybin,bin(i)) == 0) print *,"not in bin : ",bin(i)
135  end do
136  do i=1,size(bout)
137  if (index_c(mybout,bout(i)) == 0) print *,"not in bout: ",bout(i)
138  end do
139 
140  out=4.
141 
142 end subroutine gira
143 
144 
145 type(fnds) function gira_def()
146  call init(gira_def,"gira",&
147  [character(len=10) :: "mais","sale"],&
148  [character(len=10) :: "broda"],0,func=gira)
149 !!$
150 !!$ call init(gira_def,"gira",&
151 !!$ (/"mais ","sale "/),&
152 !!$ (/"broda "/),0)
153 
154 
155 end function gira_def
156 
157 
158 end module pentolone
This module defines objects and methods for generating derivative variables.
Definition: alchimia.F03:220
This module defines usefull general purpose function and subroutine.

Generated with Doxygen.