diff --git a/dev/.documenter-siteinfo.json b/dev/.documenter-siteinfo.json index f04ac03..57fbcdb 100644 --- a/dev/.documenter-siteinfo.json +++ b/dev/.documenter-siteinfo.json @@ -1 +1 @@ -{"documenter":{"julia_version":"1.10.5","generation_timestamp":"2024-10-04T23:35:15","documenter_version":"1.7.0"}} \ No newline at end of file +{"documenter":{"julia_version":"1.10.5","generation_timestamp":"2024-10-05T00:03:40","documenter_version":"1.7.0"}} \ No newline at end of file diff --git a/dev/api/index.html b/dev/api/index.html index 928f44b..2c0b4bf 100644 Binary files a/dev/api/index.html and b/dev/api/index.html differ diff --git a/dev/developers/contributing/index.html b/dev/developers/contributing/index.html index c812ac6..4600c14 100644 --- a/dev/developers/contributing/index.html +++ b/dev/developers/contributing/index.html @@ -34,4 +34,4 @@ git checkout main -git pull
Note

If you have suggestions to improve this guide, please make a pull request! It's particularly helpful if you do this after your first pull request because you'll know all the parts that could be explained better.

Thanks for contributing to Fortran90Namelists!

+git pull
Note

If you have suggestions to improve this guide, please make a pull request! It's particularly helpful if you do this after your first pull request because you'll know all the parts that could be explained better.

Thanks for contributing to Fortran90Namelists!

diff --git a/dev/developers/style-guide/index.html b/dev/developers/style-guide/index.html index aa1390c..e87a3c6 100644 --- a/dev/developers/style-guide/index.html +++ b/dev/developers/style-guide/index.html @@ -11,4 +11,4 @@ [c27321d9] + Glob v1.3.1 [98e50ef6] + JuliaFormatter v1.0.60 [bac558e1] + OrderedCollections v1.6.3 - [0796e94c] + Tokenize v0.5.29
julia> using JuliaFormatter: format
julia> format("docs")ERROR: IOError: realpath("docs"): no such file or directory (ENOENT)
julia> format("src")ERROR: IOError: realpath("src"): no such file or directory (ENOENT)
julia> format("test")ERROR: IOError: realpath("test"): no such file or directory (ENOENT)
Info

A continuous integration check verifies that all PRs made to Fortran90Namelists have passed the formatter.

The following sections outline extra style guide points that are not fixed automatically by JuliaFormatter.

Use the Julia extension for Visual Studio Code

Please use Visual Studio Code with the Julia extension to edit, format, and test your code. We do not recommend using other editors to edit your code for the time being.

This extension already has JuliaFormatter integrated. So to format your code, follow the steps listed here.

+ [0796e94c] + Tokenize v0.5.29
julia> using JuliaFormatter: format
julia> format("docs")ERROR: IOError: realpath("docs"): no such file or directory (ENOENT)
julia> format("src")ERROR: IOError: realpath("src"): no such file or directory (ENOENT)
julia> format("test")ERROR: IOError: realpath("test"): no such file or directory (ENOENT)
Info

A continuous integration check verifies that all PRs made to Fortran90Namelists have passed the formatter.

The following sections outline extra style guide points that are not fixed automatically by JuliaFormatter.

Use the Julia extension for Visual Studio Code

Please use Visual Studio Code with the Julia extension to edit, format, and test your code. We do not recommend using other editors to edit your code for the time being.

This extension already has JuliaFormatter integrated. So to format your code, follow the steps listed here.

diff --git a/dev/index.html b/dev/index.html index 4680fc6..d171386 100644 --- a/dev/index.html +++ b/dev/index.html @@ -1,3 +1,3 @@ Home · Fortran90Namelists.jl

Fortran90Namelists

Documentation for Fortran90Namelists.

See the Index for the complete list of documented functions and types.

The code is hosted on GitHub, with some continuous integration services to test its validity.

This repository is created and maintained by @anchal-physics. You are very welcome to contribute.

Installation

The package can be installed with the Julia package manager. From the Julia REPL, type ] to enter the Pkg REPL mode and run:

pkg> add Fortran90Namelists

Or, equivalently, via the Pkg API:

julia> import Pkg; Pkg.add("Fortran90Namelists")   Resolving package versions...
-ERROR: expected package `Fortran90Namelists [8fb689aa]` to be registered

Documentation

  • STABLEdocumentation of the most recently tagged version.
  • DEVdocumentation of the in-development version.

Project status

The package is tested against, and being developed for, Julia 1.6 and above on Linux, macOS, and Windows.

Questions and contributions

Contributions are very welcome, as are feature requests and suggestions. Please open an issue if you encounter any problems. The Contributing page has a few guidelines that should be followed when opening pull requests and contributing code.

Manual outline

Library outline

Index

+ERROR: expected package `Fortran90Namelists [8fb689aa]` to be registered

Documentation

Project status

The package is tested against, and being developed for, Julia 1.6 and above on Linux, macOS, and Windows.

Questions and contributions

Contributions are very welcome, as are feature requests and suggestions. Please open an issue if you encounter any problems. The Contributing page has a few guidelines that should be followed when opening pull requests and contributing code.

Manual outline

Library outline

Index

diff --git a/dev/installation/index.html b/dev/installation/index.html index 93ee23d..3feda6b 100644 --- a/dev/installation/index.html +++ b/dev/installation/index.html @@ -28,4 +28,4 @@ julia> Pkg.rm("Fortran90Namelists") -julia> Pkg.gc()
  • Press ctrl+d to quit the current session. Start a new Julia session and reinstall Fortran90Namelists.

  • +julia> Pkg.gc()
  • Press ctrl+d to quit the current session. Start a new Julia session and reinstall Fortran90Namelists.

  • diff --git a/dev/objects.inv b/dev/objects.inv index 015c90f..5bf98f5 100644 Binary files a/dev/objects.inv and b/dev/objects.inv differ diff --git a/dev/search_index.js b/dev/search_index.js index 5c0ff48..2c0296e 100644 --- a/dev/search_index.js +++ b/dev/search_index.js @@ -1,3 +1,3 @@ var documenterSearchIndex = {"docs": -[{"location":"api/","page":"API Reference","title":"API Reference","text":"CurrentModule = Fortran90Namelists","category":"page"},{"location":"api/#API-Reference","page":"API Reference","title":"API Reference","text":"","category":"section"},{"location":"api/","page":"API Reference","title":"API Reference","text":"Pages = [\"api.md\"]\nDepth = 2","category":"page"},{"location":"api/#Public-API","page":"API Reference","title":"Public API","text":"","category":"section"},{"location":"api/","page":"API Reference","title":"API Reference","text":"Tokenizer\ntokenize!","category":"page"},{"location":"api/#Fortran90Namelists.Tokenizer","page":"API Reference","title":"Fortran90Namelists.Tokenizer","text":"Tokenizer(index=0, prior_char='\u0000', char='\u0000', prior_delim='\u0000', group_token='\u0000')\n\nA mutable struct for tokenizing input string.\n\nIt maintains state information about the current position in the string, the current character, the previous character, the previous delimiter, and the group token if inside a namelist group.\n\n\n\n\n\n","category":"type"},{"location":"api/#Fortran90Namelists.tokenize!","page":"API Reference","title":"Fortran90Namelists.tokenize!","text":"tokenize!(tk::Tokenizer, line)\n\nTokenize the input line using the tokenizer tk.\n\nThe function updates the state of tk to reflect the position within line and returns a list of tokens.\n\n\n\n\n\n","category":"function"},{"location":"api/#Private-API","page":"API Reference","title":"Private API","text":"","category":"section"},{"location":"api/","page":"API Reference","title":"API Reference","text":"The functions and types mentioned here are considered part of the private API and are not intended for direct use by users. They may be modified, moved, or removed without notice and are primarily meant for internal use within the package. Using them directly may result in unexpected errors or compatibility issues in your code.","category":"page"},{"location":"api/","page":"API Reference","title":"API Reference","text":"tokenizestr!\nupdate!","category":"page"},{"location":"api/#Fortran90Namelists.tokenizestr!","page":"API Reference","title":"Fortran90Namelists.tokenizestr!","text":"tokenizestr!(tk::Tokenizer, chars::Iterators.Stateful)\n\nTokenizes a Fortran string.\n\nThis function treats everything between a pair of delimiters (such as quotation marks) as a string. It respects escaped delimiters and updates the state of the tokenizer tk to reflect the position within the string.\n\n\n\n\n\n","category":"function"},{"location":"api/#Fortran90Namelists.update!","page":"API Reference","title":"Fortran90Namelists.update!","text":"update!(tk::Tokenizer, chars::Iterators.Stateful)\n\nUpdate the current characters in the tokenizer, tk.\n\nThis includes updating both the prior and current characters, and incrementing the index.\n\n\n\n\n\n","category":"function"},{"location":"developers/contributing/#Contributing","page":"Contributing","title":"Contributing","text":"","category":"section"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"Pages = [\"contributing.md\"]\nDepth = 2","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"Welcome! This document explains some ways you can contribute to Fortran90Namelists.","category":"page"},{"location":"developers/contributing/#Improve-the-documentation","page":"Contributing","title":"Improve the documentation","text":"","category":"section"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"Chances are, if you asked (or answered) a question on the community forum, then it is a sign that the documentation could be improved. Moreover, since it is your question, you are probably the best-placed person to improve it!","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"The docs are written in Markdown and are built using Documenter.jl. You can find the source of all the docs here.","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"If your change is small (like fixing typos or one or two sentence corrections), the easiest way to do this is via GitHub's online editor. (GitHub has help on how to do this.)","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"If your change is larger or touches multiple files, you will need to make the change locally and then use Git to submit a pull request. (See Contribute code to Fortran90Namelists below for more on this.)","category":"page"},{"location":"developers/contributing/#File-a-bug-report","page":"Contributing","title":"File a bug report","text":"","category":"section"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"Another way to contribute to Fortran90Namelists is to file bug reports.","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"Make sure you read the info in the box where you write the body of the issue before posting. You can also find a copy of that info here.","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"tip: Tip\nIf you're unsure whether you have a real bug, post on the community forum first. Someone will either help you fix the problem or let you know the most appropriate place to open a bug report.","category":"page"},{"location":"developers/contributing/#Contribute-code-to-Fortran90Namelists","page":"Contributing","title":"Contribute code to Fortran90Namelists","text":"","category":"section"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"Finally, you can also contribute code to Fortran90Namelists!","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"warning: Warning\nIf you do not have experience with Git, GitHub, and Julia development, the first steps can be a little daunting. However, there are lots of tutorials available online, including:GitHub\nGit and GitHub\nGit\nJulia package development","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"Once you are familiar with Git and GitHub, the workflow for contributing code to Fortran90Namelists is similar to the following:","category":"page"},{"location":"developers/contributing/#Step-1:-decide-what-to-work-on","page":"Contributing","title":"Step 1: decide what to work on","text":"","category":"section"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"The first step is to find an open issue (or open a new one) for the problem you want to solve. Then, before spending too much time on it, discuss what you are planning to do in the issue to see if other contributors are fine with your proposed changes. Getting feedback early can improve code quality and avoid time spent writing code that does not get merged into Fortran90Namelists.","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"tip: Tip\nAt this point, remember to be patient and polite; you may get a lot of comments on your issue! However, do not be afraid! Comments mean that people are willing to help you improve the code that you are contributing to Fortran90Namelists.","category":"page"},{"location":"developers/contributing/#Step-2:-fork-Fortran90Namelists","page":"Contributing","title":"Step 2: fork Fortran90Namelists","text":"","category":"section"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"Go to https://github.com/anchal-physics/Fortran90Namelists.jl and click the \"Fork\" button in the top-right corner. This will create a copy of Fortran90Namelists under your GitHub account.","category":"page"},{"location":"developers/contributing/#Step-3:-install-Fortran90Namelists-locally","page":"Contributing","title":"Step 3: install Fortran90Namelists locally","text":"","category":"section"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"Similar to Installation, open the Julia REPL and run:","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"using Pkg\nPkg.update()\nPkg.develop(\"Fortran90Namelists\")","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"Then the package will be cloned to your local machine. On *nix systems, the default path is ~/.julia/dev/Fortran90Namelists unless you modify the JULIA_DEPOT_PATH environment variable. If you're on Windows, this will be C:\\\\Users\\\\\\\\.julia\\\\dev\\\\Fortran90Namelists. In the following text, we will call it PKGROOT.","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"Go to PKGROOT, start a new Julia session, and run","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"using Pkg\nPkg.instantiate()","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"to instantiate the project.","category":"page"},{"location":"developers/contributing/#Step-4:-checkout-a-new-branch","page":"Contributing","title":"Step 4: checkout a new branch","text":"","category":"section"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"note: Note\nIn the following, replace any instance of GITHUB_ACCOUNT with your GitHub username.","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"The next step is to check out a development branch. In a terminal (or command prompt on Windows), run:","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"cd ~/.julia/dev/Fortran90Namelists\n\ngit remote add GITHUB_ACCOUNT https://github.com/GITHUB_ACCOUNT/Fortran90Namelists.jl.git\n\ngit checkout main\n\ngit pull\n\ngit checkout -b my_new_branch","category":"page"},{"location":"developers/contributing/#Step-5:-make-changes","page":"Contributing","title":"Step 5: make changes","text":"","category":"section"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"Now make any changes to the source code inside the ~/.julia/dev/Fortran90Namelists directory.","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"Make sure you:","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"Follow our Style Guide and Run JuliaFormatter.\nAdd tests and documentation for any changes or new features.","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"tip: Tip\nWhen you change the source code, you'll need to restart Julia for the changes to take effect. This is a pain, so install Revise.jl.","category":"page"},{"location":"developers/contributing/#Step-6a:-test-your-code-changes","page":"Contributing","title":"Step 6a: test your code changes","text":"","category":"section"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"To test that your changes work, run the Fortran90Namelists test-suite by opening Julia and running:","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"julia> cd(joinpath(DEPOT_PATH[1], \"dev\", \"Fortran90Namelists\"))\n\njulia> using Pkg\n\njulia> Pkg.activate(\".\")\n Activating new project at `~/.julia/dev/Fortran90Namelists`\n\njulia> Pkg.test()","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"warning: Warning\nRunning the tests might take a long time.","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"tip: Tip\nIf you are using Revise.jl, you can also run the tests by calling include:include(\"test/runtests.jl\")This can be faster if you want to re-run the tests multiple times.","category":"page"},{"location":"developers/contributing/#Step-6b:-test-your-documentation-changes","page":"Contributing","title":"Step 6b: test your documentation changes","text":"","category":"section"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"Open Julia, then run:","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"julia> cd(joinpath(DEPOT_PATH[1], \"dev\", \"Fortran90Namelists\", \"docs\"))\n\njulia> using Pkg\n\njulia> Pkg.activate(\".\")\n Activating new project at `~/.julia/dev/Fortran90Namelists/docs`\n\njulia> include(\"src/make.jl\")","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"After a while, a folder PKGROOT/docs/build will appear. Open PKGROOT/docs/build/index.html with your favorite browser, and have fun!","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"warning: Warning\nBuilding the documentation might take a long time.","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"tip: Tip\nIf there's a problem with the tests that you don't know how to fix, don't worry. Continue to step 5, and one of the Fortran90Namelists contributors will comment on your pull request, telling you how to fix things.","category":"page"},{"location":"developers/contributing/#Step-7:-make-a-pull-request","page":"Contributing","title":"Step 7: make a pull request","text":"","category":"section"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"Once you've made changes, you're ready to push the changes to GitHub. Run:","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"cd ~/.julia/dev/Fortran90Namelists\n\ngit add .\n\ngit commit -m \"A descriptive message of the changes\"\n\ngit push -u GITHUB_ACCOUNT my_new_branch","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"Then go to https://github.com/anchal-physics/Fortran90Namelists.jl/pulls and follow the instructions that pop up to open a pull request.","category":"page"},{"location":"developers/contributing/#Step-8:-respond-to-comments","page":"Contributing","title":"Step 8: respond to comments","text":"","category":"section"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"At this point, remember to be patient and polite; you may get a lot of comments on your pull request! However, do not be afraid! A lot of comments means that people are willing to help you improve the code that you are contributing to Fortran90Namelists.","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"To respond to the comments, go back to step 5, make any changes, test the changes in step 6, and then make a new commit in step 7. Your PR will automatically update.","category":"page"},{"location":"developers/contributing/#Step-9:-cleaning-up","page":"Contributing","title":"Step 9: cleaning up","text":"","category":"section"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"Once the PR is merged, clean-up your Git repository, ready for the next contribution!","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"cd ~/.julia/dev/Fortran90Namelists\n\ngit checkout main\n\ngit pull","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"note: Note\nIf you have suggestions to improve this guide, please make a pull request! It's particularly helpful if you do this after your first pull request because you'll know all the parts that could be explained better.","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"Thanks for contributing to Fortran90Namelists!","category":"page"},{"location":"troubleshooting/#Troubleshooting","page":"Troubleshooting","title":"Troubleshooting","text":"","category":"section"},{"location":"troubleshooting/","page":"Troubleshooting","title":"Troubleshooting","text":"Pages = [\"troubleshooting.md\"]\nDepth = 2","category":"page"},{"location":"troubleshooting/","page":"Troubleshooting","title":"Troubleshooting","text":"This page collects some possible errors you may encounter and trick how to fix them. If you have some questions about how to use this code, you are welcome to discuss with us.","category":"page"},{"location":"troubleshooting/","page":"Troubleshooting","title":"Troubleshooting","text":"If you have additional tips, please either report an issue or submit a PR with suggestions.","category":"page"},{"location":"troubleshooting/#Installation-problems","page":"Troubleshooting","title":"Installation problems","text":"","category":"section"},{"location":"troubleshooting/#Cannot-find-the-julia-executable","page":"Troubleshooting","title":"Cannot find the julia executable","text":"","category":"section"},{"location":"troubleshooting/","page":"Troubleshooting","title":"Troubleshooting","text":"Make sure you have Julia installed in your environment. Please download the latest stable version for your platform. If you are using a *nix system, the recommended way is to use Juliaup. If you do not want to install Juliaup or you are using other platforms that Julia supports, download the corresponding binaries. Then, create a symbolic link to the Julia executable. If the path is not in your $PATH environment variable, export it to your $PATH.","category":"page"},{"location":"troubleshooting/","page":"Troubleshooting","title":"Troubleshooting","text":"Some clusters, like Habanero, Comet, or Expanse, already have Julia installed as a module, you may just module load julia to use it. If not, either install by yourself or contact your administrator.","category":"page"},{"location":"troubleshooting/#Loading-Fortran90Namelists","page":"Troubleshooting","title":"Loading Fortran90Namelists","text":"","category":"section"},{"location":"troubleshooting/#Julia-compiles/loads-slow","page":"Troubleshooting","title":"Julia compiles/loads slow","text":"","category":"section"},{"location":"troubleshooting/","page":"Troubleshooting","title":"Troubleshooting","text":"First, we recommend you download the latest version of Julia. Usually, the newest version has the best performance.","category":"page"},{"location":"troubleshooting/","page":"Troubleshooting","title":"Troubleshooting","text":"If you just want Julia to do a simple task and only once, you could start the Julia REPL with","category":"page"},{"location":"troubleshooting/","page":"Troubleshooting","title":"Troubleshooting","text":"julia --compile=min","category":"page"},{"location":"troubleshooting/","page":"Troubleshooting","title":"Troubleshooting","text":"to minimize compilation or","category":"page"},{"location":"troubleshooting/","page":"Troubleshooting","title":"Troubleshooting","text":"julia --optimize=0","category":"page"},{"location":"troubleshooting/","page":"Troubleshooting","title":"Troubleshooting","text":"to minimize optimizations, or just use both. Or you could make a system image and run with","category":"page"},{"location":"troubleshooting/","page":"Troubleshooting","title":"Troubleshooting","text":"julia --sysimage custom-image.so","category":"page"},{"location":"troubleshooting/","page":"Troubleshooting","title":"Troubleshooting","text":"See Fredrik Ekre's talk for details.","category":"page"},{"location":"installation/#installation","page":"Installation guide","title":"Installation Guide","text":"","category":"section"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"Pages = [\"installation.md\"]\nDepth = 2","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"Here are the installation instructions for package Fortran90Namelists. If you have trouble installing it, please refer to our Troubleshooting page for more information.","category":"page"},{"location":"installation/#Install-Julia","page":"Installation guide","title":"Install Julia","text":"","category":"section"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"First, you should install Julia. We recommend downloading it from its official website. Please follow the detailed instructions on its website if you have to build Julia from source. Some computing centers provide preinstalled Julia. Please contact your administrator for more information in that case. Here's some additional information on how to set up Julia on HPC systems.","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"If you have Homebrew installed, open Terminal.app and type","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"brew install julia","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"to install it as a formula.","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"If you are also using macOS and want to install it as a prebuilt binary app, type","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"brew install --cask julia","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"instead.","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"If you want to install multiple Julia versions in the same operating system, a recommended way is to use a version manager such as juliaup. First, install juliaup. Then, run","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"juliaup add release\njuliaup default release","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"to configure the julia command to start the latest stable version of Julia (this is also the default value).","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"There is a short video introduction to juliaup made by its authors.","category":"page"},{"location":"installation/#Which-version-should-I-pick?","page":"Installation guide","title":"Which version should I pick?","text":"","category":"section"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"You can install the \"Current stable release\" or the \"Long-term support (LTS) release\".","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"The \"Current stable release\" is the latest release of Julia. It has access to newer features, and is likely faster.\nThe \"Long-term support release\" is an older version of Julia that has continued to receive bug and security fixes. However, it may not have the latest features or performance improvements.","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"For most users, you should install the \"Current stable release\", and whenever Julia releases a new version of the current stable release, you should update your version of Julia. Note that any code you write on one version of the current stable release will continue to work on all subsequent releases.","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"For users in restricted software environments (e.g., your enterprise IT controls what software you can install), you may be better off installing the long-term support release because you will not have to update Julia as frequently.","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"Versions higher than v1.3, especially v1.6, are strongly recommended. This package may not work on v1.0 and below. Since the Julia team has set v1.6 as the LTS release, we will gradually drop support for versions below v1.6.","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"Julia and Julia packages support multiple operating systems and CPU architectures; check this table to see if it can be installed on your machine. For Mac computers with M-series processors, this package and its dependencies may not work. Please install the Intel-compatible version of Julia (for macOS x86-64) if any platform-related error occurs.","category":"page"},{"location":"installation/#Install-Fortran90Namelists","page":"Installation guide","title":"Install Fortran90Namelists","text":"","category":"section"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"Now I am using macOS as a standard platform to explain the following steps:","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"Open Terminal.app, and type julia to start an interactive session (known as the REPL).\nRun the following commands and wait for them to finish:\njulia> using Pkg\n\njulia> Pkg.update()\n\njulia> Pkg.add(\"Fortran90Namelists\")\nRun\njulia> using Fortran90Namelists\nand have fun!\nWhile using, please keep this Julia session alive. Restarting might cost some time.","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"If you want to install the latest in-development (probably buggy) version of Fortran90Namelists, type","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"using Pkg\nPkg.update()\npkg\"add https://github.com/anchal-physics/Fortran90Namelists.jl\"","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"in the second step above.","category":"page"},{"location":"installation/#Update-Fortran90Namelists","page":"Installation guide","title":"Update Fortran90Namelists","text":"","category":"section"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"Please watch our GitHub repository for new releases. Once we release a new version, you can update Fortran90Namelists by typing","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"using Pkg\nPkg.update(\"Fortran90Namelists\")\nPkg.gc()","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"in the Julia REPL.","category":"page"},{"location":"installation/#Uninstall-and-reinstall-Fortran90Namelists","page":"Installation guide","title":"Uninstall and reinstall Fortran90Namelists","text":"","category":"section"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"Sometimes errors may occur if the package is not properly installed. In this case, you may want to uninstall and reinstall the package. Here is how to do that:","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"To uninstall, in a Julia session, run\njulia> using Pkg\n\njulia> Pkg.rm(\"Fortran90Namelists\")\n\njulia> Pkg.gc()\nPress ctrl+d to quit the current session. Start a new Julia session and reinstall Fortran90Namelists.","category":"page"},{"location":"developers/style-guide/#style","page":"Style Guide","title":"Style Guide","text":"","category":"section"},{"location":"developers/style-guide/","page":"Style Guide","title":"Style Guide","text":"This section describes the coding style rules that apply to our code and that we recommend you to use it also.","category":"page"},{"location":"developers/style-guide/","page":"Style Guide","title":"Style Guide","text":"In some cases, our style guide diverges from Julia's official Style Guide (Please read it!). All such cases will be explicitly noted and justified.","category":"page"},{"location":"developers/style-guide/","page":"Style Guide","title":"Style Guide","text":"Our style guide adopts many recommendations from the BlueStyle. Please read the BlueStyle before contributing to this package. If not following, your pull requests may not be accepted.","category":"page"},{"location":"developers/style-guide/","page":"Style Guide","title":"Style Guide","text":"info: Info\nThe style guide is always a work in progress, and not all Fortran90Namelists code follows the rules. When modifying Fortran90Namelists, please fix the style violations of the surrounding code (i.e., leave the code tidier than when you started). If large changes are needed, consider separating them into another pull request.","category":"page"},{"location":"developers/style-guide/#Formatting","page":"Style Guide","title":"Formatting","text":"","category":"section"},{"location":"developers/style-guide/#Run-JuliaFormatter","page":"Style Guide","title":"Run JuliaFormatter","text":"","category":"section"},{"location":"developers/style-guide/","page":"Style Guide","title":"Style Guide","text":"Fortran90Namelists uses JuliaFormatter as an auto-formatting tool.","category":"page"},{"location":"developers/style-guide/","page":"Style Guide","title":"Style Guide","text":"We use the options contained in .JuliaFormatter.toml.","category":"page"},{"location":"developers/style-guide/","page":"Style Guide","title":"Style Guide","text":"To format your code, cd to the Fortran90Namelists directory, then run:","category":"page"},{"location":"developers/style-guide/","page":"Style Guide","title":"Style Guide","text":"using Pkg\nPkg.add(\"JuliaFormatter\")\nusing JuliaFormatter: format\nformat(\"docs\")\nformat(\"src\")\nformat(\"test\")","category":"page"},{"location":"developers/style-guide/","page":"Style Guide","title":"Style Guide","text":"info: Info\nA continuous integration check verifies that all PRs made to Fortran90Namelists have passed the formatter.","category":"page"},{"location":"developers/style-guide/","page":"Style Guide","title":"Style Guide","text":"The following sections outline extra style guide points that are not fixed automatically by JuliaFormatter.","category":"page"},{"location":"developers/style-guide/#Use-the-Julia-extension-for-Visual-Studio-Code","page":"Style Guide","title":"Use the Julia extension for Visual Studio Code","text":"","category":"section"},{"location":"developers/style-guide/","page":"Style Guide","title":"Style Guide","text":"Please use Visual Studio Code with the Julia extension to edit, format, and test your code. We do not recommend using other editors to edit your code for the time being.","category":"page"},{"location":"developers/style-guide/","page":"Style Guide","title":"Style Guide","text":"This extension already has JuliaFormatter integrated. So to format your code, follow the steps listed here.","category":"page"},{"location":"","page":"Home","title":"Home","text":"CurrentModule = Fortran90Namelists","category":"page"},{"location":"#Fortran90Namelists","page":"Home","title":"Fortran90Namelists","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Documentation for Fortran90Namelists.","category":"page"},{"location":"","page":"Home","title":"Home","text":"See the Index for the complete list of documented functions and types.","category":"page"},{"location":"","page":"Home","title":"Home","text":"The code is hosted on GitHub, with some continuous integration services to test its validity.","category":"page"},{"location":"","page":"Home","title":"Home","text":"This repository is created and maintained by @anchal-physics. You are very welcome to contribute.","category":"page"},{"location":"#Installation","page":"Home","title":"Installation","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"The package can be installed with the Julia package manager. From the Julia REPL, type ] to enter the Pkg REPL mode and run:","category":"page"},{"location":"","page":"Home","title":"Home","text":"pkg> add Fortran90Namelists","category":"page"},{"location":"","page":"Home","title":"Home","text":"Or, equivalently, via the Pkg API:","category":"page"},{"location":"","page":"Home","title":"Home","text":"import Pkg; Pkg.add(\"Fortran90Namelists\")","category":"page"},{"location":"#Documentation","page":"Home","title":"Documentation","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"STABLE — documentation of the most recently tagged version.\nDEV — documentation of the in-development version.","category":"page"},{"location":"#Project-status","page":"Home","title":"Project status","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"The package is tested against, and being developed for, Julia 1.6 and above on Linux, macOS, and Windows.","category":"page"},{"location":"#Questions-and-contributions","page":"Home","title":"Questions and contributions","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Contributions are very welcome, as are feature requests and suggestions. Please open an issue if you encounter any problems. The Contributing page has a few guidelines that should be followed when opening pull requests and contributing code.","category":"page"},{"location":"#Manual-outline","page":"Home","title":"Manual outline","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Pages = [\n \"installation.md\",\n \"developers/contributing.md\",\n \"developers/style-guide.md\",\n \"troubleshooting.md\",\n]\nDepth = 3","category":"page"},{"location":"#Library-outline","page":"Home","title":"Library outline","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Pages = [\"api.md\"]","category":"page"},{"location":"#main-index","page":"Home","title":"Index","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Pages = [\"api.md\"]","category":"page"}] +[{"location":"api/","page":"API Reference","title":"API Reference","text":"CurrentModule = Fortran90Namelists","category":"page"},{"location":"api/#API-Reference","page":"API Reference","title":"API Reference","text":"","category":"section"},{"location":"api/","page":"API Reference","title":"API Reference","text":"Pages = [\"api.md\"]\nDepth = 2","category":"page"},{"location":"api/#Public-API","page":"API Reference","title":"Public API","text":"","category":"section"},{"location":"api/","page":"API Reference","title":"API Reference","text":"Tokenizer\ntokenize!\nfparse\nreadnml\nwritenml","category":"page"},{"location":"api/#Fortran90Namelists.Tokenizer","page":"API Reference","title":"Fortran90Namelists.Tokenizer","text":"Tokenizer(index=0, prior_char='\u0000', char='\u0000', prior_delim='\u0000', group_token='\u0000')\n\nA mutable struct for tokenizing input string.\n\nIt maintains state information about the current position in the string, the current character, the previous character, the previous delimiter, and the group token if inside a namelist group.\n\n\n\n\n\n","category":"type"},{"location":"api/#Fortran90Namelists.tokenize!","page":"API Reference","title":"Fortran90Namelists.tokenize!","text":"tokenize!(tk::Tokenizer, line)\n\nTokenize the input line using the tokenizer tk.\n\nThe function updates the state of tk to reflect the position within line and returns a list of tokens.\n\n\n\n\n\n","category":"function"},{"location":"api/#Fortran90Namelists.fparse","page":"API Reference","title":"Fortran90Namelists.fparse","text":"fparse(::Type{T}, str::AbstractString) where {T<:Integer}\n\nParse fortran string as integer\n\n\n\n\n\nfparse(::Type{Float32}, str::AbstractString)\n\nParse fortran string as Float32\n\n\n\n\n\nfparse(::Type{Float64}, str::AbstractString)\n\nParse fortran string as Float64\n\n\n\n\n\nfparse(::Type{Complex{T}}, str::AbstractString) where {T<:AbstractFloat}\n\nParse fortran string as Complex of Float types\n\n\n\n\n\nfparse(::Type{Bool}, str::AbstractString)\n\nParse fortran string as Bool\n\n\n\n\n\nfparse(::Type{String}, str::AbstractString)\n\nParse fortran string as String\n\n\n\n\n\nfparse(str::AbstractString)\n\nConvenience function. Tries parsing str with types Int, Float64, Bool, String in the order and returns the first match.\n\n\n\n\n\n","category":"function"},{"location":"api/#Fortran90Namelists.readnml","page":"API Reference","title":"Fortran90Namelists.readnml","text":"readnml(filename::String; verbose=false)::Dict\n\nParse fortran namelist in given filename and returns data in nested dictionary structure\n\nNOTE: This parser has the following known limitations (which may be fixed in the future):\n\nCannot handle vector indexes ==> we should use sparsearrays\nCannot handle multidimensional arrays\nCannot handle complex numbers\nCannot handle ! ; # in strings\nCannot handle 1.0+0 exponential notation\nWill completely neglect comments\nWill completely neglect text outside of namelist delimiters\n\nThese limitations can easily be seen by running regression tests. Still, even with limited functionalites this should cover most common FORTRAN namelist usage.\n\n\n\n\n\n","category":"function"},{"location":"api/#Fortran90Namelists.writenml","page":"API Reference","title":"Fortran90Namelists.writenml","text":"writenml(filename::String, data::Dict; verbose=false)::String\n\nWrite nested dictionary structure as fortran namelist to a given filename\n\nNOTE: For a list of known limitations look at the help of readnml()\n\n\n\n\n\n","category":"function"},{"location":"api/#Private-API","page":"API Reference","title":"Private API","text":"","category":"section"},{"location":"api/","page":"API Reference","title":"API Reference","text":"The functions and types mentioned here are considered part of the private API and are not intended for direct use by users. They may be modified, moved, or removed without notice and are primarily meant for internal use within the package. Using them directly may result in unexpected errors or compatibility issues in your code.","category":"page"},{"location":"api/","page":"API Reference","title":"API Reference","text":"tokenizestr!\nupdate!","category":"page"},{"location":"api/#Fortran90Namelists.tokenizestr!","page":"API Reference","title":"Fortran90Namelists.tokenizestr!","text":"tokenizestr!(tk::Tokenizer, chars::Iterators.Stateful)\n\nTokenizes a Fortran string.\n\nThis function treats everything between a pair of delimiters (such as quotation marks) as a string. It respects escaped delimiters and updates the state of the tokenizer tk to reflect the position within the string.\n\n\n\n\n\n","category":"function"},{"location":"api/#Fortran90Namelists.update!","page":"API Reference","title":"Fortran90Namelists.update!","text":"update!(tk::Tokenizer, chars::Iterators.Stateful)\n\nUpdate the current characters in the tokenizer, tk.\n\nThis includes updating both the prior and current characters, and incrementing the index.\n\n\n\n\n\n","category":"function"},{"location":"developers/contributing/#Contributing","page":"Contributing","title":"Contributing","text":"","category":"section"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"Pages = [\"contributing.md\"]\nDepth = 2","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"Welcome! This document explains some ways you can contribute to Fortran90Namelists.","category":"page"},{"location":"developers/contributing/#Improve-the-documentation","page":"Contributing","title":"Improve the documentation","text":"","category":"section"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"Chances are, if you asked (or answered) a question on the community forum, then it is a sign that the documentation could be improved. Moreover, since it is your question, you are probably the best-placed person to improve it!","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"The docs are written in Markdown and are built using Documenter.jl. You can find the source of all the docs here.","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"If your change is small (like fixing typos or one or two sentence corrections), the easiest way to do this is via GitHub's online editor. (GitHub has help on how to do this.)","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"If your change is larger or touches multiple files, you will need to make the change locally and then use Git to submit a pull request. (See Contribute code to Fortran90Namelists below for more on this.)","category":"page"},{"location":"developers/contributing/#File-a-bug-report","page":"Contributing","title":"File a bug report","text":"","category":"section"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"Another way to contribute to Fortran90Namelists is to file bug reports.","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"Make sure you read the info in the box where you write the body of the issue before posting. You can also find a copy of that info here.","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"tip: Tip\nIf you're unsure whether you have a real bug, post on the community forum first. Someone will either help you fix the problem or let you know the most appropriate place to open a bug report.","category":"page"},{"location":"developers/contributing/#Contribute-code-to-Fortran90Namelists","page":"Contributing","title":"Contribute code to Fortran90Namelists","text":"","category":"section"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"Finally, you can also contribute code to Fortran90Namelists!","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"warning: Warning\nIf you do not have experience with Git, GitHub, and Julia development, the first steps can be a little daunting. However, there are lots of tutorials available online, including:GitHub\nGit and GitHub\nGit\nJulia package development","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"Once you are familiar with Git and GitHub, the workflow for contributing code to Fortran90Namelists is similar to the following:","category":"page"},{"location":"developers/contributing/#Step-1:-decide-what-to-work-on","page":"Contributing","title":"Step 1: decide what to work on","text":"","category":"section"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"The first step is to find an open issue (or open a new one) for the problem you want to solve. Then, before spending too much time on it, discuss what you are planning to do in the issue to see if other contributors are fine with your proposed changes. Getting feedback early can improve code quality and avoid time spent writing code that does not get merged into Fortran90Namelists.","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"tip: Tip\nAt this point, remember to be patient and polite; you may get a lot of comments on your issue! However, do not be afraid! Comments mean that people are willing to help you improve the code that you are contributing to Fortran90Namelists.","category":"page"},{"location":"developers/contributing/#Step-2:-fork-Fortran90Namelists","page":"Contributing","title":"Step 2: fork Fortran90Namelists","text":"","category":"section"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"Go to https://github.com/anchal-physics/Fortran90Namelists.jl and click the \"Fork\" button in the top-right corner. This will create a copy of Fortran90Namelists under your GitHub account.","category":"page"},{"location":"developers/contributing/#Step-3:-install-Fortran90Namelists-locally","page":"Contributing","title":"Step 3: install Fortran90Namelists locally","text":"","category":"section"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"Similar to Installation, open the Julia REPL and run:","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"using Pkg\nPkg.update()\nPkg.develop(\"Fortran90Namelists\")","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"Then the package will be cloned to your local machine. On *nix systems, the default path is ~/.julia/dev/Fortran90Namelists unless you modify the JULIA_DEPOT_PATH environment variable. If you're on Windows, this will be C:\\\\Users\\\\\\\\.julia\\\\dev\\\\Fortran90Namelists. In the following text, we will call it PKGROOT.","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"Go to PKGROOT, start a new Julia session, and run","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"using Pkg\nPkg.instantiate()","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"to instantiate the project.","category":"page"},{"location":"developers/contributing/#Step-4:-checkout-a-new-branch","page":"Contributing","title":"Step 4: checkout a new branch","text":"","category":"section"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"note: Note\nIn the following, replace any instance of GITHUB_ACCOUNT with your GitHub username.","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"The next step is to check out a development branch. In a terminal (or command prompt on Windows), run:","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"cd ~/.julia/dev/Fortran90Namelists\n\ngit remote add GITHUB_ACCOUNT https://github.com/GITHUB_ACCOUNT/Fortran90Namelists.jl.git\n\ngit checkout main\n\ngit pull\n\ngit checkout -b my_new_branch","category":"page"},{"location":"developers/contributing/#Step-5:-make-changes","page":"Contributing","title":"Step 5: make changes","text":"","category":"section"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"Now make any changes to the source code inside the ~/.julia/dev/Fortran90Namelists directory.","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"Make sure you:","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"Follow our Style Guide and Run JuliaFormatter.\nAdd tests and documentation for any changes or new features.","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"tip: Tip\nWhen you change the source code, you'll need to restart Julia for the changes to take effect. This is a pain, so install Revise.jl.","category":"page"},{"location":"developers/contributing/#Step-6a:-test-your-code-changes","page":"Contributing","title":"Step 6a: test your code changes","text":"","category":"section"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"To test that your changes work, run the Fortran90Namelists test-suite by opening Julia and running:","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"julia> cd(joinpath(DEPOT_PATH[1], \"dev\", \"Fortran90Namelists\"))\n\njulia> using Pkg\n\njulia> Pkg.activate(\".\")\n Activating new project at `~/.julia/dev/Fortran90Namelists`\n\njulia> Pkg.test()","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"warning: Warning\nRunning the tests might take a long time.","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"tip: Tip\nIf you are using Revise.jl, you can also run the tests by calling include:include(\"test/runtests.jl\")This can be faster if you want to re-run the tests multiple times.","category":"page"},{"location":"developers/contributing/#Step-6b:-test-your-documentation-changes","page":"Contributing","title":"Step 6b: test your documentation changes","text":"","category":"section"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"Open Julia, then run:","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"julia> cd(joinpath(DEPOT_PATH[1], \"dev\", \"Fortran90Namelists\", \"docs\"))\n\njulia> using Pkg\n\njulia> Pkg.activate(\".\")\n Activating new project at `~/.julia/dev/Fortran90Namelists/docs`\n\njulia> include(\"src/make.jl\")","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"After a while, a folder PKGROOT/docs/build will appear. Open PKGROOT/docs/build/index.html with your favorite browser, and have fun!","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"warning: Warning\nBuilding the documentation might take a long time.","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"tip: Tip\nIf there's a problem with the tests that you don't know how to fix, don't worry. Continue to step 5, and one of the Fortran90Namelists contributors will comment on your pull request, telling you how to fix things.","category":"page"},{"location":"developers/contributing/#Step-7:-make-a-pull-request","page":"Contributing","title":"Step 7: make a pull request","text":"","category":"section"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"Once you've made changes, you're ready to push the changes to GitHub. Run:","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"cd ~/.julia/dev/Fortran90Namelists\n\ngit add .\n\ngit commit -m \"A descriptive message of the changes\"\n\ngit push -u GITHUB_ACCOUNT my_new_branch","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"Then go to https://github.com/anchal-physics/Fortran90Namelists.jl/pulls and follow the instructions that pop up to open a pull request.","category":"page"},{"location":"developers/contributing/#Step-8:-respond-to-comments","page":"Contributing","title":"Step 8: respond to comments","text":"","category":"section"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"At this point, remember to be patient and polite; you may get a lot of comments on your pull request! However, do not be afraid! A lot of comments means that people are willing to help you improve the code that you are contributing to Fortran90Namelists.","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"To respond to the comments, go back to step 5, make any changes, test the changes in step 6, and then make a new commit in step 7. Your PR will automatically update.","category":"page"},{"location":"developers/contributing/#Step-9:-cleaning-up","page":"Contributing","title":"Step 9: cleaning up","text":"","category":"section"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"Once the PR is merged, clean-up your Git repository, ready for the next contribution!","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"cd ~/.julia/dev/Fortran90Namelists\n\ngit checkout main\n\ngit pull","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"note: Note\nIf you have suggestions to improve this guide, please make a pull request! It's particularly helpful if you do this after your first pull request because you'll know all the parts that could be explained better.","category":"page"},{"location":"developers/contributing/","page":"Contributing","title":"Contributing","text":"Thanks for contributing to Fortran90Namelists!","category":"page"},{"location":"troubleshooting/#Troubleshooting","page":"Troubleshooting","title":"Troubleshooting","text":"","category":"section"},{"location":"troubleshooting/","page":"Troubleshooting","title":"Troubleshooting","text":"Pages = [\"troubleshooting.md\"]\nDepth = 2","category":"page"},{"location":"troubleshooting/","page":"Troubleshooting","title":"Troubleshooting","text":"This page collects some possible errors you may encounter and trick how to fix them. If you have some questions about how to use this code, you are welcome to discuss with us.","category":"page"},{"location":"troubleshooting/","page":"Troubleshooting","title":"Troubleshooting","text":"If you have additional tips, please either report an issue or submit a PR with suggestions.","category":"page"},{"location":"troubleshooting/#Installation-problems","page":"Troubleshooting","title":"Installation problems","text":"","category":"section"},{"location":"troubleshooting/#Cannot-find-the-julia-executable","page":"Troubleshooting","title":"Cannot find the julia executable","text":"","category":"section"},{"location":"troubleshooting/","page":"Troubleshooting","title":"Troubleshooting","text":"Make sure you have Julia installed in your environment. Please download the latest stable version for your platform. If you are using a *nix system, the recommended way is to use Juliaup. If you do not want to install Juliaup or you are using other platforms that Julia supports, download the corresponding binaries. Then, create a symbolic link to the Julia executable. If the path is not in your $PATH environment variable, export it to your $PATH.","category":"page"},{"location":"troubleshooting/","page":"Troubleshooting","title":"Troubleshooting","text":"Some clusters, like Habanero, Comet, or Expanse, already have Julia installed as a module, you may just module load julia to use it. If not, either install by yourself or contact your administrator.","category":"page"},{"location":"troubleshooting/#Loading-Fortran90Namelists","page":"Troubleshooting","title":"Loading Fortran90Namelists","text":"","category":"section"},{"location":"troubleshooting/#Julia-compiles/loads-slow","page":"Troubleshooting","title":"Julia compiles/loads slow","text":"","category":"section"},{"location":"troubleshooting/","page":"Troubleshooting","title":"Troubleshooting","text":"First, we recommend you download the latest version of Julia. Usually, the newest version has the best performance.","category":"page"},{"location":"troubleshooting/","page":"Troubleshooting","title":"Troubleshooting","text":"If you just want Julia to do a simple task and only once, you could start the Julia REPL with","category":"page"},{"location":"troubleshooting/","page":"Troubleshooting","title":"Troubleshooting","text":"julia --compile=min","category":"page"},{"location":"troubleshooting/","page":"Troubleshooting","title":"Troubleshooting","text":"to minimize compilation or","category":"page"},{"location":"troubleshooting/","page":"Troubleshooting","title":"Troubleshooting","text":"julia --optimize=0","category":"page"},{"location":"troubleshooting/","page":"Troubleshooting","title":"Troubleshooting","text":"to minimize optimizations, or just use both. Or you could make a system image and run with","category":"page"},{"location":"troubleshooting/","page":"Troubleshooting","title":"Troubleshooting","text":"julia --sysimage custom-image.so","category":"page"},{"location":"troubleshooting/","page":"Troubleshooting","title":"Troubleshooting","text":"See Fredrik Ekre's talk for details.","category":"page"},{"location":"installation/#installation","page":"Installation guide","title":"Installation Guide","text":"","category":"section"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"Pages = [\"installation.md\"]\nDepth = 2","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"Here are the installation instructions for package Fortran90Namelists. If you have trouble installing it, please refer to our Troubleshooting page for more information.","category":"page"},{"location":"installation/#Install-Julia","page":"Installation guide","title":"Install Julia","text":"","category":"section"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"First, you should install Julia. We recommend downloading it from its official website. Please follow the detailed instructions on its website if you have to build Julia from source. Some computing centers provide preinstalled Julia. Please contact your administrator for more information in that case. Here's some additional information on how to set up Julia on HPC systems.","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"If you have Homebrew installed, open Terminal.app and type","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"brew install julia","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"to install it as a formula.","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"If you are also using macOS and want to install it as a prebuilt binary app, type","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"brew install --cask julia","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"instead.","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"If you want to install multiple Julia versions in the same operating system, a recommended way is to use a version manager such as juliaup. First, install juliaup. Then, run","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"juliaup add release\njuliaup default release","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"to configure the julia command to start the latest stable version of Julia (this is also the default value).","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"There is a short video introduction to juliaup made by its authors.","category":"page"},{"location":"installation/#Which-version-should-I-pick?","page":"Installation guide","title":"Which version should I pick?","text":"","category":"section"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"You can install the \"Current stable release\" or the \"Long-term support (LTS) release\".","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"The \"Current stable release\" is the latest release of Julia. It has access to newer features, and is likely faster.\nThe \"Long-term support release\" is an older version of Julia that has continued to receive bug and security fixes. However, it may not have the latest features or performance improvements.","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"For most users, you should install the \"Current stable release\", and whenever Julia releases a new version of the current stable release, you should update your version of Julia. Note that any code you write on one version of the current stable release will continue to work on all subsequent releases.","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"For users in restricted software environments (e.g., your enterprise IT controls what software you can install), you may be better off installing the long-term support release because you will not have to update Julia as frequently.","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"Versions higher than v1.3, especially v1.6, are strongly recommended. This package may not work on v1.0 and below. Since the Julia team has set v1.6 as the LTS release, we will gradually drop support for versions below v1.6.","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"Julia and Julia packages support multiple operating systems and CPU architectures; check this table to see if it can be installed on your machine. For Mac computers with M-series processors, this package and its dependencies may not work. Please install the Intel-compatible version of Julia (for macOS x86-64) if any platform-related error occurs.","category":"page"},{"location":"installation/#Install-Fortran90Namelists","page":"Installation guide","title":"Install Fortran90Namelists","text":"","category":"section"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"Now I am using macOS as a standard platform to explain the following steps:","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"Open Terminal.app, and type julia to start an interactive session (known as the REPL).\nRun the following commands and wait for them to finish:\njulia> using Pkg\n\njulia> Pkg.update()\n\njulia> Pkg.add(\"Fortran90Namelists\")\nRun\njulia> using Fortran90Namelists\nand have fun!\nWhile using, please keep this Julia session alive. Restarting might cost some time.","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"If you want to install the latest in-development (probably buggy) version of Fortran90Namelists, type","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"using Pkg\nPkg.update()\npkg\"add https://github.com/anchal-physics/Fortran90Namelists.jl\"","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"in the second step above.","category":"page"},{"location":"installation/#Update-Fortran90Namelists","page":"Installation guide","title":"Update Fortran90Namelists","text":"","category":"section"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"Please watch our GitHub repository for new releases. Once we release a new version, you can update Fortran90Namelists by typing","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"using Pkg\nPkg.update(\"Fortran90Namelists\")\nPkg.gc()","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"in the Julia REPL.","category":"page"},{"location":"installation/#Uninstall-and-reinstall-Fortran90Namelists","page":"Installation guide","title":"Uninstall and reinstall Fortran90Namelists","text":"","category":"section"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"Sometimes errors may occur if the package is not properly installed. In this case, you may want to uninstall and reinstall the package. Here is how to do that:","category":"page"},{"location":"installation/","page":"Installation guide","title":"Installation guide","text":"To uninstall, in a Julia session, run\njulia> using Pkg\n\njulia> Pkg.rm(\"Fortran90Namelists\")\n\njulia> Pkg.gc()\nPress ctrl+d to quit the current session. Start a new Julia session and reinstall Fortran90Namelists.","category":"page"},{"location":"developers/style-guide/#style","page":"Style Guide","title":"Style Guide","text":"","category":"section"},{"location":"developers/style-guide/","page":"Style Guide","title":"Style Guide","text":"This section describes the coding style rules that apply to our code and that we recommend you to use it also.","category":"page"},{"location":"developers/style-guide/","page":"Style Guide","title":"Style Guide","text":"In some cases, our style guide diverges from Julia's official Style Guide (Please read it!). All such cases will be explicitly noted and justified.","category":"page"},{"location":"developers/style-guide/","page":"Style Guide","title":"Style Guide","text":"Our style guide adopts many recommendations from the BlueStyle. Please read the BlueStyle before contributing to this package. If not following, your pull requests may not be accepted.","category":"page"},{"location":"developers/style-guide/","page":"Style Guide","title":"Style Guide","text":"info: Info\nThe style guide is always a work in progress, and not all Fortran90Namelists code follows the rules. When modifying Fortran90Namelists, please fix the style violations of the surrounding code (i.e., leave the code tidier than when you started). If large changes are needed, consider separating them into another pull request.","category":"page"},{"location":"developers/style-guide/#Formatting","page":"Style Guide","title":"Formatting","text":"","category":"section"},{"location":"developers/style-guide/#Run-JuliaFormatter","page":"Style Guide","title":"Run JuliaFormatter","text":"","category":"section"},{"location":"developers/style-guide/","page":"Style Guide","title":"Style Guide","text":"Fortran90Namelists uses JuliaFormatter as an auto-formatting tool.","category":"page"},{"location":"developers/style-guide/","page":"Style Guide","title":"Style Guide","text":"We use the options contained in .JuliaFormatter.toml.","category":"page"},{"location":"developers/style-guide/","page":"Style Guide","title":"Style Guide","text":"To format your code, cd to the Fortran90Namelists directory, then run:","category":"page"},{"location":"developers/style-guide/","page":"Style Guide","title":"Style Guide","text":"using Pkg\nPkg.add(\"JuliaFormatter\")\nusing JuliaFormatter: format\nformat(\"docs\")\nformat(\"src\")\nformat(\"test\")","category":"page"},{"location":"developers/style-guide/","page":"Style Guide","title":"Style Guide","text":"info: Info\nA continuous integration check verifies that all PRs made to Fortran90Namelists have passed the formatter.","category":"page"},{"location":"developers/style-guide/","page":"Style Guide","title":"Style Guide","text":"The following sections outline extra style guide points that are not fixed automatically by JuliaFormatter.","category":"page"},{"location":"developers/style-guide/#Use-the-Julia-extension-for-Visual-Studio-Code","page":"Style Guide","title":"Use the Julia extension for Visual Studio Code","text":"","category":"section"},{"location":"developers/style-guide/","page":"Style Guide","title":"Style Guide","text":"Please use Visual Studio Code with the Julia extension to edit, format, and test your code. We do not recommend using other editors to edit your code for the time being.","category":"page"},{"location":"developers/style-guide/","page":"Style Guide","title":"Style Guide","text":"This extension already has JuliaFormatter integrated. So to format your code, follow the steps listed here.","category":"page"},{"location":"","page":"Home","title":"Home","text":"CurrentModule = Fortran90Namelists","category":"page"},{"location":"#Fortran90Namelists","page":"Home","title":"Fortran90Namelists","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Documentation for Fortran90Namelists.","category":"page"},{"location":"","page":"Home","title":"Home","text":"See the Index for the complete list of documented functions and types.","category":"page"},{"location":"","page":"Home","title":"Home","text":"The code is hosted on GitHub, with some continuous integration services to test its validity.","category":"page"},{"location":"","page":"Home","title":"Home","text":"This repository is created and maintained by @anchal-physics. You are very welcome to contribute.","category":"page"},{"location":"#Installation","page":"Home","title":"Installation","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"The package can be installed with the Julia package manager. From the Julia REPL, type ] to enter the Pkg REPL mode and run:","category":"page"},{"location":"","page":"Home","title":"Home","text":"pkg> add Fortran90Namelists","category":"page"},{"location":"","page":"Home","title":"Home","text":"Or, equivalently, via the Pkg API:","category":"page"},{"location":"","page":"Home","title":"Home","text":"import Pkg; Pkg.add(\"Fortran90Namelists\")","category":"page"},{"location":"#Documentation","page":"Home","title":"Documentation","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"STABLE — documentation of the most recently tagged version.\nDEV — documentation of the in-development version.","category":"page"},{"location":"#Project-status","page":"Home","title":"Project status","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"The package is tested against, and being developed for, Julia 1.6 and above on Linux, macOS, and Windows.","category":"page"},{"location":"#Questions-and-contributions","page":"Home","title":"Questions and contributions","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Contributions are very welcome, as are feature requests and suggestions. Please open an issue if you encounter any problems. The Contributing page has a few guidelines that should be followed when opening pull requests and contributing code.","category":"page"},{"location":"#Manual-outline","page":"Home","title":"Manual outline","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Pages = [\n \"installation.md\",\n \"developers/contributing.md\",\n \"developers/style-guide.md\",\n \"troubleshooting.md\",\n]\nDepth = 3","category":"page"},{"location":"#Library-outline","page":"Home","title":"Library outline","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Pages = [\"api.md\"]","category":"page"},{"location":"#main-index","page":"Home","title":"Index","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Pages = [\"api.md\"]","category":"page"}] } diff --git a/dev/troubleshooting/index.html b/dev/troubleshooting/index.html index bd4dd7b..9d41abc 100644 --- a/dev/troubleshooting/index.html +++ b/dev/troubleshooting/index.html @@ -1,2 +1,2 @@ -Troubleshooting · Fortran90Namelists.jl

    Troubleshooting

    This page collects some possible errors you may encounter and trick how to fix them. If you have some questions about how to use this code, you are welcome to discuss with us.

    If you have additional tips, please either report an issue or submit a PR with suggestions.

    Installation problems

    Cannot find the julia executable

    Make sure you have Julia installed in your environment. Please download the latest stable version for your platform. If you are using a *nix system, the recommended way is to use Juliaup. If you do not want to install Juliaup or you are using other platforms that Julia supports, download the corresponding binaries. Then, create a symbolic link to the Julia executable. If the path is not in your $PATH environment variable, export it to your $PATH.

    Some clusters, like Habanero, Comet, or Expanse, already have Julia installed as a module, you may just module load julia to use it. If not, either install by yourself or contact your administrator.

    Loading Fortran90Namelists

    Julia compiles/loads slow

    First, we recommend you download the latest version of Julia. Usually, the newest version has the best performance.

    If you just want Julia to do a simple task and only once, you could start the Julia REPL with

    julia --compile=min

    to minimize compilation or

    julia --optimize=0

    to minimize optimizations, or just use both. Or you could make a system image and run with

    julia --sysimage custom-image.so

    See Fredrik Ekre's talk for details.

    +Troubleshooting · Fortran90Namelists.jl

    Troubleshooting

    This page collects some possible errors you may encounter and trick how to fix them. If you have some questions about how to use this code, you are welcome to discuss with us.

    If you have additional tips, please either report an issue or submit a PR with suggestions.

    Installation problems

    Cannot find the julia executable

    Make sure you have Julia installed in your environment. Please download the latest stable version for your platform. If you are using a *nix system, the recommended way is to use Juliaup. If you do not want to install Juliaup or you are using other platforms that Julia supports, download the corresponding binaries. Then, create a symbolic link to the Julia executable. If the path is not in your $PATH environment variable, export it to your $PATH.

    Some clusters, like Habanero, Comet, or Expanse, already have Julia installed as a module, you may just module load julia to use it. If not, either install by yourself or contact your administrator.

    Loading Fortran90Namelists

    Julia compiles/loads slow

    First, we recommend you download the latest version of Julia. Usually, the newest version has the best performance.

    If you just want Julia to do a simple task and only once, you could start the Julia REPL with

    julia --compile=min

    to minimize compilation or

    julia --optimize=0

    to minimize optimizations, or just use both. Or you could make a system image and run with

    julia --sysimage custom-image.so

    See Fredrik Ekre's talk for details.