Advertisement
mabruzzo

fortran_func_decls.h

Dec 4th, 2024
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 58.48 KB | None | 0 0
  1. #ifndef FORTRAN_FN_DECLARATIONS_HPP
  2. #define FORTRAN_FN_DECLARATIONS_HPP
  3.  
  4. #ifdef __cplusplus
  5. extern "C" {
  6. #endif /* __cplusplus */
  7.  
  8. #include "grackle_macros.h" // FORTRAN_NAME
  9. #include "grackle.h"        // gr_float
  10. #include <stdint.h>         // int32_t
  11. typedef int32_t gr_mask_type;
  12.  
  13. #define MASK_TRUE 1
  14. #define MASK_FALSE 0
  15.  
  16. // defining constants
  17. // ------------------
  18. // -> these constants are faithful to phys_consts.def
  19. // -> we have noted where the variables deviate from phys_constants.h
  20. // -> we can't directly include phys_constants.h because it defines mh, me, and pi
  21. //    as macro-names and some of the transcribed routines use those same names as the
  22. //    names of const-variables
  23.  
  24. // the following 2 constants have the same values as mh and me in phys_constants.h
  25. #define mass_h 1.67262171e-24
  26. #define mass_e 9.10938215e-28
  27.  
  28. // `pi` macro in phys_constants.h has different precisions from both branches
  29. #ifdef GRACKLE_FLOAT_4
  30.   #define pi_val 3.14159265f
  31. #else
  32.   #define pi_val 3.141592653589793
  33. #endif
  34.  
  35. // the following were ripped out of phys_constants.h (they are entirely consistent
  36. // with the values in phys_consts.def
  37. #define kboltz    1.3806504e-16
  38. #define hplanck   6.6260693e-27
  39. #define ev2erg    1.60217653e-12
  40. #define sigma_sb  5.670373e-5
  41. #define clight    2.99792458e10
  42. #define GravConst 6.67428e-8
  43. #define SolarMass 1.9891e33
  44. #define Mpc       3.0857e24
  45. #define kpc       3.0857e21
  46. #define pc        3.0857e18
  47.  
  48. // constants from grackle_fortran_types.def
  49. // -> `tiny` and `huge` are properly defined by grackle_macros.h
  50.  
  51. #define tiny8 1.e-40
  52. #define huge8 1.e+40
  53.  
  54.  
  55. void FORTRAN_NAME(calc_temp1d_cloudy_g)(
  56.   gr_float* d_data_ptr, gr_float* metal_data_ptr, gr_float* e_data_ptr,
  57.   double* rhoH, int* in, int* jn, int* kn, int* is, int* ie, int* j, int* k,
  58.   double* tgas, double* mmw, double* dom, double* zr, double* temstart,
  59.   double* temend, double* gamma, double* utem, int* imetal,
  60.   long long* clGridRank, long long* clGridDim, double* clPar1, double* clPar2,
  61.   double* clPar3, long long* clDataSize, double* clMMW, gr_mask_type* itmask
  62. );
  63.  
  64. void FORTRAN_NAME(cool1d_cloudy_g)(
  65.   gr_float* d_data_ptr, double* rhoH, double* metallicity, int* in, int* jn,
  66.   int* kn, int* is, int* ie, int* j, int* k, double* logtem, double* edot,
  67.   double* comp2, double* dom, double* zr, int* icmbTfloor, int* iClHeat,
  68.   int* iZscale, long long* clGridRank, long long* clGridDim, double* clPar1,
  69.   double* clPar2, double* clPar3, long long* clDataSize, double* clCooling,
  70.   double* clHeating, gr_mask_type* itmask
  71. );
  72.  
  73. void FORTRAN_NAME(calc_tdust_1d_g)(
  74.   double* tdust, double* tgas, double* nh, double* gasgr, double* gamma_isrfa,
  75.   double* isrf, gr_mask_type* itmask, double* trad, int* in, int* is, int* ie,
  76.   int* j, int* k, int* gr_N, int* gr_Size, double* gr_dT, double* gr_Td,
  77.   gr_float* alsp_data_ptr, double* kgr, int* idspecies
  78. );
  79.  
  80. void FORTRAN_NAME(calc_kappa_gr_g)(
  81.   double* tdust, double* kgr, gr_mask_type* itmask, int* in, int* is, int* ie,
  82.   double* t_subl, int* gr_N, int* gr_Size, double* gr_dT, double* gr_Td,
  83.   gr_float* logalsp_data_ptr, int* idspecies
  84. );
  85.  
  86. void FORTRAN_NAME(calc_gr_balance_g)(
  87.   double* tdust, double* tgas, double* kgr, double* trad4, double* gasgr,
  88.   double* gamma_isrf, double* nh, gr_mask_type* itmask, double* sol, int* in,
  89.   int* is, int* ie
  90. );
  91.  
  92. void FORTRAN_NAME(calc_tdust_3d_g)(
  93.   gr_float* d_data_ptr, gr_float* de_data_ptr, gr_float* HI_data_ptr,
  94.   gr_float* HII_data_ptr, gr_float* HeI_data_ptr, gr_float* HeII_data_ptr,
  95.   gr_float* HeIII_data_ptr, gr_float* HM_data_ptr, gr_float* H2I_data_ptr,
  96.   gr_float* H2II_data_ptr, int* in, int* jn, int* kn, int* nratec, int* iexpand,
  97.   int* ispecies, int* idim, int* is, int* js, int* ks, int* ie, int* je,
  98.   int* ke, double* aye, double* temstart, double* temend, double* fgr,
  99.   double* gasgra, double* gamma_isrfa, double* isrf, double* utem, double* uxyz,
  100.   double* uaye, double* urho, double* utim, gr_float* gas_temp_data_ptr,
  101.   gr_float* dust_temp_data_ptr, int* iisrffield, gr_float* isrf_habing_data_ptr,
  102.   int* imetal, int* imchem, int* idustfield, int* igrgr, double* z_solar,
  103.   gr_float* metal_data_ptr, gr_float* dust_data_ptr, gr_float* SiM_data_ptr,
  104.   gr_float* FeM_data_ptr, gr_float* Mg2SiO4_data_ptr, gr_float* MgSiO3_data_ptr,
  105.   gr_float* Fe3O4_data_ptr, gr_float* AC_data_ptr, gr_float* SiO2D_data_ptr,
  106.   gr_float* MgO_data_ptr, gr_float* FeS_data_ptr, gr_float* Al2O3_data_ptr,
  107.   gr_float* reforg_data_ptr, gr_float* volorg_data_ptr,
  108.   gr_float* H2Oice_data_ptr, int* immulti, int* imabund, int* idspecies,
  109.   int* itdmulti, int* idsub, gr_float* metal_loc_data_ptr,
  110.   gr_float* metal_C13_data_ptr, gr_float* metal_C20_data_ptr,
  111.   gr_float* metal_C25_data_ptr, gr_float* metal_C30_data_ptr,
  112.   gr_float* metal_F13_data_ptr, gr_float* metal_F15_data_ptr,
  113.   gr_float* metal_F50_data_ptr, gr_float* metal_F80_data_ptr,
  114.   gr_float* metal_P170_data_ptr, gr_float* metal_P200_data_ptr,
  115.   gr_float* metal_Y19_data_ptr, int* SN0_N, double* SN0_fSiM, double* SN0_fFeM,
  116.   double* SN0_fMg2SiO4, double* SN0_fMgSiO3, double* SN0_fFe3O4,
  117.   double* SN0_fAC, double* SN0_fSiO2D, double* SN0_fMgO, double* SN0_fFeS,
  118.   double* SN0_fAl2O3, double* SN0_freforg, double* SN0_fvolorg,
  119.   double* SN0_fH2Oice, double* SN0_r0SiM_data_ptr, double* SN0_r0FeM_data_ptr,
  120.   double* SN0_r0Mg2SiO4_data_ptr, double* SN0_r0MgSiO3_data_ptr,
  121.   double* SN0_r0Fe3O4_data_ptr, double* SN0_r0AC_data_ptr,
  122.   double* SN0_r0SiO2D_data_ptr, double* SN0_r0MgO_data_ptr,
  123.   double* SN0_r0FeS_data_ptr, double* SN0_r0Al2O3_data_ptr,
  124.   double* SN0_r0reforg_data_ptr, double* SN0_r0volorg_data_ptr,
  125.   double* SN0_r0H2Oice_data_ptr, int* gr_N, int* gr_Size, double* gr_dT,
  126.   double* gr_Td, double* SN0_kpSiM_data_ptr, double* SN0_kpFeM_data_ptr,
  127.   double* SN0_kpMg2SiO4_data_ptr, double* SN0_kpMgSiO3_data_ptr,
  128.   double* SN0_kpFe3O4_data_ptr, double* SN0_kpAC_data_ptr,
  129.   double* SN0_kpSiO2D_data_ptr, double* SN0_kpMgO_data_ptr,
  130.   double* SN0_kpFeS_data_ptr, double* SN0_kpAl2O3_data_ptr,
  131.   double* SN0_kpreforg_data_ptr, double* SN0_kpvolorg_data_ptr,
  132.   double* SN0_kpH2Oice_data_ptr, double* gasgr2a, double* gamma_isrf2a,
  133.   gr_float* SiM_temp_data_ptr, gr_float* FeM_temp_data_ptr,
  134.   gr_float* Mg2SiO4_temp_data_ptr, gr_float* MgSiO3_temp_data_ptr,
  135.   gr_float* Fe3O4_temp_data_ptr, gr_float* AC_temp_data_ptr,
  136.   gr_float* SiO2D_temp_data_ptr, gr_float* MgO_temp_data_ptr,
  137.   gr_float* FeS_temp_data_ptr, gr_float* Al2O3_temp_data_ptr,
  138.   gr_float* reforg_temp_data_ptr, gr_float* volorg_temp_data_ptr,
  139.   gr_float* H2Oice_temp_data_ptr
  140. );
  141.  
  142. void FORTRAN_NAME(solve_rate_cool_g)(
  143.   int* icool, gr_float* d_data_ptr, gr_float* e_data_ptr, gr_float* u_data_ptr,
  144.   gr_float* v_data_ptr, gr_float* w_data_ptr, gr_float* de_data_ptr,
  145.   gr_float* HI_data_ptr, gr_float* HII_data_ptr, gr_float* HeI_data_ptr,
  146.   gr_float* HeII_data_ptr, gr_float* HeIII_data_ptr, int* in, int* jn, int* kn,
  147.   int* nratec, int* iexpand, int* ispecies, int* imetal, int* imcool,
  148.   int* idust, int* idustall, int* idustfield, int* idim, int* is, int* js,
  149.   int* ks, int* ie, int* je, int* ke, int* ih2co, int* ipiht, int* idustrec,
  150.   int* igammah, double* dx, double* dt, double* aye, double* temstart,
  151.   double* temend, double* utem, double* uxyz, double* uaye, double* urho,
  152.   double* utim, double* gamma, double* fh, double* dtoh, double* z_solar,
  153.   double* fgr, double* k1a, double* k2a, double* k3a, double* k4a, double* k5a,
  154.   double* k6a, double* k7a, double* k8a, double* k9a, double* k10a,
  155.   double* k11a, double* k12a, double* k13a, double* k13dda_data_ptr,
  156.   double* k14a, double* k15a, double* k16a, double* k17a, double* k18a,
  157.   double* k19a, double* k22a, double* k24, double* k25, double* k26,
  158.   double* k27, double* k28, double* k29, double* k30, double* k31, double* k50a,
  159.   double* k51a, double* k52a, double* k53a, double* k54a, double* k55a,
  160.   double* k56a, double* k57a, double* k58a, int* ndratec, double* dtemstart,
  161.   double* dtemend, double* h2dusta_data_ptr, double* ncrna, double* ncrd1a,
  162.   double* ncrd2a, double* ceHIa, double* ceHeIa, double* ceHeIIa, double* ciHIa,
  163.   double* ciHeIa, double* ciHeISa, double* ciHeIIa, double* reHIIa,
  164.   double* reHeII1a, double* reHeII2a, double* reHeIIIa, double* brema,
  165.   double* compa, double* gammaha, double* isrf, double* regra,
  166.   double* gamma_isrfa, double* comp_xraya, double* comp_temp, double* piHI,
  167.   double* piHeI, double* piHeII, gr_float* HM_data_ptr, gr_float* H2I_data_ptr,
  168.   gr_float* H2II_data_ptr, gr_float* DI_data_ptr, gr_float* DII_data_ptr,
  169.   gr_float* HDI_data_ptr, gr_float* metal_data_ptr, gr_float* dust_data_ptr,
  170.   double* hyd01ka, double* h2k01a, double* vibha, double* rotha, double* rotla,
  171.   double* gpldla, double* gphdla, double* hdltea, double* hdlowa, double* gaHIa,
  172.   double* gaH2a, double* gaHea, double* gaHpa, double* gaela, double* h2ltea,
  173.   double* gasgra, int* iH2shield, int* iradshield, double* avgsighi,
  174.   double* avgsighei, double* avgsigheii, int* iradtrans, int* iradcoupled,
  175.   int* iradstep, int* irt_honly, gr_float* kphHI_data_ptr,
  176.   gr_float* kphHeI_data_ptr, gr_float* kphHeII_data_ptr,
  177.   gr_float* kdissH2I_data_ptr, gr_float* photogamma_data_ptr,
  178.   gr_float* xH2shield_data_ptr, int* ierr, int* ih2optical, int* iciecool,
  179.   int* ithreebody, int* ih2cr, int* ihdcr, double* ciecoa, int* icmbTfloor,
  180.   int* iClHeat, double* clEleFra, long long* priGridRank, long long* priGridDim,
  181.   double* priPar1, double* priPar2, double* priPar3, double* priPar4,
  182.   double* priPar5, long long* priDataSize, double* priCooling,
  183.   double* priHeating, double* priMMW, long long* metGridRank,
  184.   long long* metGridDim, double* metPar1, double* metPar2, double* metPar3,
  185.   double* metPar4, double* metPar5, long long* metDataSize, double* metCooling,
  186.   double* metHeating, int* clnew, int* iVheat, int* iMheat,
  187.   gr_float* Vheat_data_ptr, gr_float* Mheat_data_ptr, int* iTfloor,
  188.   double* Tfloor_scalar, gr_float* Tfloor_data_ptr, int* imchem, int* igrgr,
  189.   int* ipcont, double* tmcool, gr_float* DM_data_ptr, gr_float* HDII_data_ptr,
  190.   gr_float* HeHII_data_ptr, gr_float* CI_data_ptr, gr_float* CII_data_ptr,
  191.   gr_float* CO_data_ptr, gr_float* CO2_data_ptr, gr_float* OI_data_ptr,
  192.   gr_float* OH_data_ptr, gr_float* H2O_data_ptr, gr_float* O2_data_ptr,
  193.   gr_float* SiI_data_ptr, gr_float* SiOI_data_ptr, gr_float* SiO2I_data_ptr,
  194.   gr_float* CH_data_ptr, gr_float* CH2_data_ptr, gr_float* COII_data_ptr,
  195.   gr_float* OII_data_ptr, gr_float* OHII_data_ptr, gr_float* H2OII_data_ptr,
  196.   gr_float* H3OII_data_ptr, gr_float* O2II_data_ptr, gr_float* Mg_data_ptr,
  197.   gr_float* Al_data_ptr, gr_float* S_data_ptr, gr_float* Fe_data_ptr,
  198.   gr_float* SiM_data_ptr, gr_float* FeM_data_ptr, gr_float* Mg2SiO4_data_ptr,
  199.   gr_float* MgSiO3_data_ptr, gr_float* Fe3O4_data_ptr, gr_float* AC_data_ptr,
  200.   gr_float* SiO2D_data_ptr, gr_float* MgO_data_ptr, gr_float* FeS_data_ptr,
  201.   gr_float* Al2O3_data_ptr, gr_float* reforg_data_ptr,
  202.   gr_float* volorg_data_ptr, gr_float* H2Oice_data_ptr, double* k125a,
  203.   double* k129a, double* k130a, double* k131a, double* k132a, double* k133a,
  204.   double* k134a, double* k135a, double* k136a, double* k137a, double* k148a,
  205.   double* k149a, double* k150a, double* k151a, double* k152a, double* k153a,
  206.   double* kz15a, double* kz16a, double* kz17a, double* kz18a, double* kz19a,
  207.   double* kz20a, double* kz21a, double* kz22a, double* kz23a, double* kz24a,
  208.   double* kz25a, double* kz26a, double* kz27a, double* kz28a, double* kz29a,
  209.   double* kz30a, double* kz31a, double* kz32a, double* kz33a, double* kz34a,
  210.   double* kz35a, double* kz36a, double* kz37a, double* kz38a, double* kz39a,
  211.   double* kz40a, double* kz41a, double* kz42a, double* kz43a, double* kz44a,
  212.   double* kz45a, double* kz46a, double* kz47a, double* kz48a, double* kz49a,
  213.   double* kz50a, double* kz51a, double* kz52a, double* kz53a, double* kz54a,
  214.   double* cieY06a, int* LH2_N, int* LH2_Size, double* LH2_D, double* LH2_T,
  215.   double* LH2_H, double* LH2_dD, double* LH2_dT, double* LH2_dH, double* LH2_L,
  216.   int* LHD_N, int* LHD_Size, double* LHD_D, double* LHD_T, double* LHD_H,
  217.   double* LHD_dD, double* LHD_dT, double* LHD_dH, double* LHD_L, int* LCI_N,
  218.   int* LCI_Size, double* LCI_D, double* LCI_T, double* LCI_H, double* LCI_dD,
  219.   double* LCI_dT, double* LCI_dH, double* LCI_L, int* LCII_N, int* LCII_Size,
  220.   double* LCII_D, double* LCII_T, double* LCII_H, double* LCII_dD,
  221.   double* LCII_dT, double* LCII_dH, double* LCII_L, int* LOI_N, int* LOI_Size,
  222.   double* LOI_D, double* LOI_T, double* LOI_H, double* LOI_dD, double* LOI_dT,
  223.   double* LOI_dH, double* LOI_L, int* LCO_N, int* LCO_Size, double* LCO_D,
  224.   double* LCO_T, double* LCO_H, double* LCO_dD, double* LCO_dT, double* LCO_dH,
  225.   double* LCO_L, int* LOH_N, int* LOH_Size, double* LOH_D, double* LOH_T,
  226.   double* LOH_H, double* LOH_dD, double* LOH_dT, double* LOH_dH, double* LOH_L,
  227.   int* LH2O_N, int* LH2O_Size, double* LH2O_D, double* LH2O_T, double* LH2O_H,
  228.   double* LH2O_dD, double* LH2O_dT, double* LH2O_dH, double* LH2O_L,
  229.   int* alphap_N, int* alphap_Size, double* alphap_D, double* alphap_T,
  230.   double* alphap_dD, double* alphap_dT, double* alphap_Data, int* immulti,
  231.   int* imabund, int* idspecies, int* itdmulti, int* idsub,
  232.   gr_float* metal_loc_data_ptr, gr_float* metal_C13_data_ptr,
  233.   gr_float* metal_C20_data_ptr, gr_float* metal_C25_data_ptr,
  234.   gr_float* metal_C30_data_ptr, gr_float* metal_F13_data_ptr,
  235.   gr_float* metal_F15_data_ptr, gr_float* metal_F50_data_ptr,
  236.   gr_float* metal_F80_data_ptr, gr_float* metal_P170_data_ptr,
  237.   gr_float* metal_P200_data_ptr, gr_float* metal_Y19_data_ptr, int* SN0_N,
  238.   double* SN0_XC, double* SN0_XO, double* SN0_XMg, double* SN0_XAl,
  239.   double* SN0_XSi, double* SN0_XS, double* SN0_XFe, double* SN0_fC,
  240.   double* SN0_fO, double* SN0_fMg, double* SN0_fAl, double* SN0_fSi,
  241.   double* SN0_fS, double* SN0_fFe, double* SN0_fSiM, double* SN0_fFeM,
  242.   double* SN0_fMg2SiO4, double* SN0_fMgSiO3, double* SN0_fFe3O4,
  243.   double* SN0_fAC, double* SN0_fSiO2D, double* SN0_fMgO, double* SN0_fFeS,
  244.   double* SN0_fAl2O3, double* SN0_freforg, double* SN0_fvolorg,
  245.   double* SN0_fH2Oice, double* SN0_r0SiM_data_ptr, double* SN0_r0FeM_data_ptr,
  246.   double* SN0_r0Mg2SiO4_data_ptr, double* SN0_r0MgSiO3_data_ptr,
  247.   double* SN0_r0Fe3O4_data_ptr, double* SN0_r0AC_data_ptr,
  248.   double* SN0_r0SiO2D_data_ptr, double* SN0_r0MgO_data_ptr,
  249.   double* SN0_r0FeS_data_ptr, double* SN0_r0Al2O3_data_ptr,
  250.   double* SN0_r0reforg_data_ptr, double* SN0_r0volorg_data_ptr,
  251.   double* SN0_r0H2Oice_data_ptr, int* gr_N, int* gr_Size, double* gr_dT,
  252.   double* gr_Td, double* SN0_kpSiM_data_ptr, double* SN0_kpFeM_data_ptr,
  253.   double* SN0_kpMg2SiO4_data_ptr, double* SN0_kpMgSiO3_data_ptr,
  254.   double* SN0_kpFe3O4_data_ptr, double* SN0_kpAC_data_ptr,
  255.   double* SN0_kpSiO2D_data_ptr, double* SN0_kpMgO_data_ptr,
  256.   double* SN0_kpFeS_data_ptr, double* SN0_kpAl2O3_data_ptr,
  257.   double* SN0_kpreforg_data_ptr, double* SN0_kpvolorg_data_ptr,
  258.   double* SN0_kpH2Oice_data_ptr, double* h2dustSa_data_ptr,
  259.   double* h2dustCa_data_ptr, double* gasgr2a, double* gamma_isrf2a,
  260.   double* grogra, int* idissHDI, gr_float* kdissHDI_data_ptr, int* iionZ,
  261.   gr_float* kphCI_data_ptr, gr_float* kphOI_data_ptr, int* idissZ,
  262.   gr_float* kdissCO_data_ptr, gr_float* kdissOH_data_ptr,
  263.   gr_float* kdissH2O_data_ptr, int* iuseH2shield, int* iisrffield,
  264.   gr_float* isrf_habing_data_ptr, int* iH2shieldcustom,
  265.   gr_float* f_shield_custom_data_ptr, int* itmax, int* exititmax
  266. );
  267.  
  268. void FORTRAN_NAME(ceiling_species_g)(
  269.   gr_float* d_data_ptr, gr_float* de_data_ptr, gr_float* HI_data_ptr,
  270.   gr_float* HII_data_ptr, gr_float* HeI_data_ptr, gr_float* HeII_data_ptr,
  271.   gr_float* HeIII_data_ptr, gr_float* HM_data_ptr, gr_float* H2I_data_ptr,
  272.   gr_float* H2II_data_ptr, gr_float* DI_data_ptr, gr_float* DII_data_ptr,
  273.   gr_float* HDI_data_ptr, gr_float* metal_data_ptr, gr_float* dust_data_ptr,
  274.   int* is, int* ie, int* js, int* je, int* ks, int* ke, int* in, int* jn,
  275.   int* kn, int* ispecies, int* imetal, int* idustfield, gr_float* DM_data_ptr,
  276.   gr_float* HDII_data_ptr, gr_float* HeHII_data_ptr, int* imabund, int* imchem,
  277.   int* idspecies, int* immulti, int* igrgr, int* idsub, gr_float* CI_data_ptr,
  278.   gr_float* CII_data_ptr, gr_float* CO_data_ptr, gr_float* CO2_data_ptr,
  279.   gr_float* OI_data_ptr, gr_float* OH_data_ptr, gr_float* H2O_data_ptr,
  280.   gr_float* O2_data_ptr, gr_float* SiI_data_ptr, gr_float* SiOI_data_ptr,
  281.   gr_float* SiO2I_data_ptr, gr_float* CH_data_ptr, gr_float* CH2_data_ptr,
  282.   gr_float* COII_data_ptr, gr_float* OII_data_ptr, gr_float* OHII_data_ptr,
  283.   gr_float* H2OII_data_ptr, gr_float* H3OII_data_ptr, gr_float* O2II_data_ptr,
  284.   gr_float* Mg_data_ptr, gr_float* Al_data_ptr, gr_float* S_data_ptr,
  285.   gr_float* Fe_data_ptr, gr_float* SiM_data_ptr, gr_float* FeM_data_ptr,
  286.   gr_float* Mg2SiO4_data_ptr, gr_float* MgSiO3_data_ptr,
  287.   gr_float* Fe3O4_data_ptr, gr_float* AC_data_ptr, gr_float* SiO2D_data_ptr,
  288.   gr_float* MgO_data_ptr, gr_float* FeS_data_ptr, gr_float* Al2O3_data_ptr,
  289.   gr_float* reforg_data_ptr, gr_float* volorg_data_ptr,
  290.   gr_float* H2Oice_data_ptr, gr_float* metal_loc_data_ptr,
  291.   gr_float* metal_C13_data_ptr, gr_float* metal_C20_data_ptr,
  292.   gr_float* metal_C25_data_ptr, gr_float* metal_C30_data_ptr,
  293.   gr_float* metal_F13_data_ptr, gr_float* metal_F15_data_ptr,
  294.   gr_float* metal_F50_data_ptr, gr_float* metal_F80_data_ptr,
  295.   gr_float* metal_P170_data_ptr, gr_float* metal_P200_data_ptr,
  296.   gr_float* metal_Y19_data_ptr
  297. );
  298.  
  299. void FORTRAN_NAME(lookup_cool_rates1d_g)(
  300.   double* temstart, double* temend, int* nratec, int* j, int* k, int* is,
  301.   int* ie, int* ithreebody, int* in, int* jn, int* kn, int* ispecies,
  302.   gr_mask_type* anydust, int* iH2shield, int* iradshield, double* tgas1d,
  303.   double* mmw, gr_float* d_data_ptr, gr_float* HI_data_ptr,
  304.   gr_float* HII_data_ptr, gr_float* HeI_data_ptr, gr_float* HeII_data_ptr,
  305.   gr_float* HeIII_data_ptr, gr_float* HM_data_ptr, gr_float* H2I_data_ptr,
  306.   gr_float* H2II_data_ptr, gr_float* DI_data_ptr, gr_float* DII_data_ptr,
  307.   gr_float* HDI_data_ptr, double* tdust, double* dust2gas, double* k1a,
  308.   double* k2a, double* k3a, double* k4a, double* k5a, double* k6a, double* k7a,
  309.   double* k8a, double* k9a, double* k10a, double* k11a, double* k12a,
  310.   double* k13a, double* k13dda_data_ptr, double* k14a, double* k15a,
  311.   double* k16a, double* k17a, double* k18a, double* k19a, double* k22a,
  312.   double* k50a, double* k51a, double* k52a, double* k53a, double* k54a,
  313.   double* k55a, double* k56a, double* k57a, double* k58a, int* ndratec,
  314.   double* dtemstart, double* dtemend, double* h2dusta_data_ptr, double* ncrna,
  315.   double* ncrd1a, double* ncrd2a, double* avgsighi, double* avgsighei,
  316.   double* avgsigheii, double* piHI, double* piHeI, double* k1, double* k2,
  317.   double* k3, double* k4, double* k5, double* k6, double* k7, double* k8,
  318.   double* k9, double* k10, double* k11, double* k12, double* k13, double* k14,
  319.   double* k15, double* k16, double* k17, double* k18, double* k19, double* k22,
  320.   double* k24, double* k25, double* k26, double* k28, double* k29, double* k30,
  321.   double* k31, double* k50, double* k51, double* k52, double* k53, double* k54,
  322.   double* k55, double* k56, double* k57, double* k58, double* k13dd_data_ptr,
  323.   double* k24shield, double* k25shield, double* k26shield, double* k28shield,
  324.   double* k29shield, double* k30shield, double* k31shield, double* h2dust,
  325.   double* ncrn, double* ncrd1, double* ncrd2, double* t1, double* t2,
  326.   double* tdef, double* logtem, long long* indixe, double* dom,
  327.   double* coolunit, double* tbase1, double* xbase1, double* dx_cgs,
  328.   double* c_ljeans, int* iradtrans, gr_float* kdissH2I_data_ptr,
  329.   gr_float* xH2shield_data_ptr, gr_mask_type* itmask,
  330.   gr_mask_type* itmask_metal, double* fh, gr_float* metal_data_ptr,
  331.   gr_float* DM_data_ptr, gr_float* HDII_data_ptr, gr_float* HeHII_data_ptr,
  332.   int* imetal, int* imchem, int* igrgr, gr_float* CI_data_ptr,
  333.   gr_float* CII_data_ptr, gr_float* CO_data_ptr, gr_float* CO2_data_ptr,
  334.   gr_float* OI_data_ptr, gr_float* OH_data_ptr, gr_float* H2O_data_ptr,
  335.   gr_float* O2_data_ptr, gr_float* SiI_data_ptr, gr_float* SiOI_data_ptr,
  336.   gr_float* SiO2I_data_ptr, gr_float* CH_data_ptr, gr_float* CH2_data_ptr,
  337.   gr_float* COII_data_ptr, gr_float* OII_data_ptr, gr_float* OHII_data_ptr,
  338.   gr_float* H2OII_data_ptr, gr_float* H3OII_data_ptr, gr_float* O2II_data_ptr,
  339.   gr_float* Mg_data_ptr, gr_float* Al_data_ptr, gr_float* S_data_ptr,
  340.   gr_float* Fe_data_ptr, gr_float* SiM_data_ptr, gr_float* FeM_data_ptr,
  341.   gr_float* Mg2SiO4_data_ptr, gr_float* MgSiO3_data_ptr,
  342.   gr_float* Fe3O4_data_ptr, gr_float* AC_data_ptr, gr_float* SiO2D_data_ptr,
  343.   gr_float* MgO_data_ptr, gr_float* FeS_data_ptr, gr_float* Al2O3_data_ptr,
  344.   gr_float* reforg_data_ptr, gr_float* volorg_data_ptr,
  345.   gr_float* H2Oice_data_ptr, double* k125a, double* k129a, double* k130a,
  346.   double* k131a, double* k132a, double* k133a, double* k134a, double* k135a,
  347.   double* k136a, double* k137a, double* k148a, double* k149a, double* k150a,
  348.   double* k151a, double* k152a, double* k153a, double* kz15a, double* kz16a,
  349.   double* kz17a, double* kz18a, double* kz19a, double* kz20a, double* kz21a,
  350.   double* kz22a, double* kz23a, double* kz24a, double* kz25a, double* kz26a,
  351.   double* kz27a, double* kz28a, double* kz29a, double* kz30a, double* kz31a,
  352.   double* kz32a, double* kz33a, double* kz34a, double* kz35a, double* kz36a,
  353.   double* kz37a, double* kz38a, double* kz39a, double* kz40a, double* kz41a,
  354.   double* kz42a, double* kz43a, double* kz44a, double* kz45a, double* kz46a,
  355.   double* kz47a, double* kz48a, double* kz49a, double* kz50a, double* kz51a,
  356.   double* kz52a, double* kz53a, double* kz54a, double* k125, double* k129,
  357.   double* k130, double* k131, double* k132, double* k133, double* k134,
  358.   double* k135, double* k136, double* k137, double* k148, double* k149,
  359.   double* k150, double* k151, double* k152, double* k153, double* kz15,
  360.   double* kz16, double* kz17, double* kz18, double* kz19, double* kz20,
  361.   double* kz21, double* kz22, double* kz23, double* kz24, double* kz25,
  362.   double* kz26, double* kz27, double* kz28, double* kz29, double* kz30,
  363.   double* kz31, double* kz32, double* kz33, double* kz34, double* kz35,
  364.   double* kz36, double* kz37, double* kz38, double* kz39, double* kz40,
  365.   double* kz41, double* kz42, double* kz43, double* kz44, double* kz45,
  366.   double* kz46, double* kz47, double* kz48, double* kz49, double* kz50,
  367.   double* kz51, double* kz52, double* kz53, double* kz54, int* immulti,
  368.   int* imabund, int* idspecies, int* itdmulti, int* idsub,
  369.   gr_float* metal_loc_data_ptr, gr_float* metal_C13_data_ptr,
  370.   gr_float* metal_C20_data_ptr, gr_float* metal_C25_data_ptr,
  371.   gr_float* metal_C30_data_ptr, gr_float* metal_F13_data_ptr,
  372.   gr_float* metal_F15_data_ptr, gr_float* metal_F50_data_ptr,
  373.   gr_float* metal_F80_data_ptr, gr_float* metal_P170_data_ptr,
  374.   gr_float* metal_P200_data_ptr, gr_float* metal_Y19_data_ptr, int* SN0_N,
  375.   double* SN0_fSiM, double* SN0_fFeM, double* SN0_fMg2SiO4, double* SN0_fMgSiO3,
  376.   double* SN0_fFe3O4, double* SN0_fAC, double* SN0_fSiO2D, double* SN0_fMgO,
  377.   double* SN0_fFeS, double* SN0_fAl2O3, double* SN0_freforg,
  378.   double* SN0_fvolorg, double* SN0_fH2Oice, double* SN0_r0SiM_data_ptr,
  379.   double* SN0_r0FeM_data_ptr, double* SN0_r0Mg2SiO4_data_ptr,
  380.   double* SN0_r0MgSiO3_data_ptr, double* SN0_r0Fe3O4_data_ptr,
  381.   double* SN0_r0AC_data_ptr, double* SN0_r0SiO2D_data_ptr,
  382.   double* SN0_r0MgO_data_ptr, double* SN0_r0FeS_data_ptr,
  383.   double* SN0_r0Al2O3_data_ptr, double* SN0_r0reforg_data_ptr,
  384.   double* SN0_r0volorg_data_ptr, double* SN0_r0H2Oice_data_ptr, int* gr_N,
  385.   int* gr_Size, double* gr_dT, double* gr_Td, double* SN0_kpSiM_data_ptr,
  386.   double* SN0_kpFeM_data_ptr, double* SN0_kpMg2SiO4_data_ptr,
  387.   double* SN0_kpMgSiO3_data_ptr, double* SN0_kpFe3O4_data_ptr,
  388.   double* SN0_kpAC_data_ptr, double* SN0_kpSiO2D_data_ptr,
  389.   double* SN0_kpMgO_data_ptr, double* SN0_kpFeS_data_ptr,
  390.   double* SN0_kpAl2O3_data_ptr, double* SN0_kpreforg_data_ptr,
  391.   double* SN0_kpvolorg_data_ptr, double* SN0_kpH2Oice_data_ptr,
  392.   double* h2dustSa, double* h2dustCa, gr_float* rhoH, double* grogra,
  393.   double* dt, double* kdSiM, double* kdFeM, double* kdMg2SiO4, double* kdMgSiO3,
  394.   double* kdFe3O4, double* kdAC, double* kdSiO2D, double* kdMgO, double* kdFeS,
  395.   double* kdAl2O3, double* kdreforg, double* kdvolorg, double* kdH2Oice,
  396.   double* tSiM, double* tFeM, double* tMg2SiO4, double* tMgSiO3, double* tFe3O4,
  397.   double* tAC, double* tSiO2D, double* tMgO, double* tFeS, double* tAl2O3,
  398.   double* treforg, double* tvolorg, double* tH2Oice, int* iuseH2shield
  399. );
  400.  
  401. void FORTRAN_NAME(rate_timestep_g)(
  402.   double* dedot, double* HIdot, int* ispecies, gr_mask_type* anydust,
  403.   gr_float* de_data_ptr, gr_float* HI_data_ptr, gr_float* HII_data_ptr,
  404.   gr_float* HeI_data_ptr, gr_float* HeII_data_ptr, gr_float* HeIII_data_ptr,
  405.   gr_float* d_data_ptr, gr_float* HM_data_ptr, gr_float* H2I_data_ptr,
  406.   gr_float* H2II_data_ptr, int* in, int* jn, int* kn, int* is, int* ie, int* j,
  407.   int* k, double* k1, double* k2, double* k3, double* k4, double* k5,
  408.   double* k6, double* k7, double* k8, double* k9, double* k10, double* k11,
  409.   double* k12, double* k13, double* k14, double* k15, double* k16, double* k17,
  410.   double* k18, double* k19, double* k22, double* k24, double* k25, double* k26,
  411.   double* k27, double* k28, double* k29, double* k30, double* k50, double* k51,
  412.   double* k52, double* k53, double* k54, double* k55, double* k56, double* k57,
  413.   double* k58, double* h2dust, double* ncrn, double* ncrd1, double* ncrd2,
  414.   double* rhoH, double* k24shield, double* k25shield, double* k26shield,
  415.   double* k28shield, double* k29shield, double* k30shield, double* k31shield,
  416.   int* iradtrans, int* irt_honly, gr_float* kphHI_data_ptr,
  417.   gr_float* kphHeI_data_ptr, gr_float* kphHeII_data_ptr, gr_mask_type* itmask,
  418.   double* edot, double* chunit, double* dom, gr_float* metal_data_ptr,
  419.   gr_float* HDI_data_ptr, int* imchem, gr_float* CI_data_ptr,
  420.   gr_float* OI_data_ptr, gr_float* OH_data_ptr, gr_float* CO_data_ptr,
  421.   gr_float* H2O_data_ptr, int* idissHDI, gr_float* kdissHDI_data_ptr,
  422.   int* iionZ, gr_float* kphCI_data_ptr, gr_float* kphOI_data_ptr, int* idissZ,
  423.   gr_float* kdissCO_data_ptr, gr_float* kdissOH_data_ptr,
  424.   gr_float* kdissH2O_data_ptr
  425. );
  426.  
  427. void FORTRAN_NAME(step_rate_g)(
  428.   gr_float* de_data_ptr, gr_float* HI_data_ptr, gr_float* HII_data_ptr,
  429.   gr_float* HeI_data_ptr, gr_float* HeII_data_ptr, gr_float* HeIII_data_ptr,
  430.   gr_float* d_data_ptr, gr_float* HM_data_ptr, gr_float* H2I_data_ptr,
  431.   gr_float* H2II_data_ptr, gr_float* DI_data_ptr, gr_float* DII_data_ptr,
  432.   gr_float* HDI_data_ptr, double* dtit, int* in, int* jn, int* kn, int* is,
  433.   int* ie, int* j, int* k, int* ispecies, gr_mask_type* anydust, double* k1,
  434.   double* k2, double* k3, double* k4, double* k5, double* k6, double* k7,
  435.   double* k8, double* k9, double* k10, double* k11, double* k12, double* k13,
  436.   double* k14, double* k15, double* k16, double* k17, double* k18, double* k19,
  437.   double* k22, double* k24, double* k25, double* k26, double* k27, double* k28,
  438.   double* k29, double* k30, double* k50, double* k51, double* k52, double* k53,
  439.   double* k54, double* k55, double* k56, double* k57, double* k58,
  440.   double* h2dust, double* rhoH, double* k24shield, double* k25shield,
  441.   double* k26shield, double* k28shield, double* k29shield, double* k30shield,
  442.   double* k31shield, double* HIp, double* HIIp, double* HeIp, double* HeIIp,
  443.   double* HeIIIp, double* dep, double* HMp, double* H2Ip, double* H2IIp,
  444.   double* DIp, double* DIIp, double* HDIp, double* dedot_prev,
  445.   double* HIdot_prev, int* iradtrans, int* irt_honly, gr_float* kphHI_data_ptr,
  446.   gr_float* kphHeI_data_ptr, gr_float* kphHeII_data_ptr, gr_mask_type* itmask,
  447.   gr_mask_type* itmask_metal, gr_float* DM_data_ptr, gr_float* HDII_data_ptr,
  448.   gr_float* HeHII_data_ptr, int* imetal, gr_float* metal_data_ptr, int* imchem,
  449.   int* idspecies, int* igrgr, int* idsub, gr_float* CI_data_ptr,
  450.   gr_float* CII_data_ptr, gr_float* CO_data_ptr, gr_float* CO2_data_ptr,
  451.   gr_float* OI_data_ptr, gr_float* OH_data_ptr, gr_float* H2O_data_ptr,
  452.   gr_float* O2_data_ptr, gr_float* SiI_data_ptr, gr_float* SiOI_data_ptr,
  453.   gr_float* SiO2I_data_ptr, gr_float* CH_data_ptr, gr_float* CH2_data_ptr,
  454.   gr_float* COII_data_ptr, gr_float* OII_data_ptr, gr_float* OHII_data_ptr,
  455.   gr_float* H2OII_data_ptr, gr_float* H3OII_data_ptr, gr_float* O2II_data_ptr,
  456.   gr_float* Mg_data_ptr, gr_float* Al_data_ptr, gr_float* S_data_ptr,
  457.   gr_float* Fe_data_ptr, gr_float* SiM_data_ptr, gr_float* FeM_data_ptr,
  458.   gr_float* Mg2SiO4_data_ptr, gr_float* MgSiO3_data_ptr,
  459.   gr_float* Fe3O4_data_ptr, gr_float* AC_data_ptr, gr_float* SiO2D_data_ptr,
  460.   gr_float* MgO_data_ptr, gr_float* FeS_data_ptr, gr_float* Al2O3_data_ptr,
  461.   gr_float* reforg_data_ptr, gr_float* volorg_data_ptr,
  462.   gr_float* H2Oice_data_ptr, double* k125, double* k129, double* k130,
  463.   double* k131, double* k132, double* k133, double* k134, double* k135,
  464.   double* k136, double* k137, double* k148, double* k149, double* k150,
  465.   double* k151, double* k152, double* k153, double* kz15, double* kz16,
  466.   double* kz17, double* kz18, double* kz19, double* kz20, double* kz21,
  467.   double* kz22, double* kz23, double* kz24, double* kz25, double* kz26,
  468.   double* kz27, double* kz28, double* kz29, double* kz30, double* kz31,
  469.   double* kz32, double* kz33, double* kz34, double* kz35, double* kz36,
  470.   double* kz37, double* kz38, double* kz39, double* kz40, double* kz41,
  471.   double* kz42, double* kz43, double* kz44, double* kz45, double* kz46,
  472.   double* kz47, double* kz48, double* kz49, double* kz50, double* kz51,
  473.   double* kz52, double* kz53, double* kz54, double* DMp, double* HDIIp,
  474.   double* HeHIIp, double* CIp, double* CIIp, double* COp, double* CO2p,
  475.   double* OIp, double* OHp, double* H2Op, double* O2p, double* SiIp,
  476.   double* SiOIp, double* SiO2Ip, double* CHp, double* CH2p, double* COIIp,
  477.   double* OIIp, double* OHIIp, double* H2OIIp, double* H3OIIp, double* O2IIp,
  478.   double* Mgp, double* Alp, double* Sp, double* Fep, gr_float* SiMp,
  479.   gr_float* FeMp, gr_float* Mg2SiO4p, gr_float* MgSiO3p, gr_float* Fe3O4p,
  480.   gr_float* ACp, gr_float* SiO2Dp, gr_float* MgOp, gr_float* FeSp,
  481.   gr_float* Al2O3p, gr_float* reforgp, gr_float* volorgp, gr_float* H2Oicep,
  482.   double* kdSiM, double* kdFeM, double* kdMg2SiO4, double* kdMgSiO3,
  483.   double* kdFe3O4, double* kdAC, double* kdSiO2D, double* kdMgO, double* kdFeS,
  484.   double* kdAl2O3, double* kdreforg, double* kdvolorg, double* kdH2Oice,
  485.   int* idissHDI, gr_float* kdissHDI_data_ptr, int* iionZ,
  486.   gr_float* kphCI_data_ptr, gr_float* kphOI_data_ptr, int* idissZ,
  487.   gr_float* kdissCO_data_ptr, gr_float* kdissOH_data_ptr,
  488.   gr_float* kdissH2O_data_ptr
  489. );
  490.  
  491. void FORTRAN_NAME(make_consistent_g)(
  492.   gr_float* de_data_ptr, gr_float* HI_data_ptr, gr_float* HII_data_ptr,
  493.   gr_float* HeI_data_ptr, gr_float* HeII_data_ptr, gr_float* HeIII_data_ptr,
  494.   gr_float* HM_data_ptr, gr_float* H2I_data_ptr, gr_float* H2II_data_ptr,
  495.   gr_float* DI_data_ptr, gr_float* DII_data_ptr, gr_float* HDI_data_ptr,
  496.   gr_float* metal_data_ptr, gr_float* dust_data_ptr, gr_float* d_data_ptr,
  497.   int* is, int* ie, int* js, int* je, int* ks, int* ke, int* in, int* jn,
  498.   int* kn, int* ispecies, int* imetal, double* fh, double* dtoh,
  499.   int* idustfield, int* imchem, int* igrgr, double* dom, gr_float* DM_data_ptr,
  500.   gr_float* HDII_data_ptr, gr_float* HeHII_data_ptr, gr_float* CI_data_ptr,
  501.   gr_float* CII_data_ptr, gr_float* CO_data_ptr, gr_float* CO2_data_ptr,
  502.   gr_float* OI_data_ptr, gr_float* OH_data_ptr, gr_float* H2O_data_ptr,
  503.   gr_float* O2_data_ptr, gr_float* SiI_data_ptr, gr_float* SiOI_data_ptr,
  504.   gr_float* SiO2I_data_ptr, gr_float* CH_data_ptr, gr_float* CH2_data_ptr,
  505.   gr_float* COII_data_ptr, gr_float* OII_data_ptr, gr_float* OHII_data_ptr,
  506.   gr_float* H2OII_data_ptr, gr_float* H3OII_data_ptr, gr_float* O2II_data_ptr,
  507.   gr_float* Mg_data_ptr, gr_float* Al_data_ptr, gr_float* S_data_ptr,
  508.   gr_float* Fe_data_ptr, gr_float* SiM_data_ptr, gr_float* FeM_data_ptr,
  509.   gr_float* Mg2SiO4_data_ptr, gr_float* MgSiO3_data_ptr,
  510.   gr_float* Fe3O4_data_ptr, gr_float* AC_data_ptr, gr_float* SiO2D_data_ptr,
  511.   gr_float* MgO_data_ptr, gr_float* FeS_data_ptr, gr_float* Al2O3_data_ptr,
  512.   gr_float* reforg_data_ptr, gr_float* volorg_data_ptr,
  513.   gr_float* H2Oice_data_ptr, int* immulti, int* imabund, int* idspecies,
  514.   int* itdmulti, int* idsub, gr_float* metal_loc_data_ptr,
  515.   gr_float* metal_C13_data_ptr, gr_float* metal_C20_data_ptr,
  516.   gr_float* metal_C25_data_ptr, gr_float* metal_C30_data_ptr,
  517.   gr_float* metal_F13_data_ptr, gr_float* metal_F15_data_ptr,
  518.   gr_float* metal_F50_data_ptr, gr_float* metal_F80_data_ptr,
  519.   gr_float* metal_P170_data_ptr, gr_float* metal_P200_data_ptr,
  520.   gr_float* metal_Y19_data_ptr, int* SN0_N, double* SN0_XC, double* SN0_XO,
  521.   double* SN0_XMg, double* SN0_XAl, double* SN0_XSi, double* SN0_XS,
  522.   double* SN0_XFe, double* SN0_fC, double* SN0_fO, double* SN0_fMg,
  523.   double* SN0_fAl, double* SN0_fSi, double* SN0_fS, double* SN0_fFe
  524. );
  525.  
  526. void FORTRAN_NAME(calc_temp_cloudy_g)(
  527.   gr_float* d_data_ptr, gr_float* e_data_ptr, gr_float* metal_data_ptr,
  528.   gr_float* temperature_data_ptr, int* in, int* jn, int* kn, int* iexpand,
  529.   int* imetal, int* is, int* js, int* ks, int* ie, int* je, int* ke,
  530.   double* aye, double* temstart, double* temend, double* utem, double* uxyz,
  531.   double* uaye, double* urho, double* utim, double* gamma, double* fh,
  532.   long long* priGridRank, long long* priGridDim, double* priPar1,
  533.   double* priPar2, double* priPar3, long long* priDataSize, double* priMMW
  534. );
  535.  
  536. void FORTRAN_NAME(scale_fields_table_g)(
  537.   gr_float* d_data_ptr, gr_float* metal_data_ptr, int* is, int* ie, int* js,
  538.   int* je, int* ks, int* ke, int* in, int* jn, int* kn, int* imetal,
  539.   double* factor
  540. );
  541.  
  542. void FORTRAN_NAME(cool1d_multi_g)(
  543.   gr_float* d_data_ptr, gr_float* e_data_ptr, gr_float* u_data_ptr,
  544.   gr_float* v_data_ptr, gr_float* w_data_ptr, gr_float* de_data_ptr,
  545.   gr_float* HI_data_ptr, gr_float* HII_data_ptr, gr_float* HeI_data_ptr,
  546.   gr_float* HeII_data_ptr, gr_float* HeIII_data_ptr, int* in, int* jn, int* kn,
  547.   int* nratec, int* iexpand, int* ispecies, int* imetal, int* imcool,
  548.   int* idust, int* idustall, int* idustfield, int* idustrec, int* idim, int* is,
  549.   int* ie, int* j, int* k, int* ih2co, int* ipiht, int* iter, int* igammah,
  550.   double* aye, double* temstart, double* temend, double* z_solar, double* fgr,
  551.   double* utem, double* uxyz, double* uaye, double* urho, double* utim,
  552.   double* gamma, double* fh, double* ceHIa, double* ceHeIa, double* ceHeIIa,
  553.   double* ciHIa, double* ciHeIa, double* ciHeISa, double* ciHeIIa,
  554.   double* reHIIa, double* reHeII1a, double* reHeII2a, double* reHeIIIa,
  555.   double* brema, double* compa, double* gammaha, double* isrf, double* regra,
  556.   double* gamma_isrfa, double* comp_xraya, double* comp_temp, double* piHI,
  557.   double* piHeI, double* piHeII, double* comp1, double* comp2,
  558.   gr_float* HM_data_ptr, gr_float* H2I_data_ptr, gr_float* H2II_data_ptr,
  559.   gr_float* DI_data_ptr, gr_float* DII_data_ptr, gr_float* HDI_data_ptr,
  560.   gr_float* metal_data_ptr, gr_float* dust_data_ptr, double* hyd01ka,
  561.   double* h2k01a, double* vibha, double* rotha, double* rotla, double* hyd01k,
  562.   double* h2k01, double* vibh, double* roth, double* rotl, double* gpldla,
  563.   double* gphdla, double* gpldl, double* gphdl, double* hdltea, double* hdlowa,
  564.   double* hdlte, double* hdlow, double* gaHIa, double* gaH2a, double* gaHea,
  565.   double* gaHpa, double* gaela, double* h2ltea, double* gasgra, double* ceHI,
  566.   double* ceHeI, double* ceHeII, double* ciHI, double* ciHeI, double* ciHeIS,
  567.   double* ciHeII, double* reHII, double* reHeII1, double* reHeII2,
  568.   double* reHeIII, double* brem, long long* indixe, double* t1, double* t2,
  569.   double* logtem, double* tdef, double* edot, double* tgas, double* tgasold,
  570.   double* mmw, double* p2d, double* tdust, double* metallicity,
  571.   double* dust2gas, double* rhoH, double* mynh, double* myde,
  572.   double* gammaha_eff, double* gasgr_tdust, double* regr, int* iradshield,
  573.   double* avgsighi, double* avgsighei, double* avgsigheii, double* k24,
  574.   double* k26, int* iradtrans, gr_float* photogamma_data_ptr, int* ih2optical,
  575.   int* iciecool, int* ih2cr, int* ihdcr, double* ciecoa, double* cieco,
  576.   int* icmbTfloor, int* iClHeat, double* clEleFra, long long* priGridRank,
  577.   long long* priGridDim, double* priPar1, double* priPar2, double* priPar3,
  578.   double* priPar4, double* priPar5, long long* priDataSize, double* priCooling,
  579.   double* priHeating, double* priMMW, long long* metGridRank,
  580.   long long* metGridDim, double* metPar1, double* metPar2, double* metPar3,
  581.   double* metPar4, double* metPar5, long long* metDataSize, double* metCooling,
  582.   double* metHeating, int* clnew, int* iVheat, int* iMheat,
  583.   gr_float* Vheat_data_ptr, gr_float* Mheat_data_ptr, int* iTfloor,
  584.   double* Tfloor_scalar, gr_float* Tfloor_data_ptr, int* iisrffield,
  585.   gr_float* isrf_habing_data_ptr, gr_mask_type* itmask,
  586.   gr_mask_type* itmask_metal, int* imchem, int* igrgr, int* ipcont,
  587.   double* tmcool, gr_float* DM_data_ptr, gr_float* HDII_data_ptr,
  588.   gr_float* HeHII_data_ptr, gr_float* CI_data_ptr, gr_float* CII_data_ptr,
  589.   gr_float* CO_data_ptr, gr_float* CO2_data_ptr, gr_float* OI_data_ptr,
  590.   gr_float* OH_data_ptr, gr_float* H2O_data_ptr, gr_float* O2_data_ptr,
  591.   gr_float* SiI_data_ptr, gr_float* SiOI_data_ptr, gr_float* SiO2I_data_ptr,
  592.   gr_float* CH_data_ptr, gr_float* CH2_data_ptr, gr_float* COII_data_ptr,
  593.   gr_float* OII_data_ptr, gr_float* OHII_data_ptr, gr_float* H2OII_data_ptr,
  594.   gr_float* H3OII_data_ptr, gr_float* O2II_data_ptr, gr_float* Mg_data_ptr,
  595.   gr_float* Al_data_ptr, gr_float* S_data_ptr, gr_float* Fe_data_ptr,
  596.   gr_float* SiM_data_ptr, gr_float* FeM_data_ptr, gr_float* Mg2SiO4_data_ptr,
  597.   gr_float* MgSiO3_data_ptr, gr_float* Fe3O4_data_ptr, gr_float* AC_data_ptr,
  598.   gr_float* SiO2D_data_ptr, gr_float* MgO_data_ptr, gr_float* FeS_data_ptr,
  599.   gr_float* Al2O3_data_ptr, gr_float* reforg_data_ptr,
  600.   gr_float* volorg_data_ptr, gr_float* H2Oice_data_ptr, double* cieY06a,
  601.   int* LH2_N, int* LH2_Size, double* LH2_D, double* LH2_T, double* LH2_H,
  602.   double* LH2_dD, double* LH2_dT, double* LH2_dH, double* LH2_L, int* LHD_N,
  603.   int* LHD_Size, double* LHD_D, double* LHD_T, double* LHD_H, double* LHD_dD,
  604.   double* LHD_dT, double* LHD_dH, double* LHD_L, int* LCI_N, int* LCI_Size,
  605.   double* LCI_D, double* LCI_T, double* LCI_H, double* LCI_dD, double* LCI_dT,
  606.   double* LCI_dH, double* LCI_L, int* LCII_N, int* LCII_Size, double* LCII_D,
  607.   double* LCII_T, double* LCII_H, double* LCII_dD, double* LCII_dT,
  608.   double* LCII_dH, double* LCII_L, int* LOI_N, int* LOI_Size, double* LOI_D,
  609.   double* LOI_T, double* LOI_H, double* LOI_dD, double* LOI_dT, double* LOI_dH,
  610.   double* LOI_L, int* LCO_N, int* LCO_Size, double* LCO_D, double* LCO_T,
  611.   double* LCO_H, double* LCO_dD, double* LCO_dT, double* LCO_dH, double* LCO_L,
  612.   int* LOH_N, int* LOH_Size, double* LOH_D, double* LOH_T, double* LOH_H,
  613.   double* LOH_dD, double* LOH_dT, double* LOH_dH, double* LOH_L, int* LH2O_N,
  614.   int* LH2O_Size, double* LH2O_D, double* LH2O_T, double* LH2O_H,
  615.   double* LH2O_dD, double* LH2O_dT, double* LH2O_dH, double* LH2O_L,
  616.   int* alphap_N, int* alphap_Size, double* alphap_D, double* alphap_T,
  617.   double* alphap_dD, double* alphap_dT, double* alphap_Data, int* immulti,
  618.   int* imabund, int* idspecies, int* itdmulti, int* idsub,
  619.   gr_float* metal_loc_data_ptr, gr_float* metal_C13_data_ptr,
  620.   gr_float* metal_C20_data_ptr, gr_float* metal_C25_data_ptr,
  621.   gr_float* metal_C30_data_ptr, gr_float* metal_F13_data_ptr,
  622.   gr_float* metal_F15_data_ptr, gr_float* metal_F50_data_ptr,
  623.   gr_float* metal_F80_data_ptr, gr_float* metal_P170_data_ptr,
  624.   gr_float* metal_P200_data_ptr, gr_float* metal_Y19_data_ptr, int* SN0_N,
  625.   double* SN0_fSiM, double* SN0_fFeM, double* SN0_fMg2SiO4, double* SN0_fMgSiO3,
  626.   double* SN0_fFe3O4, double* SN0_fAC, double* SN0_fSiO2D, double* SN0_fMgO,
  627.   double* SN0_fFeS, double* SN0_fAl2O3, double* SN0_freforg,
  628.   double* SN0_fvolorg, double* SN0_fH2Oice, double* SN0_r0SiM_data_ptr,
  629.   double* SN0_r0FeM_data_ptr, double* SN0_r0Mg2SiO4_data_ptr,
  630.   double* SN0_r0MgSiO3_data_ptr, double* SN0_r0Fe3O4_data_ptr,
  631.   double* SN0_r0AC_data_ptr, double* SN0_r0SiO2D_data_ptr,
  632.   double* SN0_r0MgO_data_ptr, double* SN0_r0FeS_data_ptr,
  633.   double* SN0_r0Al2O3_data_ptr, double* SN0_r0reforg_data_ptr,
  634.   double* SN0_r0volorg_data_ptr, double* SN0_r0H2Oice_data_ptr, int* gr_N,
  635.   int* gr_Size, double* gr_dT, double* gr_Td, double* SN0_kpSiM_data_ptr,
  636.   double* SN0_kpFeM_data_ptr, double* SN0_kpMg2SiO4_data_ptr,
  637.   double* SN0_kpMgSiO3_data_ptr, double* SN0_kpFe3O4_data_ptr,
  638.   double* SN0_kpAC_data_ptr, double* SN0_kpSiO2D_data_ptr,
  639.   double* SN0_kpMgO_data_ptr, double* SN0_kpFeS_data_ptr,
  640.   double* SN0_kpAl2O3_data_ptr, double* SN0_kpreforg_data_ptr,
  641.   double* SN0_kpvolorg_data_ptr, double* SN0_kpH2Oice_data_ptr, double* tSiM,
  642.   double* tFeM, double* tMg2SiO4, double* tMgSiO3, double* tFe3O4, double* tAC,
  643.   double* tSiO2D, double* tMgO, double* tFeS, double* tAl2O3, double* treforg,
  644.   double* tvolorg, double* tH2Oice, double* gasgr2a, double* gamma_isrf2a
  645. );
  646.  
  647. void FORTRAN_NAME(cool_multi_time_g)(
  648.   gr_float* d_data_ptr, gr_float* e_data_ptr, gr_float* u_data_ptr,
  649.   gr_float* v_data_ptr, gr_float* w_data_ptr, gr_float* de_data_ptr,
  650.   gr_float* HI_data_ptr, gr_float* HII_data_ptr, gr_float* HeI_data_ptr,
  651.   gr_float* HeII_data_ptr, gr_float* HeIII_data_ptr,
  652.   gr_float* cooltime_data_ptr, int* in, int* jn, int* kn, int* nratec,
  653.   int* iexpand, int* ispecies, int* imetal, int* imcool, int* idust,
  654.   int* idustall, int* idustfield, int* idustrec, int* idim, int* is, int* js,
  655.   int* ks, int* ie, int* je, int* ke, int* ih2co, int* ipiht, int* igammah,
  656.   double* aye, double* temstart, double* temend, double* utem, double* uxyz,
  657.   double* uaye, double* urho, double* utim, double* gamma, double* fh,
  658.   double* z_solar, double* fgr, double* ceHIa, double* ceHeIa, double* ceHeIIa,
  659.   double* ciHIa, double* ciHeIa, double* ciHeISa, double* ciHeIIa,
  660.   double* reHIIa, double* reHeII1a, double* reHeII2a, double* reHeIIIa,
  661.   double* brema, double* compa, double* gammaha, double* isrf, double* regra,
  662.   double* gamma_isrfa, double* comp_xraya, double* comp_temp, double* piHI,
  663.   double* piHeI, double* piHeII, gr_float* HM_data_ptr, gr_float* H2I_data_ptr,
  664.   gr_float* H2II_data_ptr, gr_float* DI_data_ptr, gr_float* DII_data_ptr,
  665.   gr_float* HDI_data_ptr, gr_float* metal_data_ptr, gr_float* dust_data_ptr,
  666.   double* hyd01ka, double* h2k01a, double* vibha, double* rotha, double* rotla,
  667.   double* gpldla, double* gphdla, double* hdltea, double* hdlowa, double* gaHIa,
  668.   double* gaH2a, double* gaHea, double* gaHpa, double* gaela, double* h2ltea,
  669.   double* gasgra, int* iradshield, double* avgsighi, double* avgsighei,
  670.   double* avgsigheii, double* k24, double* k26, int* iradtrans,
  671.   double* photogamma_data_ptr, int* ih2optical, int* iciecool, int* ih2cr,
  672.   int* ihdcr, double* ciecoa, int* icmbTfloor, int* iClHeat, double* clEleFra,
  673.   long long* priGridRank, long long* priGridDim, double* priPar1,
  674.   double* priPar2, double* priPar3, double* priPar4, double* priPar5,
  675.   long long* priDataSize, double* priCooling, double* priHeating,
  676.   double* priMMW, long long* metGridRank, long long* metGridDim,
  677.   double* metPar1, double* metPar2, double* metPar3, double* metPar4,
  678.   double* metPar5, long long* metDataSize, double* metCooling,
  679.   double* metHeating, int* clnew, int* iVheat, int* iMheat,
  680.   gr_float* Vheat_data_ptr, gr_float* Mheat_data_ptr, int* iTfloor,
  681.   double* Tfloor_scalar, gr_float* Tfloor_data_ptr, int* imchem, int* igrgr,
  682.   int* ipcont, double* tmcool, gr_float* DM_data_ptr, gr_float* HDII_data_ptr,
  683.   gr_float* HeHII_data_ptr, gr_float* CI_data_ptr, gr_float* CII_data_ptr,
  684.   gr_float* CO_data_ptr, gr_float* CO2_data_ptr, gr_float* OI_data_ptr,
  685.   gr_float* OH_data_ptr, gr_float* H2O_data_ptr, gr_float* O2_data_ptr,
  686.   gr_float* SiI_data_ptr, gr_float* SiOI_data_ptr, gr_float* SiO2I_data_ptr,
  687.   gr_float* CH_data_ptr, gr_float* CH2_data_ptr, gr_float* COII_data_ptr,
  688.   gr_float* OII_data_ptr, gr_float* OHII_data_ptr, gr_float* H2OII_data_ptr,
  689.   gr_float* H3OII_data_ptr, gr_float* O2II_data_ptr, gr_float* Mg_data_ptr,
  690.   gr_float* Al_data_ptr, gr_float* S_data_ptr, gr_float* Fe_data_ptr,
  691.   gr_float* SiM_data_ptr, gr_float* FeM_data_ptr, gr_float* Mg2SiO4_data_ptr,
  692.   gr_float* MgSiO3_data_ptr, gr_float* Fe3O4_data_ptr, gr_float* AC_data_ptr,
  693.   gr_float* SiO2D_data_ptr, gr_float* MgO_data_ptr, gr_float* FeS_data_ptr,
  694.   gr_float* Al2O3_data_ptr, gr_float* reforg_data_ptr,
  695.   gr_float* volorg_data_ptr, gr_float* H2Oice_data_ptr, double* cieY06a,
  696.   int* LH2_N, int* LH2_Size, double* LH2_D, double* LH2_T, double* LH2_H,
  697.   double* LH2_dD, double* LH2_dT, double* LH2_dH, double* LH2_L, int* LHD_N,
  698.   int* LHD_Size, double* LHD_D, double* LHD_T, double* LHD_H, double* LHD_dD,
  699.   double* LHD_dT, double* LHD_dH, double* LHD_L, int* LCI_N, int* LCI_Size,
  700.   double* LCI_D, double* LCI_T, double* LCI_H, double* LCI_dD, double* LCI_dT,
  701.   double* LCI_dH, double* LCI_L, int* LCII_N, int* LCII_Size, double* LCII_D,
  702.   double* LCII_T, double* LCII_H, double* LCII_dD, double* LCII_dT,
  703.   double* LCII_dH, double* LCII_L, int* LOI_N, int* LOI_Size, double* LOI_D,
  704.   double* LOI_T, double* LOI_H, double* LOI_dD, double* LOI_dT, double* LOI_dH,
  705.   double* LOI_L, int* LCO_N, int* LCO_Size, double* LCO_D, double* LCO_T,
  706.   double* LCO_H, double* LCO_dD, double* LCO_dT, double* LCO_dH, double* LCO_L,
  707.   int* LOH_N, int* LOH_Size, double* LOH_D, double* LOH_T, double* LOH_H,
  708.   double* LOH_dD, double* LOH_dT, double* LOH_dH, double* LOH_L, int* LH2O_N,
  709.   int* LH2O_Size, double* LH2O_D, double* LH2O_T, double* LH2O_H,
  710.   double* LH2O_dD, double* LH2O_dT, double* LH2O_dH, double* LH2O_L,
  711.   int* alphap_N, int* alphap_Size, double* alphap_D, double* alphap_T,
  712.   double* alphap_dD, double* alphap_dT, double* alphap_Data, int* immulti,
  713.   int* imabund, int* idspecies, int* itdmulti, int* idsub,
  714.   gr_float* metal_loc_data_ptr, gr_float* metal_C13_data_ptr,
  715.   gr_float* metal_C20_data_ptr, gr_float* metal_C25_data_ptr,
  716.   gr_float* metal_C30_data_ptr, gr_float* metal_F13_data_ptr,
  717.   gr_float* metal_F15_data_ptr, gr_float* metal_F50_data_ptr,
  718.   gr_float* metal_F80_data_ptr, gr_float* metal_P170_data_ptr,
  719.   gr_float* metal_P200_data_ptr, gr_float* metal_Y19_data_ptr, int* SN0_N,
  720.   double* SN0_fSiM, double* SN0_fFeM, double* SN0_fMg2SiO4, double* SN0_fMgSiO3,
  721.   double* SN0_fFe3O4, double* SN0_fAC, double* SN0_fSiO2D, double* SN0_fMgO,
  722.   double* SN0_fFeS, double* SN0_fAl2O3, double* SN0_freforg,
  723.   double* SN0_fvolorg, double* SN0_fH2Oice, double* SN0_r0SiM_data_ptr,
  724.   double* SN0_r0FeM_data_ptr, double* SN0_r0Mg2SiO4_data_ptr,
  725.   double* SN0_r0MgSiO3_data_ptr, double* SN0_r0Fe3O4_data_ptr,
  726.   double* SN0_r0AC_data_ptr, double* SN0_r0SiO2D_data_ptr,
  727.   double* SN0_r0MgO_data_ptr, double* SN0_r0FeS_data_ptr,
  728.   double* SN0_r0Al2O3_data_ptr, double* SN0_r0reforg_data_ptr,
  729.   double* SN0_r0volorg_data_ptr, double* SN0_r0H2Oice_data_ptr, int* gr_N,
  730.   int* gr_Size, double* gr_dT, double* gr_Td, double* SN0_kpSiM_data_ptr,
  731.   double* SN0_kpFeM_data_ptr, double* SN0_kpMg2SiO4_data_ptr,
  732.   double* SN0_kpMgSiO3_data_ptr, double* SN0_kpFe3O4_data_ptr,
  733.   double* SN0_kpAC_data_ptr, double* SN0_kpSiO2D_data_ptr,
  734.   double* SN0_kpMgO_data_ptr, double* SN0_kpFeS_data_ptr,
  735.   double* SN0_kpAl2O3_data_ptr, double* SN0_kpreforg_data_ptr,
  736.   double* SN0_kpvolorg_data_ptr, double* SN0_kpH2Oice_data_ptr, double* gasgr2a,
  737.   double* gamma_isrf2a, int* iisrffield, gr_float* isrf_habing_data_ptr
  738. );
  739.  
  740. void FORTRAN_NAME(lookup_cool_rates0d)(
  741.   int* output, double* dtit, gr_float* d, gr_float* u, gr_float* v, gr_float* w,
  742.   int* nsp, double* dsp, double* dspdot, int* nratec, int* iexpand,
  743.   int* ispecies, int* imetal, int* imcool, int* idust, int* idustall,
  744.   int* idustfield, int* idustrec, int* ih2co, int* ipiht, int* iter,
  745.   int* igammah, double* aye, double* temstart, double* temend, double* z_solar,
  746.   double* fgr, double* utem, double* uxyz, double* uaye, double* urho,
  747.   double* utim, double* gamma, double* fh, double* ceHIa, double* ceHeIa,
  748.   double* ceHeIIa, double* ciHIa, double* ciHeIa, double* ciHeISa,
  749.   double* ciHeIIa, double* reHIIa, double* reHeII1a, double* reHeII2a,
  750.   double* reHeIIIa, double* brema, double* compa, double* gammaha, double* isrf,
  751.   double* regra, double* gamma_isrfa, double* comp_xraya, double* comp_temp,
  752.   double* piHI, double* piHeI, double* piHeII, double* comp1, double* comp2,
  753.   gr_float* metal, gr_float* dust, double* hyd01ka, double* h2k01a,
  754.   double* vibha, double* rotha, double* rotla, double* hyd01k, double* h2k01,
  755.   double* vibh, double* roth, double* rotl, double* gpldla, double* gphdla,
  756.   double* gpldl, double* gphdl, double* hdltea, double* hdlowa, double* hdlte,
  757.   double* hdlow, double* gaHIa, double* gaH2a, double* gaHea, double* gaHpa,
  758.   double* gaela, double* h2ltea, double* gasgra, double* ceHI, double* ceHeI,
  759.   double* ceHeII, double* ciHI, double* ciHeI, double* ciHeIS, double* ciHeII,
  760.   double* reHII, double* reHeII1, double* reHeII2, double* reHeIII,
  761.   double* brem, long long* indixe, double* t1, double* t2, double* logtem,
  762.   double* tdef, double* edot, double* tgas, double* tgasold, double* mmw,
  763.   double* p2d, double* tdust, double* metallicity, double* dust2gas,
  764.   double* rhoH, double* mynh, double* myde, double* gammaha_eff,
  765.   double* gasgr_tdust, double* regr, int* iradshield, double* avgsighi,
  766.   double* avgsighei, double* avgsigheii, int* iradtrans, int* irt_honly,
  767.   int* ih2optical, int* iciecool, int* ih2cr, int* ihdcr, double* ciecoa,
  768.   double* cieco, int* icmbTfloor, int* iClHeat, double* clEleFra,
  769.   long long* priGridRank, long long* priGridDim, double* priPar1,
  770.   double* priPar2, double* priPar3, double* priPar4, double* priPar5,
  771.   long long* priDataSize, double* priCooling, double* priHeating,
  772.   double* priMMW, long long* metGridRank, long long* metGridDim,
  773.   double* metPar1, double* metPar2, double* metPar3, double* metPar4,
  774.   double* metPar5, long long* metDataSize, double* metCooling,
  775.   double* metHeating, int* clnew, int* iVheat, int* iMheat, gr_float* Vheat,
  776.   gr_float* Mheat, int* iTfloor, double* Tfloor_scalar, gr_float* Tfloor,
  777.   int* iisrffield, gr_float* isrf_habing, int* ithreebody,
  778.   gr_mask_type* anydust, int* iH2shield, double* k1a, double* k2a, double* k3a,
  779.   double* k4a, double* k5a, double* k6a, double* k7a, double* k8a, double* k9a,
  780.   double* k10a, double* k11a, double* k12a, double* k13a,
  781.   double* k13dda_data_ptr, double* k14a, double* k15a, double* k16a,
  782.   double* k17a, double* k18a, double* k19a, double* k22a, double* k24,
  783.   double* k25, double* k26, double* k27, double* k28, double* k29, double* k30,
  784.   double* k31, double* k50a, double* k51a, double* k52a, double* k53a,
  785.   double* k54a, double* k55a, double* k56a, double* k57a, double* k58a,
  786.   int* ndratec, double* dtemstart, double* dtemend, double* h2dusta_data_ptr,
  787.   double* ncrna, double* ncrd1a, double* ncrd2a, double* h2dust, double* ncrn,
  788.   double* ncrd1, double* ncrd2, double* dom, double* coolunit, double* tbase1,
  789.   double* xbase1, double* dx_cgs, double* c_ljeans, gr_float* kphHI,
  790.   gr_float* kphHeI, gr_float* kphHeII, gr_float* kdissH2I, gr_float* photogamma,
  791.   gr_float* xH2shield, double* chunit, gr_mask_type* itmask,
  792.   gr_mask_type* itmask_metal, int* imchem, int* igrgr, int* ipcont,
  793.   double* tmcool, double* k125a, double* k129a, double* k130a, double* k131a,
  794.   double* k132a, double* k133a, double* k134a, double* k135a, double* k136a,
  795.   double* k137a, double* k148a, double* k149a, double* k150a, double* k151a,
  796.   double* k152a, double* k153a, double* kz15a, double* kz16a, double* kz17a,
  797.   double* kz18a, double* kz19a, double* kz20a, double* kz21a, double* kz22a,
  798.   double* kz23a, double* kz24a, double* kz25a, double* kz26a, double* kz27a,
  799.   double* kz28a, double* kz29a, double* kz30a, double* kz31a, double* kz32a,
  800.   double* kz33a, double* kz34a, double* kz35a, double* kz36a, double* kz37a,
  801.   double* kz38a, double* kz39a, double* kz40a, double* kz41a, double* kz42a,
  802.   double* kz43a, double* kz44a, double* kz45a, double* kz46a, double* kz47a,
  803.   double* kz48a, double* kz49a, double* kz50a, double* kz51a, double* kz52a,
  804.   double* kz53a, double* kz54a, double* cieY06a, int* LH2_N, int* LH2_Size,
  805.   double* LH2_D, double* LH2_T, double* LH2_H, double* LH2_dD, double* LH2_dT,
  806.   double* LH2_dH, double* LH2_L, int* LHD_N, int* LHD_Size, double* LHD_D,
  807.   double* LHD_T, double* LHD_H, double* LHD_dD, double* LHD_dT, double* LHD_dH,
  808.   double* LHD_L, int* LCI_N, int* LCI_Size, double* LCI_D, double* LCI_T,
  809.   double* LCI_H, double* LCI_dD, double* LCI_dT, double* LCI_dH, double* LCI_L,
  810.   int* LCII_N, int* LCII_Size, double* LCII_D, double* LCII_T, double* LCII_H,
  811.   double* LCII_dD, double* LCII_dT, double* LCII_dH, double* LCII_L, int* LOI_N,
  812.   int* LOI_Size, double* LOI_D, double* LOI_T, double* LOI_H, double* LOI_dD,
  813.   double* LOI_dT, double* LOI_dH, double* LOI_L, int* LCO_N, int* LCO_Size,
  814.   double* LCO_D, double* LCO_T, double* LCO_H, double* LCO_dD, double* LCO_dT,
  815.   double* LCO_dH, double* LCO_L, int* LOH_N, int* LOH_Size, double* LOH_D,
  816.   double* LOH_T, double* LOH_H, double* LOH_dD, double* LOH_dT, double* LOH_dH,
  817.   double* LOH_L, int* LH2O_N, int* LH2O_Size, double* LH2O_D, double* LH2O_T,
  818.   double* LH2O_H, double* LH2O_dD, double* LH2O_dT, double* LH2O_dH,
  819.   double* LH2O_L, int* alphap_N, int* alphap_Size, double* alphap_D,
  820.   double* alphap_T, double* alphap_dD, double* alphap_dT, double* alphap_Data,
  821.   int* immulti, int* imabund, int* idspecies, int* itdmulti, int* idsub,
  822.   gr_float* metal_loc, gr_float* metal_C13, gr_float* metal_C20,
  823.   gr_float* metal_C25, gr_float* metal_C30, gr_float* metal_F13,
  824.   gr_float* metal_F15, gr_float* metal_F50, gr_float* metal_F80,
  825.   gr_float* metal_P170, gr_float* metal_P200, gr_float* metal_Y19, int* SN0_N,
  826.   double* SN0_fSiM, double* SN0_fFeM, double* SN0_fMg2SiO4, double* SN0_fMgSiO3,
  827.   double* SN0_fFe3O4, double* SN0_fAC, double* SN0_fSiO2D, double* SN0_fMgO,
  828.   double* SN0_fFeS, double* SN0_fAl2O3, double* SN0_freforg,
  829.   double* SN0_fvolorg, double* SN0_fH2Oice, double* SN0_r0SiM_data_ptr,
  830.   double* SN0_r0FeM_data_ptr, double* SN0_r0Mg2SiO4_data_ptr,
  831.   double* SN0_r0MgSiO3_data_ptr, double* SN0_r0Fe3O4_data_ptr,
  832.   double* SN0_r0AC_data_ptr, double* SN0_r0SiO2D_data_ptr,
  833.   double* SN0_r0MgO_data_ptr, double* SN0_r0FeS_data_ptr,
  834.   double* SN0_r0Al2O3_data_ptr, double* SN0_r0reforg_data_ptr,
  835.   double* SN0_r0volorg_data_ptr, double* SN0_r0H2Oice_data_ptr, int* gr_N,
  836.   int* gr_Size, double* gr_dT, double* gr_Td, double* SN0_kpSiM_data_ptr,
  837.   double* SN0_kpFeM_data_ptr, double* SN0_kpMg2SiO4_data_ptr,
  838.   double* SN0_kpMgSiO3_data_ptr, double* SN0_kpFe3O4_data_ptr,
  839.   double* SN0_kpAC_data_ptr, double* SN0_kpSiO2D_data_ptr,
  840.   double* SN0_kpMgO_data_ptr, double* SN0_kpFeS_data_ptr,
  841.   double* SN0_kpAl2O3_data_ptr, double* SN0_kpreforg_data_ptr,
  842.   double* SN0_kpvolorg_data_ptr, double* SN0_kpH2Oice_data_ptr,
  843.   double* h2dustSa_data_ptr, double* h2dustCa_data_ptr, double* grogra,
  844.   double* tSiM, double* tFeM, double* tMg2SiO4, double* tMgSiO3, double* tFe3O4,
  845.   double* tAC, double* tSiO2D, double* tMgO, double* tFeS, double* tAl2O3,
  846.   double* treforg, double* tvolorg, double* tH2Oice, double* gasgr2a,
  847.   double* gamma_isrf2a, int* imp_eng, int* idissHDI, gr_float* kdissHDI,
  848.   int* iionZ, gr_float* kphCI, gr_float* kphOI, int* idissZ, gr_float* kdissCO,
  849.   gr_float* kdissOH, gr_float* kdissH2O, int* iuseH2shield
  850. );
  851.  
  852. void FORTRAN_NAME(scale_fields_g)(
  853.   int* ispecies, int* imetal, int* idustfield, int* imchem, int* imabund,
  854.   int* idspecies, int* immulti, int* igrgr, int* idsub, gr_float* factor,
  855.   int* is, int* ie, int* js, int* je, int* ks, int* ke, int* in, int* jn,
  856.   int* kn, gr_float* d_data_ptr, gr_float* de_data_ptr, gr_float* HI_data_ptr,
  857.   gr_float* HII_data_ptr, gr_float* HeI_data_ptr, gr_float* HeII_data_ptr,
  858.   gr_float* HeIII_data_ptr, gr_float* HM_data_ptr, gr_float* H2I_data_ptr,
  859.   gr_float* H2II_data_ptr, gr_float* DI_data_ptr, gr_float* DII_data_ptr,
  860.   gr_float* HDI_data_ptr, gr_float* DM_data_ptr, gr_float* HDII_data_ptr,
  861.   gr_float* HeHII_data_ptr, gr_float* metal_data_ptr, gr_float* dust_data_ptr,
  862.   gr_float* CI_data_ptr, gr_float* CII_data_ptr, gr_float* CO_data_ptr,
  863.   gr_float* CO2_data_ptr, gr_float* OI_data_ptr, gr_float* OH_data_ptr,
  864.   gr_float* H2O_data_ptr, gr_float* O2_data_ptr, gr_float* SiI_data_ptr,
  865.   gr_float* SiOI_data_ptr, gr_float* SiO2I_data_ptr, gr_float* CH_data_ptr,
  866.   gr_float* CH2_data_ptr, gr_float* COII_data_ptr, gr_float* OII_data_ptr,
  867.   gr_float* OHII_data_ptr, gr_float* H2OII_data_ptr, gr_float* H3OII_data_ptr,
  868.   gr_float* O2II_data_ptr, gr_float* Mg_data_ptr, gr_float* Al_data_ptr,
  869.   gr_float* S_data_ptr, gr_float* Fe_data_ptr, gr_float* SiM_data_ptr,
  870.   gr_float* FeM_data_ptr, gr_float* Mg2SiO4_data_ptr, gr_float* MgSiO3_data_ptr,
  871.   gr_float* Fe3O4_data_ptr, gr_float* AC_data_ptr, gr_float* SiO2D_data_ptr,
  872.   gr_float* MgO_data_ptr, gr_float* FeS_data_ptr, gr_float* Al2O3_data_ptr,
  873.   gr_float* reforg_data_ptr, gr_float* volorg_data_ptr,
  874.   gr_float* H2Oice_data_ptr, gr_float* metal_loc_data_ptr,
  875.   gr_float* metal_C13_data_ptr, gr_float* metal_C20_data_ptr,
  876.   gr_float* metal_C25_data_ptr, gr_float* metal_C30_data_ptr,
  877.   gr_float* metal_F13_data_ptr, gr_float* metal_F15_data_ptr,
  878.   gr_float* metal_F50_data_ptr, gr_float* metal_F80_data_ptr,
  879.   gr_float* metal_P170_data_ptr, gr_float* metal_P200_data_ptr,
  880.   gr_float* metal_Y19_data_ptr
  881. );
  882.  
  883. void FORTRAN_NAME(interpolate_1d_g)(
  884.   double *input1, long long *gridDim, double *gridPar1, double *dgridPar1,
  885.   long long *dataSize, double *dataField, double *value
  886. );
  887.  
  888. void FORTRAN_NAME(interpolate_2d_g)(
  889.   double *input1, double *input2, long long *gridDim, double *gridPar1,
  890.   double *dgridPar1, double *gridPar2, double *dgridPar2, long long *dataSize,
  891.   double *dataField, double *value
  892. );
  893.  
  894. void FORTRAN_NAME(interpolate_3d_g)(
  895.   double *input1, double *input2, double *input3, long long *gridDim,
  896.   double *gridPar1, double *dgridPar1, double *gridPar2, double *dgridPar2,
  897.   double *gridPar3, double *dgridPar3, long long *dataSize, double *dataField,
  898.   double *value
  899. );
  900.  
  901. void FORTRAN_NAME(interpolate_4d_g)(
  902.   double *input1, double *input2, double *input3, double *input4,
  903.   long long *gridDim, double *gridPar1, double *dgridPar1, double *gridPar2,
  904.   double *dgridPar2, double *gridPar3, double *dgridPar3, double *gridPar4,
  905.   double *dgridPar4, long long *dataSize, double *dataField, double *value
  906. );
  907.  
  908. void FORTRAN_NAME(interpolate_5d_g)(
  909.   double *input1, double *input2, double *input3, double *input4,
  910.   double *input5, long long *gridDim, double *gridPar1, double *dgridPar1,
  911.   double *gridPar2, double *dgridPar2, double *gridPar3, double *dgridPar3,
  912.   double *gridPar4, double *dgridPar4, double *gridPar5, double *dgridPar5,
  913.   long long *dataSize, double *dataField, double *value
  914. );
  915.  
  916. // it is plausible that I messed up manual transcription of the following
  917. void FORTRAN_NAME(gaussj_g)(
  918.     int* n, double* a, double* b, int* ierr
  919. );
  920.  
  921.  
  922. #ifdef __cplusplus
  923. }  // extern "C"
  924. #endif /* __cplusplus */
  925.  
  926. #endif /* FORTRAN_FN_DECLARATIONS_HPP */
  927.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement