File: maple2f90.py

package info (click to toggle)
cp2k 2025.2-3
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 372,052 kB
  • sloc: fortran: 963,262; ansic: 64,495; f90: 21,676; python: 14,419; sh: 11,382; xml: 2,173; makefile: 953; pascal: 845; perl: 492; cpp: 345; lisp: 297; csh: 16
file content (1000 lines) | stat: -rwxr-xr-x 35,943 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
#!/usr/bin/env python3
import re
import sys

"""Script to help the conversion of maple generated fortran code to f90"""

renamedVar = [
    "cg",
    "cg0",
    "cg1",
    "cg10",
    "cg11",
    "cg12",
    "cg13",
    "cg14",
    "cg15",
    "cg16",
    "cg17",
    "cg18",
    "cg19",
    "cg2",
    "cg20",
    "cg21",
    "cg22",
    "cg23",
    "cg24",
    "cg25",
    "cg26",
    "cg27",
    "cg28",
    "cg29",
    "cg3",
    "cg30",
    "cg31",
    "cg32",
    "cg33",
    "cg34",
    "cg35",
    "cg36",
    "cg37",
    "cg38",
    "cg39",
    "cg4",
    "cg40",
    "cg41",
    "cg42",
    "cg43",
    "cg44",
    "cg45",
    "cg46",
    "cg47",
    "cg48",
    "cg49",
    "cg5",
    "cg50",
    "cg51",
    "cg52",
    "cg53",
    "cg54",
    "cg55",
    "cg56",
    "cg57",
    "cg58",
    "cg59",
    "cg6",
    "cg60",
    "cg61",
    "cg62",
    "cg63",
    "cg64",
    "cg65",
    "cg66",
    "cg67",
    "cg68",
    "cg69",
    "cg7",
    "cg70",
    "cg71",
    "cg72",
    "cg73",
    "cg74",
    "cg75",
    "cg76",
    "cg77",
    "cg78",
    "cg79",
    "cg8",
    "cg80",
    "cg81",
    "cg82",
    "cg83",
    "cg84",
    "cg85",
    "cg86",
    "cg87",
    "cg88",
    "cg89",
    "cg9",
    "cg90",
    "cg91",
    "cg92",
    "cg93",
    "cg94",
]

origNames = [
    "norm_drho",
    "norm_drhoa",
    "norm_drhob",
    "chirhoa",
    "epsilon_c_unifrhoarhob",
    "e_c_u_01rhob",
    "epsilon_c_unif1rhob",
    "alpha_c1rhoa",
    "k_frhoarhob",
    "chirhobrhob",
    "phi1rhob",
    "phirhoa",
    "kf_b",
    "kf_brhob",
    "Fx_b",
    "e_c_u_01rhoa",
    "frhoarhob",
    "chirhoarhob",
    "chirhob",
    "Fx_a",
    "ex_unif_a1rhoa",
    "e_c_u_1rhoa",
    "epsilon_cGGArhob",
    "epsilon_c_unifrhob",
    "k_frhoa",
    "phirhoarhoa",
    "trhobrhob",
    "ex_unif_b",
    "Arhoarhob",
    "k_s1rhoa",
    "gamma_var",
    "k_frhob",
    "epsilon_cGGA",
    "phirhob",
    "Fx_bnorm_drhob",
    "s_anorm_drhoa",
    "epsilon_cGGArhoa",
    "Arhobrhob",
    "Fx_brhob",
    "k_s1rhob",
    "s_arhoa",
    "rsrhoarhoa",
    "epsilon_c_unif",
    "kf_arhoarhoa",
    "Hnorm_drho",
    "trhoarhoa",
    "Fx_anorm_drhoa",
    "alpha_crhob",
    "e_c_u_0rhob",
    "s_a1rhoa",
    "k_s",
    "kf_a",
    "k_srhoa",
    "rsrhoarhob",
    "rsrhobrhob",
    "s_a",
    "epsilon_c_unifrhoa",
    "e_c_u_0rhoa",
    "phi1rhoa",
    "trhoarhob",
    "alpha_c",
    "frhoarhoa",
    "trhobnorm_drho",
    "Fx_a1rhoa",
    "e_c_u_0rhobrhob",
    "Arhoarhoa",
    "phirhoarhob",
    "ex_unif_brhob",
    "kf_arhoa",
    "frhobrhob",
    "phirhobrhob",
    "Fx_arhoa",
    "e_c_u_0rhoarhob",
    "s_bnorm_drhob",
    "epsilon_c_unifrhoarhoa",
    "epsilon_c_unif1rhoa",
    "e_c_u_0rhoarhoa",
    "ex_unif_arhoa",
    "epsilon_c_unifrhobrhob",
    "s_brhob",
    "k_srhob",
    "ex_unif_a",
    "chirhoarhoa",
    "e_c_u_1rhob",
    "s_b",
    "alpha_c1rhob",
    "tnorm_drho",
    "k_frhoarhoa",
    "s_b1rhob",
    "kf_brhobrhob",
    "e_c_u_0",
    "ex_unif_b1rhob",
    "trhoanorm_drho",
    "Fx_b1rhob",
    "alpha_crhoa",
    "r_eqs_lsd4",
]

