As noted above, the frequency of mean and instantaneous output is
controlled by the variables noout, ntout and ntouti
in the input namelist driverdata in the run script.
No instantaneous or mean output can be specified by setting ntouti=0 or
ntout=0, respectively.
The user can make additional adjustments as to what is
output by making code changes to output.f90 found in /src. Some of the adjustments
possible include:
defVar in the subroutine defOutVars located near the top of
the source file output.f90.defVar to
the subroutine defOutVars in output.f90. The subroutine syntax is
defVar(longvarname,var), where var is the variable to be included in
the output and longvarname is a string describing it. The first word
of longvarname is split off and used as the variable name in the netCDF file or GrADS
data descriptor file, respectively. For netCDF output the first substring of longvarname
in brackets is used as the ``units'' attribute to the output variable.
Example:
Call defVar('diffT1 T1 diffusion [K/s]',dfsT1)
requests to include the fortran
array named dfsT1. It's name will be diffT1, the description string is
``T1 diffusion [K/s]'' and, for netCDF, the units are ``K/s'':
The output routines automatically allocate storage for the mean computation. No array
size adjustments are necessary. The output routines use pointers and a linked list
to access the array data so the array has to be declared with a Fortran-90 ``TARGET''
attribute. This means that you may have to add the
TARGET keyword in the variable declaration (usually in /src/qtcmmod.f90).
Furthermore, the array has to be in the scope of the defOutVars routine so you may have to
add it in the list of used modules in defOutVars. You may use the already existing
variables as a guidance. Usually only defOutVars needs to be adjusted. The calling
sequence is slightly different for netCDF and GrADS binary output (see section 3.2.1).
By default, output is written every ntout days to the three files described
above. However, the code allows the user to specify a different output
frequency and unit directly for any particular variable in subroutine outpinst
or outpmean by simply using different argument values in calling
subroutines outpi and outpm. Variables ntout and/or ntouti
can also be specified as a user-control parameter in driver.in by editing the execution
shell scripts.
Note: The minimum value for ntout is one day, so if you need to output
more often than a day, you have to call the output routines from within
the atmosphere-land coupling loop in subroutine qtcm.