#!/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)