code = """
      doubleprecision function cg94 (rhoa, rhob, cg, cg0, cg1)

        my_rhoa = rhoa
        my_rhob = rhob
        my_norm_drho = cg
        my_norm_drhoa = cg0
        my_norm_drhob = cg1
        rho = rhoa + rhob
        t1 = rhoa - rhob
        t2 = 0.1D1 / rho
        chi = t1 * t2
        t3 = 3 ** (0.1D1 / 0.3D1)
        t4 = 4 ** (0.1D1 / 0.3D1)
        t5 = t4 ** 2
        t6 = t3 * t5
        t7 = 0.1D1 / 0.3141592654D1
        t8 = t7 * t2
        t9 = t8 ** (0.1D1 / 0.3D1)
        rs = dble(t6) * t9 / 0.4D1
        t12 = 0.1D1 + 0.21370D0 * rs
        t13 = sqrt(rs)
        t16 = t13 * rs
        t18 = rs ** 0.20D1
        t20 = 0.75957D1 * t13 + 0.35876D1 * rs + 0.16382D1 * t16 + 0.492
     #94D0 * t18
        t23 = 0.1D1 + 0.1608182432D2 / t20
        t24 = log(t23)
        cg9 = -0.62182D-1 * t12 * t24
        t28 = 0.1D1 + 0.20548D0 * rs
        t33 = 0.141189D2 * t13 + 0.61977D1 * rs + 0.33662D1 * t16 + 0.62
     #517D0 * t18
        t36 = 0.1D1 + 0.3216468318D2 / t33
        t37 = log(t36)
        t41 = 0.1D1 + 0.11125D0 * rs
        t46 = 0.10357D2 * t13 + 0.36231D1 * rs + 0.88026D0 * t16 + 0.496
     #71D0 * t18
        t49 = 0.1D1 + 0.2960857464D1 / t46
        t50 = log(t49)
        cg62 = 0.33774D0 * t41 * t50
        t52 = 2 ** (0.1D1 / 0.3D1)
        t55 = 1 / (2 * t52 - 2)
        t56 = 0.1D1 + chi
        t57 = t56 ** (0.1D1 / 0.3D1)
        t58 = t57 * t56
        t59 = 0.1D1 - chi
        t60 = t59 ** (0.1D1 / 0.3D1)
        t61 = t60 * t59
        f = (t58 + t61 - 0.2D1) * dble(t55)
        t63 = cg62 * f
        t64 = 0.9D1 / 0.8D1 / dble(t55)
        t65 = chi ** 2
        t66 = t65 ** 2
        t68 = t64 * (0.1D1 - t66)
        t70 = -0.31090D-1 * t28 * t37 - cg9
        t71 = t70 * f
        cg46 = cg9 + t63 * t68 + t71 * t66
        t73 = log(0.2D1)
        t75 = 0.3141592654D1 ** 2
        t76 = 0.1D1 / t75
        cg35 = (0.1D1 - t73) * t76
        t77 = t57 ** 2
        t78 = t60 ** 2
        phi = t77 / 0.2D1 + t78 / 0.2D1
        t80 = t75 * rho
        t81 = t80 ** (0.1D1 / 0.3D1)
        t82 = dble(t3) * t81 * t7
        t83 = sqrt(t82)
        cg53 = 0.2D1 * t83
        t84 = 0.1D1 / phi
        t85 = cg * t84
        t86 = 0.1D1 / cg53
        t87 = t86 * t2
        t = t85 * t87 / 0.2D1
        t89 = 0.1D1 / cg35
        t90 = cg46 * t89
        t91 = phi ** 2
        t92 = t91 * phi
        t93 = 0.1D1 / t92
        t95 = exp(-t90 * t93)
        t96 = t95 - 0.1D1
        A = 0.66725D-1 * t89 / t96
        t99 = cg35 * t92
        t100 = t ** 2
        t101 = t89 * t100
        t102 = A * t100
        t103 = 0.1D1 + t102
        t104 = A ** 2
        t105 = t100 ** 2
        t107 = 0.1D1 + t102 + t104 * t105
        t108 = 0.1D1 / t107
        t109 = t103 * t108
        t112 = 0.1D1 + 0.66725D-1 * t101 * t109
        t113 = log(t112)
        cg37 = cg46 + t99 * t113
        mu = 0.2224166667D-1 * t75
        t114 = t3 * t52
        t115 = t75 * rhoa
        t116 = t115 ** (0.1D1 / 0.3D1)
        cg54 = dble(t114) * t116
        cg81 = -0.3D1 / 0.4D1 * t7 * cg54
        t119 = 0.1D1 / cg54
        t120 = cg0 * t119
        t121 = 0.1D1 / rhoa
        cg58 = t120 * t121 / 0.2D1
        t123 = cg58 ** 2
        t126 = 0.1D1 + 0.1243781095D1 * mu * t123
        cg25 = 0.1804D1 - 0.804D0 / t126
        t129 = rhoa * cg81
        t131 = t75 * rhob
        t132 = t131 ** (0.1D1 / 0.3D1)
        cg19 = dble(t114) * t132
        cg32 = -0.3D1 / 0.4D1 * t7 * cg19
        t135 = 0.1D1 / cg19
        t136 = cg1 * t135
        t137 = 0.1D1 / rhob
        cg84 = t136 * t137 / 0.2D1
        t139 = cg84 ** 2
        t142 = 0.1D1 + 0.1243781095D1 * mu * t139
        cg20 = 0.1804D1 - 0.804D0 / t142
        t145 = rhob * cg32
        exc = t129 * cg25 + t145 * cg20 + rho * cg37
        t149 = rho ** 2
        t150 = 0.1D1 / t149
        t151 = t1 * t150
        cg10 = t2 - t151
        t152 = t9 ** 2
        t154 = 0.1D1 / t152 * t7
        rsrhoa = -dble(t6) * t154 * t150 / 0.12D2
        t160 = t20 ** 2
        t161 = 0.1D1 / t160
        t162 = t12 * t161
        t163 = 0.1D1 / t13
        t164 = t163 * rsrhoa
        t167 = t13 * rsrhoa
        t169 = rs ** 0.10D1
        t170 = t169 * rsrhoa
        t172 = 0.3797850000D1 * t164 + 0.35876D1 * rsrhoa + 0.2457300000
     #D1 * t167 + 0.985880D0 * t170
        t173 = 0.1D1 / t23
        t174 = t172 * t173
        cg6 = -0.1328829340D-1 * rsrhoa * t24 + 0.9999999999D0 * t162 *
     #t174
        t179 = t33 ** 2
        t180 = 0.1D1 / t179
        t181 = t28 * t180
        t186 = 0.7059450000D1 * t164 + 0.61977D1 * rsrhoa + 0.5049300000
     #D1 * t167 + 0.1250340D1 * t170
        t187 = 0.1D1 / t36
        t188 = t186 * t187
        cg27 = -0.638837320D-2 * rsrhoa * t37 + 0.1000000000D1 * t181 *
     #t188
        t193 = t46 ** 2
        t194 = 0.1D1 / t193
        t195 = t41 * t194
        t200 = 0.5178500000D1 * t164 + 0.36231D1 * rsrhoa + 0.1320390000
     #D1 * t167 + 0.993420D0 * t170
        t201 = 0.1D1 / t49
        t202 = t200 * t201
        cg93 = 0.375735750D-1 * rsrhoa * t50 - 0.9999999999D0 * t195 * t
     #202
        frhoa = (0.4D1 / 0.3D1 * t57 * cg10 - 0.4D1 / 0.3D1 * t60 * cg10
     #) * dble(t55)
        t209 = cg93 * f
        t211 = cg62 * frhoa
        t213 = t65 * chi
        t214 = t64 * t213
        t215 = t214 * cg10
        t217 = 0.4D1 * t63 * t215
        t218 = cg27 - cg6
        t219 = t218 * f
        t221 = t70 * frhoa
        t223 = t213 * cg10
        t225 = 0.4D1 * t71 * t223
        cg59 = cg6 + t209 * t68 + t211 * t68 - t217 + t219 * t66 + t221
     #* t66 + t225
        t226 = 0.1D1 / t57
        t228 = 0.1D1 / t60
        cg18 = t226 * cg10 / 0.3D1 - t228 * cg10 / 0.3D1
        t231 = t81 ** 2
        cg3 = dble(t3) / t231 * t75 / 0.3D1
        t235 = 0.1D1 / t83
        cg55 = t235 * cg3 * t7
        t237 = 0.1D1 / t91
        t238 = cg * t237
        t241 = cg53 ** 2
        t242 = 0.1D1 / t241
        t243 = t242 * t2
        t246 = t86 * t150
        t247 = t85 * t246
        trhoa = -t238 * t87 * cg18 / 0.2D1 - t85 * t243 * cg55 / 0.2D1 -
     # t247 / 0.2D1
        t249 = t96 ** 2
        t251 = t89 / t249
        t252 = cg59 * t89
        t254 = t91 ** 2
        t255 = 0.1D1 / t254
        t256 = t255 * cg18
        t259 = -t252 * t93 + 0.3D1 * t90 * t256
        Arhoa = -0.66725D-1 * t251 * t259 * t95
        t263 = cg35 * t91
        t264 = t113 * cg18
        t267 = t89 * t
        t268 = t109 * trhoa
        t271 = Arhoa * t100
        t272 = A * t
        t274 = 0.2D1 * t272 * trhoa
        t275 = t271 + t274
        t276 = t275 * t108
        t279 = t107 ** 2
        t280 = 0.1D1 / t279
        t281 = t103 * t280
        t282 = A * t105
        t285 = t100 * t
        t286 = t104 * t285
        t289 = t271 + t274 + 0.2D1 * t282 * Arhoa + 0.4D1 * t286 * trhoa
        t293 = 0.133450D0 * t267 * t268 + 0.66725D-1 * t101 * t276 - 0.6
     #6725D-1 * t101 * t281 * t289
        t294 = 0.1D1 / t112
        t295 = t293 * t294
        cg40 = cg59 + 0.3D1 * t263 * t264 + t99 * t295
        t298 = t116 ** 2
        cg7 = dble(t114) / t298 * t75 / 0.3D1
        cg78 = -0.3D1 / 0.4D1 * t7 * cg7
        t304 = cg54 ** 2
        t305 = 0.1D1 / t304
        t306 = cg0 * t305
        t309 = rhoa ** 2
        t310 = 0.1D1 / t309
        cg44 = -t306 * t121 * cg7 / 0.2D1 - t120 * t310 / 0.2D1
        t313 = t126 ** 2
        t315 = 0.1D1 / t313 * mu
        cg72 = 0.2000000001D1 * t315 * cg58 * cg44
        t319 = rhoa * cg78
        exc_rhoa = cg81 * cg25 + t319 * cg25 + t129 * cg72 + cg37 + rho
     #* cg40
        cg24 = -t2 - t151
        rsrhob = rsrhoa
        t326 = t163 * rsrhob
        t329 = t13 * rsrhob
        t331 = t169 * rsrhob
        t333 = 0.3797850000D1 * t326 + 0.35876D1 * rsrhob + 0.2457300000
     #D1 * t329 + 0.985880D0 * t331
        t334 = t333 * t173
        cg51 = -0.1328829340D-1 * rsrhob * t24 + 0.9999999999D0 * t162 *
     # t334
        t343 = 0.7059450000D1 * t326 + 0.61977D1 * rsrhob + 0.5049300000
     #D1 * t329 + 0.1250340D1 * t331
        t344 = t343 * t187
        cg83 = -0.638837320D-2 * rsrhob * t37 + 0.1000000000D1 * t181 *
     #t344
        t353 = 0.5178500000D1 * t326 + 0.36231D1 * rsrhob + 0.1320390000
     #D1 * t329 + 0.993420D0 * t331
        t354 = t353 * t201
        cg50 = 0.375735750D-1 * rsrhob * t50 - 0.9999999999D0 * t195 * t
     #354
        frhob = (0.4D1 / 0.3D1 * t57 * cg24 - 0.4D1 / 0.3D1 * t60 * cg24
     #) * dble(t55)
        t361 = cg50 * f
        t363 = cg62 * frhob
        t365 = t214 * cg24
        t367 = 0.4D1 * t63 * t365
        t368 = cg83 - cg51
        t369 = t368 * f
        t371 = t70 * frhob
        t373 = t213 * cg24
        t375 = 0.4D1 * t71 * t373
        cg29 = cg51 + t361 * t68 + t363 * t68 - t367 + t369 * t66 + t371
     # * t66 + t375
        cg38 = t226 * cg24 / 0.3D1 - t228 * cg24 / 0.3D1
        cg36 = cg3
        cg80 = t235 * cg36 * t7
        trhob = -t238 * t87 * cg38 / 0.2D1 - t85 * t243 * cg80 / 0.2D1 -
     # t247 / 0.2D1
        t385 = cg29 * t89
        t387 = t255 * cg38
        t390 = -t385 * t93 + 0.3D1 * t90 * t387
        Arhob = -0.66725D-1 * t251 * t390 * t95
        t394 = t113 * cg38
        t397 = t109 * trhob
        t400 = Arhob * t100
        t402 = 0.2D1 * t272 * trhob
        t403 = t400 + t402
        t404 = t403 * t108
        t411 = t400 + t402 + 0.2D1 * t282 * Arhob + 0.4D1 * t286 * trhob
        t415 = 0.133450D0 * t267 * t397 + 0.66725D-1 * t101 * t404 - 0.6
     #6725D-1 * t101 * t281 * t411
        t416 = t415 * t294
        cg28 = cg29 + 0.3D1 * t263 * t394 + t99 * t416
        t419 = t132 ** 2
        cg2 = dble(t114) / t419 * t75 / 0.3D1
        cg69 = -0.3D1 / 0.4D1 * t7 * cg2
        t425 = cg19 ** 2
        t426 = 0.1D1 / t425
        t427 = cg1 * t426
        t430 = rhob ** 2
        t431 = 0.1D1 / t430
        cg8 = -t427 * t137 * cg2 / 0.2D1 - t136 * t431 / 0.2D1
        t434 = t142 ** 2
        t436 = 0.1D1 / t434 * mu
        cg42 = 0.2000000001D1 * t436 * cg84 * cg8
        t440 = rhob * cg69
        exc_rhob = cg32 * cg20 + t440 * cg20 + t145 * cg42 + cg37 + rho
     #* cg28
        t445 = t84 * t86
        cg86 = t445 * t2 / 0.2D1
        t450 = t89 * t285
        t451 = A * cg86
        t459 = 0.2D1 * t272 * cg86 + 0.4D1 * t286 * cg86
        t463 = 0.133450D0 * t267 * t109 * cg86 + 0.133450D0 * t450 * t45
     #1 * t108 - 0.66725D-1 * t101 * t281 * t459
        t464 = t463 * t294
        cg48 = t99 * t464
        exc_norm_drho = rho * cg48
        cg4 = t119 * t121 / 0.2D1
        cg5 = 0.2000000001D1 * t315 * cg58 * cg4
        exc_norm_drhoa = t129 * cg5
        cg74 = t135 * t137 / 0.2D1
        cg39 = 0.2000000001D1 * t436 * cg84 * cg74
        exc_norm_drhob = t145 * cg39
        t474 = 0.1D1 / t149 / rho
        t475 = t1 * t474
        cg82 = -0.2D1 * t150 + 0.2D1 * t475
        t480 = t149 ** 2
        cg45 = -dble(t6) / t152 / t8 * t76 / t480 / 0.18D2 + dble(t6) *
     #t154 * t474 / 0.6D1
        t490 = rsrhoa * t161
        t495 = t12 / t160 / t20
        t496 = t172 ** 2
        t500 = 0.1D1 / t16
        t501 = rsrhoa ** 2
        t502 = t500 * t501
        t504 = t163 * cg45
        t507 = t163 * t501
        t509 = t13 * cg45
        t512 = t169 * cg45
        t518 = t160 ** 2
        t520 = t12 / t518
        t521 = t23 ** 2
        t522 = 0.1D1 / t521
        cg77 = -0.1328829340D-1 * cg45 * t24 + 0.4274000000D0 * t490 * t
     #174 - 0.2000000000D1 * t495 * t496 * t173 + 0.9999999999D0 * t162
     #* (-0.1898925000D1 * t502 + 0.3797850000D1 * t504 + 0.35876D1 * cg
     #45 + 0.1228650000D1 * t507 + 0.2457300000D1 * t509 + 0.9858800D0 *
     # t501 + 0.985880D0 * t512) * t173 + 0.1608182432D2 * t520 * t496 *
     # t522
        cg21 = cg6
        t528 = rsrhoa * t180
        t533 = t28 / t179 / t33
        t534 = t186 ** 2
        t549 = t179 ** 2
        t551 = t28 / t549
        t552 = t36 ** 2
        t553 = 0.1D1 / t552
        t559 = rsrhoa * t194
        t564 = t41 / t193 / t46
        t565 = t200 ** 2
        t580 = t193 ** 2
        t582 = t41 / t580
        t583 = t49 ** 2
        t584 = 0.1D1 / t583
        cg14 = cg93
        t588 = 0.1D1 / t77
        t589 = cg10 ** 2
        t594 = 0.1D1 / t78
        cg63 = (0.4D1 / 0.9D1 * t588 * t589 + 0.4D1 / 0.3D1 * t57 * cg82
     # + 0.4D1 / 0.9D1 * t594 * t589 - 0.4D1 / 0.3D1 * t60 * cg82) * dbl
     #e(t55)
        f1rhoa = frhoa
        t612 = cg14 * f
        t615 = cg62 * f1rhoa
        t618 = t64 * t65
        t633 = cg27 - cg21
        t640 = t633 * f
        t643 = t70 * f1rhoa
        t652 = -0.4D1 * t63 * t214 * cg82 + (-0.638837320D-2 * cg45 * t3
     #7 + 0.4109600000D0 * t528 * t188 - 0.2000000000D1 * t533 * t534 *
     #t187 + 0.1000000000D1 * t181 * (-0.3529725000D1 * t502 + 0.7059450
     #000D1 * t504 + 0.61977D1 * cg45 + 0.2524650000D1 * t507 + 0.504930
     #0000D1 * t509 + 0.12503400D1 * t501 + 0.1250340D1 * t512) * t187 +
     # 0.3216468318D2 * t551 * t534 * t553 - cg77) * f * t66 + t218 * f1
     #rhoa * t66 + 0.4D1 * t219 * t223 + t633 * frhoa * t66 + t70 * cg63
     # * t66 + 0.4D1 * t221 * t223 + 0.4D1 * t640 * t223 + 0.4D1 * t643
     #* t223 + 0.12D2 * t71 * t65 * t589 + 0.4D1 * t71 * t213 * cg82
        cg75 = cg77 + (0.375735750D-1 * cg45 * t50 - 0.2225000000D0 * t5
     #59 * t202 + 0.2000000000D1 * t564 * t565 * t201 - 0.9999999999D0 *
     # t195 * (-0.2589250000D1 * t502 + 0.5178500000D1 * t504 + 0.36231D
     #1 * cg45 + 0.6601950000D0 * t507 + 0.1320390000D1 * t509 + 0.99342
     #00D0 * t501 + 0.993420D0 * t512) * t201 - 0.2960857464D1 * t582 *
     #t565 * t584) * f * t68 + cg93 * f1rhoa * t68 - 0.4D1 * t209 * t215
     # + cg14 * frhoa * t68 + cg62 * cg63 * t68 - 0.4D1 * t211 * t215 -
     #0.4D1 * t612 * t215 - 0.4D1 * t615 * t215 - 0.12D2 * t63 * t618 *
     #t589 + t652
        cg76 = cg21 + t612 * t68 + t615 * t68 - t217 + t640 * t66 + t643
     # * t66 + t225
        t657 = 0.1D1 / t58
        t662 = 0.1D1 / t61
        cg30 = -t657 * t589 / 0.9D1 + t226 * cg82 / 0.3D1 - t662 * t589
     #/ 0.9D1 - t228 * cg82 / 0.3D1
        cg60 = cg18
        t670 = t75 ** 2
        cg87 = -0.2D1 / 0.9D1 * dble(t3) / t231 / t80 * t670
        t674 = 0.1D1 / t83 / t82
        t675 = cg3 ** 2
        cg34 = cg55
        t682 = cg * t93 * t86
        t683 = t2 * cg18
        t686 = t238 * t242
        t692 = t238 * t246 * cg18 / 0.2D1
        t696 = t2 * cg55
        t702 = t85 / t241 / cg53
        t705 = t242 * t150
        t708 = t85 * t705 * cg55 / 0.2D1
        t719 = t85 * t86 * t474
        cg49 = t682 * t683 * cg60 + t686 * t683 * cg34 / 0.2D1 + t692 -
     #t238 * t87 * cg30 / 0.2D1 + t686 * t696 * cg60 / 0.2D1 + t702 * t6
     #96 * cg34 + t708 - t85 * t243 * (-t674 * t675 * t76 / 0.2D1 + t235
     # * cg87 * t7) / 0.2D1 + t238 * t246 * cg60 / 0.2D1 + t85 * t705 *
     #cg34 / 0.2D1 + t719
        t1rhoa = -t238 * t87 * cg60 / 0.2D1 - t85 * t243 * cg34 / 0.2D1
     #- t247 / 0.2D1
        t727 = t89 / t249 / t96
        t728 = t95 ** 2
        t729 = t259 * t728
        t730 = cg76 * t89
        t732 = t255 * cg60
        t735 = -t730 * t93 + 0.3D1 * t90 * t732
        t746 = 0.1D1 / t254 / phi
        t747 = t746 * cg18
        cg67 = 0.133450D0 * t727 * t729 * t735 - 0.66725D-1 * t251 * (-c
     #g75 * t89 * t93 + 0.3D1 * t252 * t732 + 0.3D1 * t730 * t256 - 0.12
     #D2 * t90 * t747 * cg60 + 0.3D1 * t90 * t255 * cg30) * t95 - 0.6672
     #5D-1 * t251 * t259 * t735 * t95
        A1rhoa = -0.66725D-1 * t251 * t735 * t95
        t765 = cg35 * phi
        t772 = A1rhoa * t100
        t774 = 0.2D1 * t272 * t1rhoa
        t775 = t772 + t774
        t776 = t775 * t108
        t783 = t772 + t774 + 0.2D1 * t282 * A1rhoa + 0.4D1 * t286 * t1rh
     #oa
        t787 = 0.133450D0 * t267 * t109 * t1rhoa + 0.66725D-1 * t101 * t
     #776 - 0.66725D-1 * t101 * t281 * t783
        t788 = t787 * t294
        t804 = t267 * t103
        t805 = t280 * trhoa
        t815 = cg67 * t100
        t816 = Arhoa * t
        t818 = 0.2D1 * t816 * t1rhoa
        t821 = 0.2D1 * A1rhoa * t * trhoa
        t824 = 0.2D1 * A * t1rhoa * trhoa
        t826 = 0.2D1 * t272 * cg49
        t831 = t275 * t280
        t835 = t280 * t289
        t843 = t101 * t103
        t845 = 0.1D1 / t279 / t107
        t846 = t845 * t289
        t853 = A * t285
        t862 = t104 * t100
        t868 = t815 + t818 + t821 + t824 + t826 + 0.2D1 * A1rhoa * t105
     #* Arhoa + 0.8D1 * t853 * Arhoa * t1rhoa + 0.2D1 * t282 * cg67 + 0.
     #8D1 * t853 * trhoa * A1rhoa + 0.12D2 * t862 * trhoa * t1rhoa + 0.4
     #D1 * t286 * cg49
        t872 = 0.133450D0 * t89 * t1rhoa * t268 + 0.133450D0 * t267 * t7
     #76 * trhoa - 0.133450D0 * t804 * t805 * t783 + 0.133450D0 * t267 *
     # t109 * cg49 + 0.133450D0 * t267 * t276 * t1rhoa + 0.66725D-1 * t1
     #01 * (t815 + t818 + t821 + t824 + t826) * t108 - 0.66725D-1 * t101
     # * t831 * t783 - 0.133450D0 * t804 * t835 * t1rhoa - 0.66725D-1 *
     #t101 * t775 * t280 * t289 + 0.133450D0 * t843 * t846 * t783 - 0.66
     #725D-1 * t101 * t281 * t868
        t875 = t112 ** 2
        t876 = 0.1D1 / t875
        t877 = t293 * t876
        cg47 = -0.2D1 / 0.9D1 * dble(t114) / t298 / t115 * t670
        cg26 = cg78
        t895 = cg7 ** 2
        cg52 = cg44
        t908 = mu ** 2
        t909 = 0.1D1 / t313 / t126 * t908
        t910 = t123 * cg44
        cg65 = 0.2000000001D1 * t315 * cg58 * cg52
        exc_rhoa_rhoa = cg26 * cg25 + cg81 * cg65 + cg78 * cg25 - 0.3D1
     #/ 0.4D1 * rhoa * t7 * cg47 * cg25 + t319 * cg65 + cg81 * cg72 + rh
     #oa * cg26 * cg72 + t129 * (-0.9950248765D1 * t909 * t910 * cg52 +
     #0.2000000001D1 * t315 * cg52 * cg44 + 0.2000000001D1 * t315 * cg58
     # * (cg0 / t304 / cg54 * t121 * t895 + t306 * t310 * cg7 - t306 * t
     #121 * cg47 / 0.2D1 + t120 / t309 / rhoa)) + cg76 + 0.3D1 * t263 *
     #t113 * cg60 + t99 * t788 + cg40 + rho * (cg75 + 0.6D1 * t765 * t26
     #4 * cg60 + 0.3D1 * t263 * t788 * cg18 + 0.3D1 * t263 * t113 * cg30
     # + 0.3D1 * t263 * t295 * cg60 + t99 * t872 * t294 - t99 * t877 * t
     #787)
        cg23 = 0.2D1 * t475
        cg56 = cg45
        t938 = rsrhob * t161
        t945 = t500 * rsrhoa * rsrhob
        t947 = t163 * cg56
        t950 = t164 * rsrhob
        t952 = t13 * cg56
        t954 = rsrhoa * rsrhob
        t956 = t169 * cg56
        cg73 = -0.1328829340D-1 * cg56 * t24 + 0.2137000000D0 * t490 * t
     #334 + 0.2137000000D0 * t938 * t174 - 0.2000000000D1 * t495 * t174
     #* t333 + 0.9999999999D0 * t162 * (-0.1898925000D1 * t945 + 0.37978
     #50000D1 * t947 + 0.35876D1 * cg56 + 0.1228650000D1 * t950 + 0.2457
     #300000D1 * t952 + 0.9858800D0 * t954 + 0.985880D0 * t956) * t173 +
     # 0.1608182432D2 * t520 * t172 * t522 * t333
        t970 = rsrhob * t180
        t995 = rsrhob * t194
        cg22 = (0.4D1 / 0.9D1 * t588 * cg10 * cg24 + 0.4D1 / 0.3D1 * t57
     # * cg23 + 0.4D1 / 0.9D1 * t594 * cg10 * cg24 - 0.4D1 / 0.3D1 * t60
     # * cg23) * dble(t55)
        t1045 = t65 * cg10 * cg24
        t1074 = -0.4D1 * t63 * t214 * cg23 + (-0.638837320D-2 * cg56 * t
     #37 + 0.2054800000D0 * t528 * t344 + 0.2054800000D0 * t970 * t188 -
     # 0.2000000000D1 * t533 * t188 * t343 + 0.1000000000D1 * t181 * (-0
     #.3529725000D1 * t945 + 0.7059450000D1 * t947 + 0.61977D1 * cg56 +
     #0.2524650000D1 * t950 + 0.5049300000D1 * t952 + 0.12503400D1 * t95
     #4 + 0.1250340D1 * t956) * t187 + 0.3216468318D2 * t551 * t186 * t5
     #53 * t343 - cg73) * f * t66 + t218 * frhob * t66 + 0.4D1 * t219 *
     #t373 + t368 * frhoa * t66 + t70 * cg22 * t66 + 0.4D1 * t221 * t373
     # + 0.4D1 * t369 * t223 + 0.4D1 * t371 * t223 + 0.12D2 * t71 * t104
     #5 + 0.4D1 * t71 * t213 * cg23
        cg11 = cg73 + (0.375735750D-1 * cg56 * t50 - 0.1112500000D0 * t5
     #59 * t354 - 0.1112500000D0 * t995 * t202 + 0.2000000000D1 * t564 *
     # t202 * t353 - 0.9999999999D0 * t195 * (-0.2589250000D1 * t945 + 0
     #.5178500000D1 * t947 + 0.36231D1 * cg56 + 0.6601950000D0 * t950 +
     #0.1320390000D1 * t952 + 0.9934200D0 * t954 + 0.993420D0 * t956) *
     #t201 - 0.2960857464D1 * t582 * t200 * t584 * t353) * f * t68 + cg9
     #3 * frhob * t68 - 0.4D1 * t209 * t365 + cg50 * frhoa * t68 + cg62
     #* cg22 * t68 - 0.4D1 * t211 * t365 - 0.4D1 * t361 * t215 - 0.4D1 *
     # t363 * t215 - 0.12D2 * t63 * t64 * t1045 + t1074
        cg68 = -t657 * cg10 * cg24 / 0.9D1 + t226 * cg23 / 0.3D1 - t662
     #* cg10 * cg24 / 0.9D1 - t228 * cg23 / 0.3D1
        cg15 = cg87
        t1109 = t238 * t246 * cg38 / 0.2D1
        t1112 = t85 * t705 * cg80 / 0.2D1
        cg61 = t682 * t683 * cg38 + t686 * t683 * cg80 / 0.2D1 + t692 -
     #t238 * t87 * cg68 / 0.2D1 + t686 * t696 * cg38 / 0.2D1 + t702 * t6
     #96 * cg80 + t708 - t85 * t243 * (-t674 * cg3 * t76 * cg36 / 0.2D1
     #+ t235 * cg15 * t7) / 0.2D1 + t1109 + t1112 + t719
        cg33 = 0.133450D0 * t727 * t729 * t390 - 0.66725D-1 * t251 * (-c
     #g11 * t89 * t93 + 0.3D1 * t252 * t387 + 0.3D1 * t385 * t256 - 0.12
     #D2 * t90 * t747 * cg38 + 0.3D1 * t90 * t255 * cg68) * t95 - 0.6672
     #5D-1 * t251 * t259 * t390 * t95
        t1163 = cg33 * t100
        t1165 = 0.2D1 * t816 * trhob
        t1166 = Arhob * t
        t1168 = 0.2D1 * t1166 * trhoa
        t1171 = 0.2D1 * A * trhob * trhoa
        t1173 = 0.2D1 * t272 * cg61
        t1184 = t403 * t280
        t1207 = t1163 + t1165 + t1168 + t1171 + t1173 + 0.2D1 * Arhob *
     #t105 * Arhoa + 0.8D1 * t853 * Arhoa * trhob + 0.2D1 * t282 * cg33
     #+ 0.8D1 * t853 * trhoa * Arhob + 0.12D2 * t862 * trhoa * trhob + 0
     #.4D1 * t286 * cg61
        t1211 = 0.133450D0 * t89 * trhob * t268 + 0.133450D0 * t267 * t4
     #04 * trhoa - 0.133450D0 * t804 * t805 * t411 + 0.133450D0 * t267 *
     # t109 * cg61 + 0.133450D0 * t267 * t276 * trhob + 0.66725D-1 * t10
     #1 * (t1163 + t1165 + t1168 + t1171 + t1173) * t108 - 0.66725D-1 *
     #t101 * t831 * t411 - 0.133450D0 * t804 * t835 * trhob - 0.66725D-1
     # * t101 * t1184 * t289 + 0.133450D0 * t843 * t846 * t411 - 0.66725
     #D-1 * t101 * t281 * t1207
        exc_rhoa_rhob = cg28 + cg40 + rho * (cg11 + 0.6D1 * t765 * t264
     #* cg38 + 0.3D1 * t263 * t416 * cg18 + 0.3D1 * t263 * t113 * cg68 +
     # 0.3D1 * t263 * t295 * cg38 + t99 * t1211 * t294 - t99 * t877 * t4
     #15)
        cg16 = 0.2D1 * t150 + 0.2D1 * t475
        cg57 = cg56
        t1222 = t333 ** 2
        t1226 = rsrhob ** 2
        t1227 = t500 * t1226
        t1229 = t163 * cg57
        t1232 = t163 * t1226
        t1234 = t13 * cg57
        t1237 = t169 * cg57
        cg66 = -0.1328829340D-1 * cg57 * t24 + 0.4274000000D0 * t938 * t
     #334 - 0.2000000000D1 * t495 * t1222 * t173 + 0.9999999999D0 * t162
     # * (-0.1898925000D1 * t1227 + 0.3797850000D1 * t1229 + 0.35876D1 *
     # cg57 + 0.1228650000D1 * t1232 + 0.2457300000D1 * t1234 + 0.985880
     #0D0 * t1226 + 0.985880D0 * t1237) * t173 + 0.1608182432D2 * t520 *
     # t1222 * t522
        cg12 = cg51
        t1250 = t343 ** 2
        t1272 = t353 ** 2
        cg85 = cg50
        t1290 = cg24 ** 2
        cg70 = (0.4D1 / 0.9D1 * t588 * t1290 + 0.4D1 / 0.3D1 * t57 * cg1
     #6 + 0.4D1 / 0.9D1 * t594 * t1290 - 0.4D1 / 0.3D1 * t60 * cg16) * d
     #ble(t55)
        f1rhob = frhob
        t1312 = cg85 * f
        t1315 = cg62 * f1rhob
        t1332 = cg83 - cg12
        t1339 = t1332 * f
        t1342 = t70 * f1rhob
        t1351 = -0.4D1 * t63 * t214 * cg16 + (-0.638837320D-2 * cg57 * t
     #37 + 0.4109600000D0 * t970 * t344 - 0.2000000000D1 * t533 * t1250
     #* t187 + 0.1000000000D1 * t181 * (-0.3529725000D1 * t1227 + 0.7059
     #450000D1 * t1229 + 0.61977D1 * cg57 + 0.2524650000D1 * t1232 + 0.5
     #049300000D1 * t1234 + 0.12503400D1 * t1226 + 0.1250340D1 * t1237)
     #* t187 + 0.3216468318D2 * t551 * t1250 * t553 - cg66) * f * t66 +
     #t368 * f1rhob * t66 + 0.4D1 * t369 * t373 + t1332 * frhob * t66 +
     #t70 * cg70 * t66 + 0.4D1 * t371 * t373 + 0.4D1 * t1339 * t373 + 0.
     #4D1 * t1342 * t373 + 0.12D2 * t71 * t65 * t1290 + 0.4D1 * t71 * t2
     #13 * cg16
        cg79 = cg66 + (0.375735750D-1 * cg57 * t50 - 0.2225000000D0 * t9
     #95 * t354 + 0.2000000000D1 * t564 * t1272 * t201 - 0.9999999999D0
     #* t195 * (-0.2589250000D1 * t1227 + 0.5178500000D1 * t1229 + 0.362
     #31D1 * cg57 + 0.6601950000D0 * t1232 + 0.1320390000D1 * t1234 + 0.
     #9934200D0 * t1226 + 0.993420D0 * t1237) * t201 - 0.2960857464D1 *
     #t582 * t1272 * t584) * f * t68 + cg50 * f1rhob * t68 - 0.4D1 * t36
     #1 * t365 + cg85 * frhob * t68 + cg62 * cg70 * t68 - 0.4D1 * t363 *
     # t365 - 0.4D1 * t1312 * t365 - 0.4D1 * t1315 * t365 - 0.12D2 * t63
     # * t618 * t1290 + t1351
        cg13 = cg12 + t1312 * t68 + t1315 * t68 - t367 + t1339 * t66 + t
     #1342 * t66 + t375
        cg71 = -t657 * t1290 / 0.9D1 + t226 * cg16 / 0.3D1 - t662 * t129
     #0 / 0.9D1 - t228 * cg16 / 0.3D1
        cg17 = cg38
        t1364 = cg36 ** 2
        cg43 = cg80
        t1370 = t2 * cg38
        t1379 = t2 * cg80
        cg31 = t682 * t1370 * cg17 + t686 * t1370 * cg43 / 0.2D1 + t1109
     # - t238 * t87 * cg71 / 0.2D1 + t686 * t1379 * cg17 / 0.2D1 + t702
     #* t1379 * cg43 + t1112 - t85 * t243 * (-t674 * t1364 * t76 / 0.2D1
     # + t235 * cg15 * t7) / 0.2D1 + t238 * t246 * cg17 / 0.2D1 + t85 *
     #t705 * cg43 / 0.2D1 + t719
        t1rhob = -t238 * t87 * cg17 / 0.2D1 - t85 * t243 * cg43 / 0.2D1
     #- t247 / 0.2D1
        t1400 = cg13 * t89
        t1402 = t255 * cg17
        t1405 = -t1400 * t93 + 0.3D1 * t90 * t1402
        cg41 = 0.133450D0 * t727 * t390 * t728 * t1405 - 0.66725D-1 * t2
     #51 * (-cg79 * t89 * t93 + 0.3D1 * t385 * t1402 + 0.3D1 * t1400 * t
     #387 - 0.12D2 * t90 * t746 * cg38 * cg17 + 0.3D1 * t90 * t255 * cg7
     #1) * t95 - 0.66725D-1 * t251 * t390 * t1405 * t95
        A1rhob = -0.66725D-1 * t251 * t1405 * t95
        t1439 = A1rhob * t100
        t1441 = 0.2D1 * t272 * t1rhob
        t1442 = t1439 + t1441
        t1443 = t1442 * t108
        t1450 = t1439 + t1441 + 0.2D1 * t282 * A1rhob + 0.4D1 * t286 * t
     #1rhob
        t1454 = 0.133450D0 * t267 * t109 * t1rhob + 0.66725D-1 * t101 *
     #t1443 - 0.66725D-1 * t101 * t281 * t1450
        t1455 = t1454 * t294
        t1471 = t280 * trhob
        t1481 = cg41 * t100
        t1483 = 0.2D1 * t1166 * t1rhob
        t1486 = 0.2D1 * A1rhob * t * trhob
        t1489 = 0.2D1 * A * t1rhob * trhob
        t1491 = 0.2D1 * t272 * cg31
        t1499 = t280 * t411
        t1507 = t845 * t411
        t1527 = t1481 + t1483 + t1486 + t1489 + t1491 + 0.2D1 * A1rhob *
     # t105 * Arhob + 0.8D1 * t853 * Arhob * t1rhob + 0.2D1 * t282 * cg4
     #1 + 0.8D1 * t853 * trhob * A1rhob + 0.12D2 * t862 * trhob * t1rhob
     # + 0.4D1 * t286 * cg31
        t1531 = 0.133450D0 * t89 * t1rhob * t397 + 0.133450D0 * t267 * t
     #1443 * trhob - 0.133450D0 * t804 * t1471 * t1450 + 0.133450D0 * t2
     #67 * t109 * cg31 + 0.133450D0 * t267 * t404 * t1rhob + 0.66725D-1
     #* t101 * (t1481 + t1483 + t1486 + t1489 + t1491) * t108 - 0.66725D
     #-1 * t101 * t1184 * t1450 - 0.133450D0 * t804 * t1499 * t1rhob - 0
     #.66725D-1 * t101 * t1442 * t280 * t411 + 0.133450D0 * t843 * t1507
     # * t1450 - 0.66725D-1 * t101 * t281 * t1527
        t1534 = t415 * t876
        cg89 = -0.2D1 / 0.9D1 * dble(t114) / t419 / t131 * t670
        cg90 = cg69
        t1552 = cg2 ** 2
        cg88 = cg8
        t1565 = 0.1D1 / t434 / t142 * t908
        t1566 = t139 * cg8
        cg92 = 0.2000000001D1 * t436 * cg84 * cg88
        exc_rhob_rhob = cg90 * cg20 + cg32 * cg92 + cg69 * cg20 - 0.3D1
     #/ 0.4D1 * rhob * t7 * cg89 * cg20 + t440 * cg92 + cg32 * cg42 + rh
     #ob * cg90 * cg42 + t145 * (-0.9950248765D1 * t1565 * t1566 * cg88
     #+ 0.2000000001D1 * t436 * cg88 * cg8 + 0.2000000001D1 * t436 * cg8
     #4 * (cg1 / t425 / cg19 * t137 * t1552 + t427 * t431 * cg2 - t427 *
     # t137 * cg89 / 0.2D1 + t136 / t430 / rhob)) + cg13 + 0.3D1 * t263
     #* t113 * cg17 + t99 * t1455 + cg28 + rho * (cg79 + 0.6D1 * t765 *
     #t394 * cg17 + 0.3D1 * t263 * t1455 * cg38 + 0.3D1 * t263 * t113 *
     #cg71 + 0.3D1 * t263 * t416 * cg17 + t99 * t1531 * t294 - t99 * t15
     #34 * t1454)
        t1590 = t237 * t86
        t1592 = t84 * t242
        t1594 = t445 * t150
        cg91 = -t1590 * t683 / 0.2D1 - t1592 * t696 / 0.2D1 - t1594 / 0.
     #2D1
        t1599 = t89 * cg86
        t1602 = t101 * A
        t1603 = cg86 * t108
        t1616 = t816 * cg86
        t1617 = t451 * trhoa
        t1618 = t272 * cg91
        t1627 = t835 * cg86
        t1630 = t450 * A
        t1651 = 0.133450D0 * t1599 * t268 + 0.266900D0 * t1602 * t1603 *
     # trhoa - 0.133450D0 * t804 * t805 * t459 + 0.133450D0 * t267 * t10
     #9 * cg91 + 0.133450D0 * t267 * t276 * cg86 + 0.66725D-1 * t101 * (
     #0.2D1 * t1616 + 0.2D1 * t1617 + 0.2D1 * t1618) * t108 - 0.66725D-1
     # * t101 * t831 * t459 - 0.133450D0 * t804 * t1627 - 0.133450D0 * t
     #1630 * t1627 + 0.133450D0 * t843 * t846 * t459 - 0.66725D-1 * t101
     # * t281 * (0.2D1 * t1616 + 0.2D1 * t1617 + 0.2D1 * t1618 + 0.8D1 *
     # t853 * Arhoa * cg86 + 0.12D2 * t862 * trhoa * cg86 + 0.4D1 * t286
     # * cg91)
        exc_rhoa_norm_drho = cg48 + rho * (0.3D1 * t263 * t464 * cg18 +
     #t99 * t1651 * t294 - t99 * t877 * t463)
        cg64 = -t1590 * t1370 / 0.2D1 - t1592 * t1379 / 0.2D1 - t1594 /
     #0.2D1
        t1677 = t1166 * cg86
        t1678 = t451 * trhob
        t1679 = t272 * cg64
        t1688 = t1499 * cg86
        t1711 = 0.133450D0 * t1599 * t397 + 0.266900D0 * t1602 * t1603 *
     # trhob - 0.133450D0 * t804 * t1471 * t459 + 0.133450D0 * t267 * t1
     #09 * cg64 + 0.133450D0 * t267 * t404 * cg86 + 0.66725D-1 * t101 *
     #(0.2D1 * t1677 + 0.2D1 * t1678 + 0.2D1 * t1679) * t108 - 0.66725D-
     #1 * t101 * t1184 * t459 - 0.133450D0 * t804 * t1688 - 0.133450D0 *
     # t1630 * t1688 + 0.133450D0 * t843 * t1507 * t459 - 0.66725D-1 * t
     #101 * t281 * (0.2D1 * t1677 + 0.2D1 * t1678 + 0.2D1 * t1679 + 0.8D
     #1 * t853 * Arhob * cg86 + 0.12D2 * t862 * trhob * cg86 + 0.4D1 * t
     #286 * cg64)
        exc_rhob_norm_drho = cg48 + rho * (0.3D1 * t263 * t464 * cg38 +
     #t99 * t1711 * t294 - t99 * t1534 * t463)
        t1717 = cg86 ** 2
        t1721 = A * t1717
        t1726 = t280 * cg86 * t459
        t1732 = t459 ** 2
        t1746 = t463 ** 2
        exc_norm_drho_norm_drho = rho * (t99 * (0.133450D0 * t89 * t1717
     # * t109 + 0.667250D0 * t101 * t1721 * t108 - 0.266900D0 * t804 * t
     #1726 - 0.266900D0 * t1630 * t1726 + 0.133450D0 * t101 * t103 * t84
     #5 * t1732 - 0.66725D-1 * t101 * t281 * (0.2D1 * t1721 + 0.12D2 * t
     #862 * t1717)) * t294 - t99 * t1746 * t876)
        exc_rhoa_norm_drhoa = cg81 * cg5 + t319 * cg5 + t129 * (-0.99502
     #48765D1 * t909 * t910 * cg4 + 0.2000000001D1 * t315 * cg4 * cg44 +
     # 0.2000000001D1 * t315 * cg58 * (-t305 * t121 * cg7 / 0.2D1 - t119
     # * t310 / 0.2D1))
        t1766 = cg4 ** 2
        exc_norm_drhoa_norm_drhoa = t129 * (-0.9950248765D1 * t909 * t12
     #3 * t1766 + 0.2000000001D1 * t315 * t1766)
        exc_rhob_norm_drhob = cg32 * cg39 + t440 * cg39 + t145 * (-0.995
     #0248765D1 * t1565 * t1566 * cg74 + 0.2000000001D1 * t436 * cg74 *
     #cg8 + 0.2000000001D1 * t436 * cg84 * (-t426 * t137 * cg2 / 0.2D1 -
     # t135 * t431 / 0.2D1))
        t1790 = cg74 ** 2
        exc_norm_drhob_norm_drhob = t145 * (-0.9950248765D1 * t1565 * t1
     #39 * t1790 + 0.2000000001D1 * t436 * t1790)
        cg94 = exc_norm_drhob_norm_drhob
        return
      end"""


