Learning 4 Programming languages at the same time: C++ ,C , Python and Javascript¶

try commands from https://root.cern.ch/notebooks/HowTos/HowTo_ROOT-Notebooks.html but I set default to c++, so you need to use %%python when you do python code.

in order to execute code press shift+enter

Now with the new ROOT Python kernel you should first do

import ROOT

Then you can get cpp interpreter inside the notebook with:

cxx
cout <<"hello"

The main function in c++ or c is not needed but we will show them from time to time.

%jsroot on switches on the interactive root plots

In [1]:
import ROOT
In [2]:
%jsroot on
In [3]:
h = ROOT.TH1F("gauss","Example histogram",100,-4,4)
h.FillRandom("gaus")
In [4]:
c = ROOT.TCanvas("myCanvasName","The Canvas Title",800,600)
h.Draw()
In [5]:
c.Draw()

c++ and python work together

In [6]:
%%cpp
    gauss->Fit("gaus", "S");
    myCanvasName->Draw();
****************************************
Minimizer is Minuit2 / Migrad
Chi2                      =      65.0502
NDf                       =           82
Edm                       =  4.60684e-07
NCalls                    =           55
Constant                  =      157.425   +/-   2.76819     
Mean                      =    0.0138321   +/-   0.0143799   
Sigma                     =      1.00178   +/-   0.0104857    	 (limited)

Installing fortran magics¶

Attention ipython 9.7.0 became incompatible with fortran-magic 0.9. So we fix versions here for now.

