So next we talk about how we use the OpenMP treatment. Here is an example; here is the most computationally expensive subroutine in the code. We need to define the threading treatment-related integers like the local loop index n, and the number of threads, the thread id, and the total number of threads. And a few functions to get the current thread id and the current number of threads. And then we set the number of threads explicitly since the code is small and can compile fast. So when we change the thread numbers, we recompile the code. We use the OMP parallel environment. In the environment, we need to define all the local variables; besides what we see here, we also need to check the macro to find all the local variables mentioned in the macro. We get the thread id using the OMP command, and we also get the total number of threads from the OMP command. Then the loop index is coded with the thread id and the total number of threads. And the loop index inside the macros also needs to be private. And then we close the OpenMP environment after the loop.