def maple2f90(code, replacements={}):
    c1 = code.replace("\n     #", "")

    floatRe = re.compile(r"([0-9]+\.?[0-9]*|\.[0-9]+)[dD]([-+]?[0-9]+)")
    c1 = floatRe.sub(r"\1e\2_dp", c1)

    varNameRe = re.compile(r"([a-zA-Z][a-zA-Z0-9_]*)")
    c2 = varNameRe.split(c1)
    for i in range(len(c2)):
        if c2[i] in replacements.keys():
            c2[i] = replacements[c2[i]]
    c1 = "".join(c2)
    vars = re.findall(r" *([a-zA-Z][a-zA-Z0-9_]*) *=", c1)
    lc1 = ["real(kind=dp) :: " + ", ".join(vars) + "\n", "\n"] + c1.splitlines()
    splittableRe = re.compile(r"([ /=()])")
    for i in range(len(lc1)):
        if len(lc1[i]) > 80:
            pieces = splittableRe.split(lc1[i])
            ll = 0
            newL = []
            for p in pieces:
                if ll < 10 or ll + len(p) < 75:
                    newL.append(p)
                    ll += len(p)
                else:
                    newL.append("&\n      ")
                    newL.append(p)
                    ll = len(p) + 6
            lc1[i] = "".join(newL)
    c1 = "\n".join(lc1) + "\n"
    return c1


# ===============================================================================
if __name__ == "__main__":
    replacements = {}
    for i in range(len(renamedVar)):
        replacements[renamedVar[i]] = origNames[i]
    output = maple2f90(code, replacements)

    # print output unless we are selftesting
    print(output)