In [7]:
%pip install numpy matplotlib fortran-magic==0.9 jupyterlab==4.4.10 notebook==7.4.7 metakernel==0.30.3 ipython==9.6.0
Requirement already satisfied: numpy in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (2.3.5)
Requirement already satisfied: matplotlib in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (3.10.7)
Requirement already satisfied: fortran-magic==0.9 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (0.9)
Requirement already satisfied: jupyterlab==4.4.10 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (4.4.10)
Requirement already satisfied: notebook==7.4.7 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (7.4.7)
Requirement already satisfied: metakernel==0.30.3 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (0.30.3)
Requirement already satisfied: ipython==9.6.0 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (9.6.0)
Requirement already satisfied: async-lru>=1.0.0 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from jupyterlab==4.4.10) (2.0.5)
Requirement already satisfied: httpx<1,>=0.25.0 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from jupyterlab==4.4.10) (0.28.1)
Requirement already satisfied: ipykernel!=6.30.0,>=6.5.0 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from jupyterlab==4.4.10) (6.31.0)
Requirement already satisfied: jinja2>=3.0.3 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from jupyterlab==4.4.10) (3.1.6)
Requirement already satisfied: jupyter-core in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from jupyterlab==4.4.10) (5.9.1)
Requirement already satisfied: jupyter-lsp>=2.0.0 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from jupyterlab==4.4.10) (2.3.0)
Requirement already satisfied: jupyter-server<3,>=2.4.0 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from jupyterlab==4.4.10) (2.17.0)
Requirement already satisfied: jupyterlab-server<3,>=2.27.1 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from jupyterlab==4.4.10) (2.28.0)
Requirement already satisfied: notebook-shim>=0.2 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from jupyterlab==4.4.10) (0.2.4)
Requirement already satisfied: packaging in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from jupyterlab==4.4.10) (25.0)
Requirement already satisfied: setuptools>=41.1.0 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from jupyterlab==4.4.10) (80.9.0)
Requirement already satisfied: tornado>=6.2.0 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from jupyterlab==4.4.10) (6.5.2)
Requirement already satisfied: traitlets in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from jupyterlab==4.4.10) (5.14.3)
Requirement already satisfied: jedi>=0.18 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from metakernel==0.30.3) (0.19.2)
Requirement already satisfied: pexpect>=4.8 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from metakernel==0.30.3) (4.9.0)
Requirement already satisfied: decorator in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from ipython==9.6.0) (5.2.1)
Requirement already satisfied: ipython-pygments-lexers in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from ipython==9.6.0) (1.1.1)
Requirement already satisfied: matplotlib-inline in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from ipython==9.6.0) (0.2.1)
Requirement already satisfied: prompt_toolkit<3.1.0,>=3.0.41 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from ipython==9.6.0) (3.0.52)
Requirement already satisfied: pygments>=2.4.0 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from ipython==9.6.0) (2.19.2)
Requirement already satisfied: stack_data in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from ipython==9.6.0) (0.6.3)
Requirement already satisfied: typing_extensions>=4.6 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from ipython==9.6.0) (4.15.0)
Requirement already satisfied: anyio in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from httpx<1,>=0.25.0->jupyterlab==4.4.10) (4.11.0)
Requirement already satisfied: certifi in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from httpx<1,>=0.25.0->jupyterlab==4.4.10) (2025.11.12)
Requirement already satisfied: httpcore==1.* in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from httpx<1,>=0.25.0->jupyterlab==4.4.10) (1.0.9)
Requirement already satisfied: idna in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from httpx<1,>=0.25.0->jupyterlab==4.4.10) (3.11)
Requirement already satisfied: h11>=0.16 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from httpcore==1.*->httpx<1,>=0.25.0->jupyterlab==4.4.10) (0.16.0)
Requirement already satisfied: comm>=0.1.1 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from ipykernel!=6.30.0,>=6.5.0->jupyterlab==4.4.10) (0.2.3)
Requirement already satisfied: debugpy>=1.6.5 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from ipykernel!=6.30.0,>=6.5.0->jupyterlab==4.4.10) (1.8.17)
Requirement already satisfied: jupyter-client>=8.0.0 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from ipykernel!=6.30.0,>=6.5.0->jupyterlab==4.4.10) (8.6.3)
Requirement already satisfied: nest-asyncio>=1.4 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from ipykernel!=6.30.0,>=6.5.0->jupyterlab==4.4.10) (1.6.0)
Requirement already satisfied: psutil>=5.7 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from ipykernel!=6.30.0,>=6.5.0->jupyterlab==4.4.10) (7.1.3)
Requirement already satisfied: pyzmq>=25 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from ipykernel!=6.30.0,>=6.5.0->jupyterlab==4.4.10) (27.1.0)
Requirement already satisfied: argon2-cffi>=21.1 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from jupyter-server<3,>=2.4.0->jupyterlab==4.4.10) (25.1.0)
Requirement already satisfied: jupyter-events>=0.11.0 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from jupyter-server<3,>=2.4.0->jupyterlab==4.4.10) (0.12.0)
Requirement already satisfied: jupyter-server-terminals>=0.4.4 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from jupyter-server<3,>=2.4.0->jupyterlab==4.4.10) (0.5.3)
Requirement already satisfied: nbconvert>=6.4.4 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from jupyter-server<3,>=2.4.0->jupyterlab==4.4.10) (7.16.6)
Requirement already satisfied: nbformat>=5.3.0 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from jupyter-server<3,>=2.4.0->jupyterlab==4.4.10) (5.10.4)
Requirement already satisfied: overrides>=5.0 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from jupyter-server<3,>=2.4.0->jupyterlab==4.4.10) (7.7.0)
Requirement already satisfied: prometheus-client>=0.9 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from jupyter-server<3,>=2.4.0->jupyterlab==4.4.10) (0.23.1)
Requirement already satisfied: send2trash>=1.8.2 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from jupyter-server<3,>=2.4.0->jupyterlab==4.4.10) (1.8.3)
Requirement already satisfied: terminado>=0.8.3 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from jupyter-server<3,>=2.4.0->jupyterlab==4.4.10) (0.18.1)
Requirement already satisfied: websocket-client>=1.7 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from jupyter-server<3,>=2.4.0->jupyterlab==4.4.10) (1.9.0)
Requirement already satisfied: babel>=2.10 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from jupyterlab-server<3,>=2.27.1->jupyterlab==4.4.10) (2.17.0)
Requirement already satisfied: json5>=0.9.0 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from jupyterlab-server<3,>=2.27.1->jupyterlab==4.4.10) (0.12.1)
Requirement already satisfied: jsonschema>=4.18.0 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from jupyterlab-server<3,>=2.27.1->jupyterlab==4.4.10) (4.25.1)
Requirement already satisfied: requests>=2.31 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from jupyterlab-server<3,>=2.27.1->jupyterlab==4.4.10) (2.32.5)
Requirement already satisfied: wcwidth in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from prompt_toolkit<3.1.0,>=3.0.41->ipython==9.6.0) (0.2.14)
Requirement already satisfied: contourpy>=1.0.1 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from matplotlib) (1.3.3)
Requirement already satisfied: cycler>=0.10 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from matplotlib) (0.12.1)
Requirement already satisfied: fonttools>=4.22.0 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from matplotlib) (4.60.1)
Requirement already satisfied: kiwisolver>=1.3.1 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from matplotlib) (1.4.9)
Requirement already satisfied: pillow>=8 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from matplotlib) (12.0.0)
Requirement already satisfied: pyparsing>=3 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from matplotlib) (3.2.5)
Requirement already satisfied: python-dateutil>=2.7 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from matplotlib) (2.9.0.post0)
Requirement already satisfied: sniffio>=1.1 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from anyio->httpx<1,>=0.25.0->jupyterlab==4.4.10) (1.3.1)
Requirement already satisfied: argon2-cffi-bindings in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from argon2-cffi>=21.1->jupyter-server<3,>=2.4.0->jupyterlab==4.4.10) (25.1.0)
Requirement already satisfied: parso<0.9.0,>=0.8.4 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from jedi>=0.18->metakernel==0.30.3) (0.8.5)
Requirement already satisfied: MarkupSafe>=2.0 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from jinja2>=3.0.3->jupyterlab==4.4.10) (3.0.3)
Requirement already satisfied: attrs>=22.2.0 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from jsonschema>=4.18.0->jupyterlab-server<3,>=2.27.1->jupyterlab==4.4.10) (25.4.0)
Requirement already satisfied: jsonschema-specifications>=2023.03.6 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from jsonschema>=4.18.0->jupyterlab-server<3,>=2.27.1->jupyterlab==4.4.10) (2025.9.1)
Requirement already satisfied: referencing>=0.28.4 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from jsonschema>=4.18.0->jupyterlab-server<3,>=2.27.1->jupyterlab==4.4.10) (0.37.0)
Requirement already satisfied: rpds-py>=0.7.1 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from jsonschema>=4.18.0->jupyterlab-server<3,>=2.27.1->jupyterlab==4.4.10) (0.29.0)
Requirement already satisfied: platformdirs>=2.5 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from jupyter-core->jupyterlab==4.4.10) (4.5.0)
Requirement already satisfied: python-json-logger>=2.0.4 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from jupyter-events>=0.11.0->jupyter-server<3,>=2.4.0->jupyterlab==4.4.10) (2.0.7)
Requirement already satisfied: pyyaml>=5.3 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from jupyter-events>=0.11.0->jupyter-server<3,>=2.4.0->jupyterlab==4.4.10) (6.0.3)
Requirement already satisfied: rfc3339-validator in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from jupyter-events>=0.11.0->jupyter-server<3,>=2.4.0->jupyterlab==4.4.10) (0.1.4)
Requirement already satisfied: rfc3986-validator>=0.1.1 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from jupyter-events>=0.11.0->jupyter-server<3,>=2.4.0->jupyterlab==4.4.10) (0.1.1)
Requirement already satisfied: fqdn in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.11.0->jupyter-server<3,>=2.4.0->jupyterlab==4.4.10) (1.5.1)
Requirement already satisfied: isoduration in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.11.0->jupyter-server<3,>=2.4.0->jupyterlab==4.4.10) (20.11.0)
Requirement already satisfied: jsonpointer>1.13 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.11.0->jupyter-server<3,>=2.4.0->jupyterlab==4.4.10) (3.0.0)
Requirement already satisfied: rfc3987-syntax>=1.1.0 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.11.0->jupyter-server<3,>=2.4.0->jupyterlab==4.4.10) (1.1.0)
Requirement already satisfied: uri-template in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.11.0->jupyter-server<3,>=2.4.0->jupyterlab==4.4.10) (1.3.0)
Requirement already satisfied: webcolors>=24.6.0 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.11.0->jupyter-server<3,>=2.4.0->jupyterlab==4.4.10) (25.10.0)
Requirement already satisfied: beautifulsoup4 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from nbconvert>=6.4.4->jupyter-server<3,>=2.4.0->jupyterlab==4.4.10) (4.14.2)
Requirement already satisfied: bleach!=5.0.0 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from bleach[css]!=5.0.0->nbconvert>=6.4.4->jupyter-server<3,>=2.4.0->jupyterlab==4.4.10) (6.2.0)
Requirement already satisfied: defusedxml in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from nbconvert>=6.4.4->jupyter-server<3,>=2.4.0->jupyterlab==4.4.10) (0.7.1)
Requirement already satisfied: jupyterlab-pygments in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from nbconvert>=6.4.4->jupyter-server<3,>=2.4.0->jupyterlab==4.4.10) (0.3.0)
Requirement already satisfied: mistune<4,>=2.0.3 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from nbconvert>=6.4.4->jupyter-server<3,>=2.4.0->jupyterlab==4.4.10) (3.1.4)
Requirement already satisfied: nbclient>=0.5.0 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from nbconvert>=6.4.4->jupyter-server<3,>=2.4.0->jupyterlab==4.4.10) (0.10.2)
Requirement already satisfied: pandocfilters>=1.4.1 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from nbconvert>=6.4.4->jupyter-server<3,>=2.4.0->jupyterlab==4.4.10) (1.5.0)
Requirement already satisfied: webencodings in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from bleach!=5.0.0->bleach[css]!=5.0.0->nbconvert>=6.4.4->jupyter-server<3,>=2.4.0->jupyterlab==4.4.10) (0.5.1)
Requirement already satisfied: tinycss2<1.5,>=1.1.0 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from bleach[css]!=5.0.0->nbconvert>=6.4.4->jupyter-server<3,>=2.4.0->jupyterlab==4.4.10) (1.4.0)
Requirement already satisfied: fastjsonschema>=2.15 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from nbformat>=5.3.0->jupyter-server<3,>=2.4.0->jupyterlab==4.4.10) (2.21.2)
Requirement already satisfied: ptyprocess>=0.5 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from pexpect>=4.8->metakernel==0.30.3) (0.7.0)
Requirement already satisfied: six>=1.5 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from python-dateutil>=2.7->matplotlib) (1.17.0)
Requirement already satisfied: charset_normalizer<4,>=2 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from requests>=2.31->jupyterlab-server<3,>=2.27.1->jupyterlab==4.4.10) (3.4.4)
Requirement already satisfied: urllib3<3,>=1.21.1 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from requests>=2.31->jupyterlab-server<3,>=2.27.1->jupyterlab==4.4.10) (2.5.0)
Requirement already satisfied: lark>=1.2.2 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from rfc3987-syntax>=1.1.0->jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.11.0->jupyter-server<3,>=2.4.0->jupyterlab==4.4.10) (1.3.1)
Requirement already satisfied: cffi>=1.0.1 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from argon2-cffi-bindings->argon2-cffi>=21.1->jupyter-server<3,>=2.4.0->jupyterlab==4.4.10) (2.0.0)
Requirement already satisfied: pycparser in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi>=21.1->jupyter-server<3,>=2.4.0->jupyterlab==4.4.10) (2.22)
Requirement already satisfied: soupsieve>1.2 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from beautifulsoup4->nbconvert>=6.4.4->jupyter-server<3,>=2.4.0->jupyterlab==4.4.10) (2.8)
Requirement already satisfied: arrow>=0.15.0 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from isoduration->jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.11.0->jupyter-server<3,>=2.4.0->jupyterlab==4.4.10) (1.4.0)
Requirement already satisfied: tzdata in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from arrow>=0.15.0->isoduration->jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.11.0->jupyter-server<3,>=2.4.0->jupyterlab==4.4.10) (2025.2)
Requirement already satisfied: executing>=1.2.0 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from stack_data->ipython==9.6.0) (2.2.1)
Requirement already satisfied: asttokens>=2.1.0 in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from stack_data->ipython==9.6.0) (3.0.1)
Requirement already satisfied: pure_eval in /home/k/miniforge3/envs/ROOT5/lib/python3.11/site-packages (from stack_data->ipython==9.6.0) (0.2.3)
Note: you may need to restart the kernel to use updated packages.
In [8]:
import fortranmagic
In [9]:
fortranmagic.__version__
Out[9]:
'0.9'
In [10]:
%load_ext fortranmagic
In [11]:
import os
import sys

import numpy as np

if sys.platform.startswith("win"):
        # Depends of system, python builds, and compilers compatibility.
        # See below.
    f_config = "--fcompiler=gnu95 --compiler=mingw32"
else:
        # For Unix, compilers are usually more compatible.
    f_config = ""

    # Disable only deprecated NumPy API warning without disable any APIs.
f_config += " --extra '-DNPY_NO_DEPRECATED_API=0'"

%fortran_config {f_config}
New default arguments for %fortran:
	 --extra '-DNPY_NO_DEPRECATED_API=0'
In [12]:
%%fortran

subroutine f1(x, y, z)
    real, intent(in) :: x,y
    real, intent(out) :: z

    z = sin(x+y)

end subroutine f1
In [13]:
f1(1.0, 2.1415)
Out[13]:
9.26574066397734e-05
In [ ]: