diff --git a/docs/ww3_doxy_tmpl.md b/docs/ww3_doxy_tmpl.md index 34750b7cf..067159a03 100644 --- a/docs/ww3_doxy_tmpl.md +++ b/docs/ww3_doxy_tmpl.md @@ -1,80 +1,748 @@ -# WAVEWATCH III Doxygen Header Reference +# WAVEWATCH III - Doxygen Reference + +This document contains the needed information to mark-up WW3 source files with +doxygen tags. The main task for this is adding [headers](#header-templates) for +each Fortran90 component (`FILE`,`MODULE`,`SUBROUTINE`,`FUNCTION`,`PROGRAM`). [Examples](#header-examples) +are provided with input from existing code, and the html output shown as it will look from the browser. Additionally, +[inline](#inlining-example) documentation for `MODULE` variables is required (these variables are listed after the +`MODULE` declaration statement, but before the `CONTAINS` statement). Lastly, the `shell` [commands](#commands) for +building the doxygen documentation and displaying it in a browser are also given. +
+
+
+ + +## Contents +* [Header Templates](#header-templates) + * [FILE](#file), [MODULE](#module), [SUBROUTINE](#subroutine), +[FUNCTION](#function), [PROGRAM](#program) +* [Header Examples](#header-examples) + * [FILE](#file-example), [MODULE](#module-example), [SUBROUTINE](#subroutine-example), +[FUNCTION](#function-example), [PROGRAM](#program-example) +* [Inlining Example](#inlining-example) + * [MODULE variables](#module-variables) +* [Commands](#commands) +

