IAP GITLAB

Skip to content
Snippets Groups Projects
nuclib.h 1.2 KiB
Newer Older

/**
 * (c) Copyright 2018 CORSIKA Project, corsika-project@lists.kit.edu
 *
 * See file AUTHORS for a list of contributors.
 *
 * This software is distributed under the terms of the GNU General Public
 * Licence version 3 (GPL Version 3). See file LICENSE for a full version of
 * the license.
 */

#ifndef _include_nuclib_interface_h_
#define _include_nuclib_interface_h_

extern "C" {

Felix Riehn's avatar
Felix Riehn committed
// nuclib common, NUClear Multiple Scattering
/*
    COMMON /CNUCMS/ B, BMAX, NTRY, NA, NB, NI, NAEL, NBEL
   +         ,JJA(IAMAX), JJB(IAMAX), JJINT(IAMAX,IAMAX)
   +         ,JJAEL(IAMAX), JJBEL(IAMAX)
 */

extern struct {
  double b, bmax;
  int ntry, na, nb, ni, nael, nbel;
  int jja[56], jjb[56], jjint[56][56], jjael[56], jjbel[56];
} cnucms_;

/*
  nuclib common, nuclear FRAGMENTS

  COMMON /FRAGMENTS/ PPP(3,60)
*/
extern struct { double ppp[60][3]; } fragments_;

// NUCLIB

// subroutine to initiate nuclib
void nuc_nuc_ini_();

// subroutine to sample nuclear interaction structure
void int_nuc_(const int&, const int&, const double&, const double&);

// subroutine to sample nuclear fragments
void fragm_(const int&, const int&, const int&, const double&, int&, int*);

void signuc_(const int&, const double&, double&);