1fxyz(x,y,z):=asinh((sin(x)+sin(y)+sin(z))/3.0);
2dfx(x,y,z):=diff(fxyz(x,y,z),x);
3dfy(x,y,z):=diff(fxyz(x,y,z),y);
4dfz(x,y,z):=diff(fxyz(x,y,z),z);
5dfx2(x,y,z):=diff(dfx(x,y,z),x);
6dfxy(x,y,z):=diff(dfx(x,y,z),y);
7dfxz(x,y,z):=diff(dfx(x,y,z),z);
8dfy2(x,y,z):=diff(dfy(x,y,z),y);
9dfyz(x,y,z):=diff(dfy(x,y,z),z);
10dfz2(x,y,z):=diff(dfz(x,y,z),z);
11dfx3(x,y,z):=diff(dfx2(x,y,z),x);
12dfx2y(x,y,z):=diff(dfx2(x,y,z),y);
13dfx2z(x,y,z):=diff(dfx2(x,y,z),z);
14dfxy2(x,y,z):=diff(dfxy(x,y,z),y);
15dfxyz(x,y,z):=diff(dfxy(x,y,z),z);
16dfxz2(x,y,z):=diff(dfxz(x,y,z),z);
17dfy3(x,y,z):=diff(dfy2(x,y,z),y);
18dfy2z(x,y,z):=diff(dfy2(x,y,z),z);
19dfyz2(x,y,z):=diff(dfyz(x,y,z),z);
20dfz3(x,y,z):=diff(dfz2(x,y,z),z);
21Fortran(expr):= fortran(ev(expr,numer));
22with_stdout("submaxima_asinh3.F",
23  print("      subroutine submaxima_asinh3(x,y,z,f,df,df2,df3)"),
24  print("      implicit none"),
25  print("      double precision x,y,z,f,df(3),df2(3*4/2),df3(3*4*5/6)"),
26  Fortran(f = fxyz(x,y,z)),
27  Fortran(df(1) = dfx(x,y,z)),
28  Fortran(df(2) = dfy(x,y,z)),
29  Fortran(df(3) = dfz(x,y,z)),
30  Fortran(df2(1) = dfx2(x,y,z)),
31  Fortran(df2(2) = dfxy(x,y,z)),
32  Fortran(df2(3) = dfy2(x,y,z)),
33  Fortran(df2(4) = dfxz(x,y,z)),
34  Fortran(df2(5) = dfyz(x,y,z)),
35  Fortran(df2(6) = dfz2(x,y,z)),
36  Fortran(df3(1)  = dfx3(x,y,z)),
37  Fortran(df3(2)  = dfx2y(x,y,z)),
38  Fortran(df3(3)  = dfxy2(x,y,z)),
39  Fortran(df3(4)  = dfy3(x,y,z)),
40  Fortran(df3(5)  = dfx2z(x,y,z)),
41  Fortran(df3(6)  = dfxyz(x,y,z)),
42  Fortran(df3(7)  = dfy2z(x,y,z)),
43  Fortran(df3(8)  = dfxz2(x,y,z)),
44  Fortran(df3(9)  = dfyz2(x,y,z)),
45  Fortran(df3(10) = dfz3(x,y,z)),
46  print("      end"));
47