-_Doxygen markup headers to be placed **directly above** the respective Fortran code units._ -### FILE + +## Header Templates +These header should be placed directly *above* the Fortran90 component declaration. + +#### FILE ``` -!> @file -!> @brief +!> @file +!> @brief +!> +!> @author +!> @date !> -!> @author @date ``` -### MODULE -Module has two parts: a **header**, and **inline documentation** for module variables. -###### header + +#### MODULE ``` -!> @brief # contents of '1. Purpose' from original header +!> +!> @brief !> -!> @details +!> @details +!> +!> @author +!> @date +!> +!> @copyright Copyright 2009-2022 National Weather Service (NWS), +!> National Oceanic and Atmospheric Administration. All rights +!> reserved. WAVEWATCH III is a trademark of the NWS. +!> No unauthorized use without permission. !> -!> @author @date - # ALL module variables documented -module_var_1 !< - ... -!> # multiples lines can be used -!> # if needed. -module_var_i - ... -module_var_N !< ``` -###### inline documentation -*ALL* module variables need to be documented. To accomodate this, put each variable on it own line. -The documentation can go directly above or to the right of the variable declaration. Multiple lines -can be used. + +#### SUBROUTINE ``` -var_1 !< - . - . - !< -var_N !< +!> +!> @brief +!> +!> @details +!> +!> @param[inout] +!> +!> @author +!> @date +!> ``` -### PROGRAM + +#### FUNCTION ``` -!> @brief # contents of '1. Purpose' from original header !> -!> @details # contents of '2. Method' from original header -!> -!> @author @date +!> @brief +!> +!> @details +!> +!> @param +!> @returns +!> +!> @author +!> @date +!> ``` -### SUBROUTINE + +#### PROGRAM ``` -!> @brief # contents of '1. Purpose' from original header !> -!> @details # contents of '2. Method' from original header +!> @brief +!> +!> @details +!> +!> @author +!> @date +!> +!> @copyright Copyright 2009-2022 National Weather Service (NWS), +!> National Oceanic and Atmospheric Administration. All rights +!> reserved. WAVEWATCH III is a trademark of the NWS. +!> No unauthorized use without permission. !> -!> @param[inout] # specify: [in], [out], [inout], or just `@param`. -!> @author @date ``` +--- +[\[Return to Contents\]](#contents) + +
+
+ -### FUNCTION + +## Header Examples +#### FILE Example +```F90 +!> @file +!> @brief Contains driver program for multi-grid, W3MLTI. +!> +!> @author H. L. Tolman @date 29-May-2009 + +#include "w3macros.h" +!/ ------------------------------------------------------------------- / +! ``` -!> @brief -!> -!> @details +--- +[\[Return to Contents\]](#contents) +
+
+ + +#### MODULE Example +```F90 +!> +!> @brief Mean wave parameter computation for case without input and +!> dissipation. +!> +!> @author H. L. Tolman @date 29-May-2009 !> -!> @param -!> @returns +!> @copyright Copyright 2009-2022 National Weather Service (NWS), +!> National Oceanic and Atmospheric Administration. All rights +!> reserved. WAVEWATCH III is a trademark of the NWS. +!> No unauthorized use without permission. +!> +!/ ------------------------------------------------------------------- / + MODULE W3SRC0MD +!/ +!/ +-----------------------------------+ +!/ | WAVEWATCH III NOAA/NCEP | +!/ | H. L. Tolman | +!/ | FORTRAN 90 | +!/ | Last update : 29-May-2009 | +!/ +-----------------------------------+ +!/ +!/ 05-Jul-2006 : Origination. ( version 3.09 ) +!/ 29-May-2009 : Preparing distribution version. ( version 3.14 ) +!/ +!/ Copyright 2009 National Weather Service (NWS), +!/ National Oceanic and Atmospheric Administration. All rights +!/ reserved. WAVEWATCH III is a trademark of the NWS. +!/ No unauthorized use without permission. +!/ +! 1. Purpose : +! +! Mean wave parameter computation for case without input and +! dissipation. +! +! 2. Variables and types : +! +! 3. Subroutines and functions : +! +! Name Type Scope Description +! ---------------------------------------------------------------- +! W3SPR0 Subr. Public Mean parameters from spectrum. +! ---------------------------------------------------------------- +! +! 4. Subroutines and functions used : +! +! Name Type Module Description +! ---------------------------------------------------------------- +! W3SPR0 Subr. Public Mean parameters from spectrum. +! ---------------------------------------------------------------- +! +! 4. Subroutines and functions used : +! +! Name Type Module Description +! ---------------------------------------------------------------- +! STRACE Subr. W3SERVMD Subroutine tracing. ( !/S ) +! ---------------------------------------------------------------- +! +! 5. Remarks : +! +! 6. Switches : +! +! !/S Enable subroutine tracing. +! !/T Test output, see subroutines. +! +! 7. Source code : +! +!/ ------------------------------------------------------------------- / +!/ + PUBLIC +``` +--- +[\[Return to Contents\]](#contents) +
+
+ + +#### SUBROUTINE Example +```F90 +!> @brief Interface to watershed partitioning routines. +!> +!> @details Watershed Algorithm of Vincent and Soille, 1991, +!> implemented by Barbara Tracy (USACE/ERDC) for NOAA/NCEP. +!> +!> This version of W3PART contains alternate Met Office partitioning +!> methods, selected at runtime using the \c PTMETH namlist variable: +!> -# Standard WW3 partitioning, as per original method described +!> by Barbary Tracy. +!> -# Met Office extended partitioning using split-partitions +!> (removes the wind sea part of any swell partiton and combines +!> with total wind sea partition). +!> -# Met Office "wave systems" - no classification or combining of +!> wind sea partitions. All partitions output and ordered simply +!> by wave height. +!> -# Classic, simple wave age based partitioning generating +!> a single wind sea and swell partition. +!> -# 2-band partitioning; produces hi and low freqency band partitions +!> using a user-defined cutoff frequency (\c PTFCUT). +!> +!> @remarks +!> - \c DIMXP will always be of size 2 when using \c PTMETH 4 or 5. +!> +!> - To achieve minimum storage but guaranteed storage of all +!> partitions DIMXP = ((NK+1)/2) * ((NTH-1)/2) +!> unless specified otherwise below. +!> +!> @param[in] SPEC 2-D spectrum E(f,theta) +!> @param[in] UABS Wind speed +!> @param[in] UDIR Wind direction +!> @param[in] DEPTH Water depth +!> @param[in] WN Wavenumebers for each frequency +!> @param[out] NP Number of partitions found +!> (-1=Spectrum without minumum energy; +!> 0=Spectrum with minumum energy but no partitions) +!> @param[out] XP Parameters describing partitions. +!> Entry '0' contains entire spectrum +!> @param[in] DIMXP Second dimension of XP +!> +!> @author Barbara Tracey, H. L. Tolman, M. Szyszka, Chris Bunney +!> @date 23 Jul 2018 +!> + SUBROUTINE W3PART ( SPEC, UABS, UDIR, DEPTH, WN, NP, XP, DIMXP ) +!/ +!/ +-----------------------------------+ +!/ | WAVEWATCH III USACE/NOAA | +!/ | Barbara Tracy | +!/ | H. L. Tolman | +!/ | FORTRAN 90 | +!/ | Last update : 02-Dec-2010 | +!/ +-----------------------------------+ +!/ +!/ 28-Oct-2006 : Origination. ( version 3.10 ) +!/ 02-Dec-2010 : Adding a mapping PMAP between ( version 3.14 ) +!/ original and combined partitions +!/ ( M. Szyszka ) +!/ +! 1. Purpose : +! +! Interface to watershed partitioning routines. +! +! 2. Method : +! +! Watershed Algorithm of Vincent and Soille, 1991, implemented by +! Barbara Tracy (USACE/ERDC) for NOAA/NCEP. +! +! 3. Parameters : +! +! Parameter list +! ---------------------------------------------------------------- +! SPEC R.A. I 2-D spectrum E(f,theta). +! UABS Real I Wind speed. +! UDIR Real I Wind direction. +! DEPTH Real I Water depth. +! WN R.A. I Wavenumebers for each frequency. +! NP Int. O Number of partitions. +! -1 : Spectrum without minumum energy. +! 0 : Spectrum with minumum energy. +! but no partitions. +! XP R.A. O Parameters describing partitions. +! Entry '0' contains entire spectrum. +! DIMXP Int. I Second dimension of XP. +! ---------------------------------------------------------------- +! +! 4. Subroutines used : +! +! Name Type Module Description +! ---------------------------------------------------------------- +! STRACE Sur. W3SERVMD Subroutine tracing. +! ---------------------------------------------------------------- +! +! 5. Called by : +! +! 6. Error messages : +! +! 7. Remarks : +! +! - To achieve minimum storage but guaranteed storage of all +! partitions DIMXP = ((NK+1)/2) * ((NTH-1)/2) unless specified +! otherwise below. +! +! This version of W3PART contains alternate Met Office partitioning +! methods, selected at runtime using the PTMETH namlist variable: +! 1) Standard WW3 partitioning +! 2) Met Office extended partitioning using split-partitions +! (removes the wind sea part of any swell partiton and combines +! with total wind sea partition). +! 3) Met Office "wave systems" - no classification or combining of +! wind sea partitions. All partitions output and ordered simply +! by wave height. +! 4) Classic, simple wave age based partitioning generating +! a single wind sea and swell partition. [DIMXP = 2] +! 5) 2-band partitioning; produces hi and low freqency band partitions +! using a user-defined cutoff frequency (PTFCUT). [DIMXP = 2] +! +! (Chris Bunney, UK Met Office, Jul 2018) +! +! 8. Structure : +! +! 9. Switches : +! +! !/S Enable subroutine tracing. +! !/T Enable test output +! +! +! 10. Source code : +! +!/ ------------------------------------------------------------------- / +!/ +``` +--- +[\[Return to Contents\]](#contents) +
+
+ + +#### FUNCTION Example +```F90 +!> +!> @brief Perform interpolation from regular to curvilinear grid +!> for a scalar field. +!> +!> @details This function uses bilinear interpolation to +!> estimate the value of a function f at point (x,y). f is assumed +!> to be on a regular grid, with the grid x values specified by +!> xarray with dimension x_len and the grid y values specified by +!> yarray with dimension y_len. +!> +!> @param X_LEN Dimension in X +!> @param XARRAY 1D array for Longitudes +!> @param Y_LEN Dimension in Y +!> @param YARRAY 1D array for Latitudes +!> @param FUNC 1D Field +!> @param X Long for point in the curv grid +!> @param Y Lat for point in the curv grid +!> @param DELTA Threshold to determine if two values are equal +!> +!> @returns INTERPOLATE +!> +!> @author H. L. Tolman @date 25-Jul-2019 +!> + REAL FUNCTION INTERPOLATE(X_LEN,XARRAY,Y_LEN,YARRAY,FUNC, & + X,Y,DELTA) + X,Y,DELTA) +!/ +!/ +-----------------------------------+ +!/ | WAVEWATCH III NOAA/NCEP | +!/ | H. L. Tolman | +!/ | FORTRAN 90 | +!/ | Last update : 25-July-2019 | +!/ +-----------------------------------+ +!/ +!/ (R. Padilla-Hernandez, EMC/NOAA) +!/ +!/ 29-July-2019 : ( version 7.13 ) +!/ +! 1. Purpose : +! +! Perform interpolation from regular to curvilinear grid for a +! scalar field. THIS FUNCTION USES BILINEAR INTERPOLATION TO +! ESTIMATE THE VALUE OF A FUNCTION F AT POINT (X,Y) F IS ASSUMED +! TO BE ON A REGULAR GRID, WITH THE GRID X VALUES SPECIFIED BY +! XARRAY WITH DIMENSION X_LEN AND THE GRID Y VALUES SPECIFIED BY +! YARRAY WITH DIMENSION Y_LEN +! +! 2. Parameters : +! +! Parameter list +! ---------------------------------------------------------------- +! X_LEN Int. Dimension in X +! XARRAY Int. 1D array for Longitudes +! Y_LEN Int. Dimension in Y +! YARRAY Int. 1D array for Latitudes +! FUNC Int. 1D Field +! X,Y Real Long-Lat for point in the curv grid +! DELTA Real Threshold to determine if two values are equal +! ---------------------------------------------------------------- +! +! Internal parameters +! ---------------------------------------------------------------- +! INX Int. Index in X on the rectiliniear grid that is +! closest to, but less than, the given value for a +! point in the curvilinear grid. +! JNX Int. Idem INX for for Y. +! X1,Y1 Real (Long, Lat) left-bottom corner for the square in +! regular grid, where the given value for the point +! in the curvilinear grid lies +! X2,Y2 Real (Long, Lat) right-upper corner for the square in +! regular grid, where the given value for the point +! in the curvilinear grid lies +! ---------------------------------------------------------------- +! +! 3. Subroutines used : +! +! Name Type Module Description +! ---------------------------------------------------------------- +! XYCURVISEARCH Func. wmupdtmd Look for indexes in 1D array. +! ---------------------------------------------------------------- +! +! 4. Called by : +! +! Main program in which it is contained. + +! Main program in which it is contained. +! +! 5. Error messages : +! +! None. +! +! 6. Remarks : +! +! - +! +! 7. Structure : +! +! See source code. +! +! 8. Switches : +! +! - +! +``` +--- +[\[Return to Contents\]](#contents) +
+
+ + +#### PROGRAM Example +```F90 +!> @brief Preprocessing of input data. +!> +!> @details Pre-processing of the input water level, current, wind, ice +!> fields, momentum and air density, as well as assimilation data +!> for the generic shell W3SHEL (ww3_shel.ftn). +!> +!> @author H. L. Tolman +!> @date 22-Mar-2021 !> -!> @author @date +!> @copyright Copyright 2009-2022 National Weather Service (NWS), +!> National Oceanic and Atmospheric Administration. All rights +!> reserved. WAVEWATCH III is a trademark of the NWS. +!> No unauthorized use without permission. +! + PROGRAM W3PREP +!/ +!/ +-----------------------------------+ +!/ | WAVEWATCH III NOAA/NCEP | +!/ | H. L. Tolman | +!/ | A. Chawla | +!/ | FORTRAN 90 | +!/ | Last update : 22-Mar-2021 | +!/ +-----------------------------------+ +!/ +!/ 14-Jan-1999 : Final FORTRAN 77 ( version 1.18 ) +!/ 18-Jan-2000 : Upgrade to FORTRAN 90 ( version 2.00 ) +!/ 11-Jan-2001 : Flat grid option added ( version 2.06 ) +!/ 17-Jul-2001 : Clean-up ( version 2.11 ) +!/ 24-Jan-2002 : Add data for data assimilation. ( version 2.17 ) +!/ 30-Apr-2002 : Fix 'AI' bug for 1-D fields. ( version 2.20 ) +!/ 24-Apr-2003 : Fix bug for NDAT = 0 in data. ( version 3.03 ) +!/ 24-Dec-2004 : Multiple grid version. ( version 3.06 ) +!/ 28-Jun-2006 : Adding file name preamble. ( version 3.09 ) +!/ 25-Sep-2007 : Switch header of file on or off, ( version 3.13 ) +!/ Times to file (!/O15) (A. Chawla) +!/ 29-May-2009 : Preparing distribution version. ( version 3.14 ) +!/ 30-Oct-2009 : Implement run-time grid selection. ( version 3.14 ) +!/ (W. E. Rogers & T. J. Campbell, NRL) +!/ 30-Oct-2009 : Implement curvilinear grid type. ( version 3.14 ) +!/ (W. E. Rogers & T. J. Campbell, NRL) +!/ 15-May-2010 : Add ISI (icebergs and sea ice). ( version 3.14.4 ) +!/ 29-Oct-2010 : Implement unstructured grids ( version 3.14.4 ) +!/ (A. Roland and F. Ardhuin) +!/ 06-Dec-2010 : Change from GLOBAL (logical) to ICLOSE (integer) to +!/ specify index closure for a grid. ( version 3.14 ) +!/ (T. J. Campbell, NRL) +!/ 1-Apr-2011 : Fix bug GLOBX forcing with unst. ( version 3.14.4 ) +!/ 19-Sep-2011 : Fix bug prep forcing with unst. ( version 4.04 ) +!/ 26-Dec-2012 : Modified obsolete declarations. ( version 4.OF ) +!/ 3-Mar-2013 : Allows for longer input file name ( version 4.09 ) +!/ 11-Nov-2013 : Allows for input binary files to be of WAVEWATCH +!/ type (i.e. accounts for the header) ( version 4.13 ) +!/ 20-Jan-2017 : Update to new W3GSRUMD APIs ( version 6.02 ) +!/ 22-Mar-2021 : Add momentum and air density ( version 7.13 ) +!/ +!/ Copyright 2009-2012 National Weather Service (NWS), +!/ National Oceanic and Atmospheric Administration. All rights +!/ reserved. WAVEWATCH III is a trademark of the NWS. +!/ No unauthorized use without permission. +!/ +! 1. Purpose : +! +! Pre-processing of the input water level, current, wind, ice +! fields, momentum and air density, as well as assimilation data +! for the generic shell W3SHEL (ww3_shel.ftn). +! +! 2. Method : +! +! See documented input file. +! +! 3. Parameters : +! +! Local parameters. +! ---------------------------------------------------------------- +! NDSI Int. Input unit number ("ww3_prep.inp"). +! NDSLL Int. Unit number(s) of long-lat file(s) +! NDSF I.A. Unit number(s) of input file(s). +! NDSDAT Int. Unit number for output data file. +! IFLD Int. Integer input type. +! ITYPE Int. Integer input 'format' type. +! NFCOMP Int. Number of partial input to be processed. +! FLTIME Log. Time flag for input fields, if false, single +! field, time read from NDSI. +! IDLALL Int. Layout indicator used by INA2R. + +! IDFMLL Int. Id. FORMAT indicator. | +! FORMLL C*16 Id. FORMAT. | Long-lat +! FROMLL C*4 'UNIT' / 'NAME' indicator | file(s) +! NAMELL C*65 Name of long-lat file(s) + +! IDLAF I.A. + +! IDFMF I.A. | +! FORMLL C*16 Id. FORMAT. | Long-lat +! FROMLL C*4 'UNIT' / 'NAME' indicator | file(s) +! NAMELL C*65 Name of long-lat file(s) + +! IDLAF I.A. + +! IDFMF I.A. | +! FORMF C.A. | Idem. fields file(s) +! FROMF C*4 | +! NAMEF C*65 + +! FORMT C.A. Format or time in field. +! XC R.A. Components of input vector field or first +! input scalar field +! YC R.A. Components of input vector field or second +! input scalar field +! FX,FY R.A. Output fields. +! ACC Real Required interpolation accuracy. +! ---------------------------------------------------------------- +! +! 4. Subroutines used : +! +! Name Type Module Description +! ---------------------------------------------------------------- +! W3NMOD Subr. W3GDATMD Set number of model. +! W3SETG Subr. Id. Point to selected model. +! W3NDAT Subr. W3WDATMD Set number of model for wave data. +! W3SETW Subr. Id. Point to selected model for wave data. +! W3NOUT Subr. W3ODATMD Set number of model for output. +! W3SETO Subr. Id. Point to selected model for output. +! ITRACE Subr. W3SERVMD Subroutine tracing initialization. +! STRACE Subr. Id. Subroutine tracing. +! NEXTLN Subr. Id. Get next line from input filw +! EXTCDE Subr. Id. Abort program as graceful as possible. +! STME21 Subr. W3TIMEMD Convert time to string. +! INAR2R Subr. W3ARRYMD Read in an REAL array. +! INAR2I Subr. Id. Read in an INTEGER array. +! PRTBLK Subr. Id. Print plot of array. +! W3IOGR Subr. W3IOGRMD Reading/writing model definition file. +! W3FLDO Subr. W3FLDSMD Opening of WAVEWATCH III generic shell +! data file. +! W3FLDP Subr. Id. Prepare interp. from arbitrary grid. +! W3FLDG Subr. Id. Reading/writing shell input data. +! W3FLDD Subr. Id. Reading/writing shell assim. data. +! W3GSUC Func. W3GSRUMD Create grid-search-utility object +! W3GSUD Subr. W3GSRUMD Destroy grid-search-utility object +! W3GRMP Func. W3GSRUMD Compute interpolation weights +! ---------------------------------------------------------------- +! +! 5. Called by : +! +! None, stand-alone program. +! +! 6. Error messages : +! +! - Checks on files and reading from file. +! - Checks on validity of input parameters. +! +! 7. Remarks : +! +! - Input fields need to be continuous in longitude and latitude. +! - Longitude - latitude grid (Section 4.a) : program attempts to +! detect closure type (ICLO) using longitudes of the grid. Thus, +! it does not allow the user to specify the closure type, and so +! tripole closure is not supported. +! - Grid(s) from file (Section 4.a) : program reads logical variable +! CLO(J) from .inp file. Thus, it does not allow the user to +! specify more than two closure type (SMPL or NONE), and so +! tripole closure is not supported. + +! 8. Structure : +! +! ---------------------------------------------------- +! 1.a Number of models. +! ( W3NMOD , W3NOUT , W3SETG , W3SETO ) +! b I-O setup. +! c Print heading(s). +! 2. Read model definition file. ( W3IOGR ) +! 3.a Read major types from input file. +! b Check major types. +! c Additional input format types and time. +! 4. Prepare interpolation. +! a Longitude - latitude grid +! b Grid(s) from file. ( W3FLDP ) +! c Initialize fields. +! d Input location and format. +! 5 Prepare input and output files. +! a Open input file +! b Open and prepare output file ( W3FLDO ) +! 6 Until end of file +! a Read new time and fields +! b Interpolate fields +! c Write fields ( W3FLDG ) +! ---------------------------------------------------- +! +! 9. Switches : +! +! !/WNT0 = !/WNT1 +! !/WNT1 Correct wind speeds to (approximately) conserve the wind +! speed over the interpolation box. +! !/WNT2 Id. energy (USE ONLY ONE !) +! !/CRT1 Like !/WNT1 for currents. +! !/CRT2 Like !/WNT2 for currents. +! +! !/O3 Additional output in fields processing loop. +! !/O15 Generate file with the times of the processed fields. +! +! !/S Enable subroutine tracing. +! !/T Enable test output, +! !/T1 Full interpolation data. +! !/T1a Echo of lat-long data in type Fn +! !/T2 Full input data. +! !/T3 Print-plot of output data. +! +! !/NCO NCEP NCO modifications for operational implementation. +! +! 10. Source code : +! +!/ ------------------------------------------------------------------- / +``` +--- +[\[Return to Contents\]](#contents) +
+
+
+ + +## Inlining Example +Module variables, which occur between the keywords `MODULE` and `CONTAINS`, must be declared individually and have an inline +doxygen comment for documentation. Local variables (in SUBROUTINE, FUNCTION, PROGRAM) are **not** documented with a doxygen comment. + +#### MODULE variables +Unlike the headers, no doxygen tags are needed for inline documentation. Instead you include `!<` followed by the documentation directly +after the variable declaration. If more than one line is needed, you can continue to put additional `!<` on blank lines that follow with +the rest of the documentation. + +```F90 + +module m_constants +!------------------------------------------------------------------------------ +! +! physical constants +! +real grav !< gravitational acceleration +real sqrtg !< square root of grav +real gsq !< square of grav +real nu !< kinematic viscosity of water +! +real d_water !< density of water +real d_air !< density of air +! +! mathematical constants +! +real pi !< circular constant, 3.1415... +real pi2 !< 2*pi +real pih !< pi/2 +real dera !< conversion from degrees to radians +real rade !< conversion from radians to degrees +real expmin !< min argument for exp. function to avoid underflow +real expmax !< max argument for exp. function to avoid overflow +real sqrt2 !< square root of 2 ~ 1.41 +! +contains +! + +!------------------------------------------------------------------------------ ``` +--- +[\[Return to Contents\]](#contents) +
+
+
+ + +## Commands +#### Build doxygen documentation +From the commandline, issue the following command from the WW3 root directory to build the doxygen documentation +```bash +doxygen ./docs/Doxyfile.in +``` +_Note: use doxygen version 1.8.17_. + +
+ +#### Display documentation in browser +The html output can be displayed in a browser by issuing this command from the WW3 root directory +```bash +firefox ./docs/html/index.html +``` +Firefox is used here as an example, but can be the browser of your choice. + +--- +[\[Return to Contents\]](#contents) +
+
-### Optional tags -* Some of the more relevant tags that might be included: `@remark`, `@attention`, `@warning`, `@example`, - `@code`, `@cite`, `@copyright`. -* The complete list of tags: [Doxygen Special Commands](https://www.doxygen.nl/manual/commands.html).