This is part of the labels / documentation for <a href='http://jcm.chooseclimate.org'>Java Climate Model</a><hr/>

#layoutpanel		§General options for JCM setup and panel layout £^interacs £^menopts

#layoutmenu		§Choose 1, 2, 4 or 9 panels, or 5, 12 or 16 small panels plus one big one in the middle (e.g. the @flowchart). In each case there is a default arrangement, but you can select others using the @plotmenu at the top of each panel.

#reset		§resets the parameter values, graph setup etc. to the default values. Fixes most problems.

#helpmode		§when this is enabled, clicking on any object calls the relevant documentation page here (which might explain why you are now reading this!)

#languagemenu		§Change the language of all labels and popup info, and some of the documentation. See @labdoc, @labdoctrans  <li>Many people helped with translations: see @acknowtranslate

#complexitymenu		§The choice of complexity level affects which visible curves, controls, menus, and options are displayed on @pan, and are included  in panel documentation.
  The complexity level does not affect the underlying scientific calculations in @mod. So even at  the simplest level, the complex parts of JCM are still calculated -you just can't see them.
  ²Note: some other options also affect which curves and controls are visible on a graph -see @whatper, @regionplot, @emit&or&conc&or&rf,  @mitigation.²

#verysimple		§This is to help beginners learning how to use JCM, showing just one curve and one or two key controls per plot. It is only implemented for a few panels, to show interactions between CO2 emissions, concentration, forcing, temperature and sealevel. Beware that any simplification hides important assumptions -you should not present results derived from consideration of this level alone!

#basic		§This is for general use. All curves and controls will be shown at normal level and above, unless their code specifies otherwise.

#expert		§This is for scientists who know the climate system quite well and want to check out some more obscure parameters and subtle effects in JCM. It is not expected that everybody will understand expert level curves and controls - and expert guidance should be available if they are referred to during educational or policy applications.

#experimental		§This is for new features of JCM under development, which may not be documented or may not yet work at all. Results from experimental features should not be quoted!

#linkx		§Link all timescales (x-axes), so adjusting one will affect all

#showscales		§Show scales on graphs (applies to all except central plot) This option switches off automatically for 9 or more plots, but you can reactivate it.

#showcontrols		§Disabling this option hides  anything with popup info, other than title and scales. These will reappear temporarily while your mouse moves over a plot.  This option is disabled automatically for 9 or more plots, but you can reactivate it.

#ipccdata		§see @datapoints, @compareipcc

#capim		§see @capimage

#captab		§see @captable

#flowchart		§This shows the chain of calculations in the model, and thus the interactions (cause-effect relationships) between the components of the system. The arrows  change as you adjust controls and menus on the plots.
  ²°adju The flowchart is available from the @layoutmenu and @plotmenu. If it is placed in the centre, arrows will also point to other panels.²
  ££fcnormal ££fcchanging ££fcstabsres

#blankplot		§This makes an empty @graph, to which curves can be added by @scripting.
  Instructions are sent to blankplot in the same way as values are sent to a parameter. Each is split into sub-instructions using ~  <li>clear : removes all curves:  <li>title~titlename : set plot title (note: units added automatically when you set scale)  <li>scale~units~step~scalefactor : sets the yscale (whose max and min is set by the autoscale method as soon as there is at least one curve)  <li>curve~curvearray~curvename~true/false~curvecolor~scalefac
  Where:  <li>curvearray is the java identifier of the array of data to plot (found using java reflection see @ref),  <li>true/false specifies whether to copy the curvearray data, or just make  a reference to it. If false, the curve will move is the model is adjusted, if true it will be frozen (this is for comparing scenarios).  <li>curvecolor is either a color name from @colfont or a new color specified by red , green , blue   <li>scalefac is an optional scaling factor

  See some examples:
  £!stabconc500script
  £!timescalescript

#gui		§JCM Graphical-User-Interface general building blocks, used by @pan.
  ³ Adjustable objects³
  @control
@scale
 @popob
@option
@menu   
  ³ Panels and layout³
   @jcmpanel
 @graph
@regionplot
@mapplot
@textpan
 @plotlayout
  ³ Other graph components³
  @legend
@title
@datapoints
  ³ Functional components³
  @jcmevent
@capimage
 @colfont
@bufim
@complexitymenu
@jcmta
  <hr>² °cogs (Note: GUI may use @tls and @root but do not refer to specific science @mod - see also @struccode)²

#scale		§°adju You can adjust any scale by dragging the curve with your mouse. Dragging near the origin (usually 0 for vertical axis, 2000 for time axis) shifts the whole curve. Dragging elsewhere stretches or squeezes the scale.

°adju Move your mouse over the axis to see pop-up info about units and range

°adju You can hide all the scales using the @showscales option (in @layoutpanel). This option is selected automatically when many plots are shown (@layoutmenu).

For some flexible plots (descendents of @regionplot), an appropriate scale range is calculated automatically. When dividing two quantities, JCM also tries to cancel powers of ten, converting to standard SI units.

 ²°adju If this gives you a strange quantity (e.g. "micro-person per joule per year"), it probably makes more sense to invert the ratio (e.g. megajoule per person per year). ²
  ££siunits ££unitbaseline <hr>See also @howmuchgtc ££time

#datapoints		§This superimposes circles on the graph, corresponding to external data. It is used for checking @compareipcc

#jcmpanel		§This holds the basic structure for a panel. Jcmpanel transfers coordinates, layout and events from mainapp, and extends iob.
  It does not extend the old 'heavyweight' java.awt panel, which is not sufficiently flexible for JCM, and would not allow for menus and other popup items to cross panels. Instead, it is a lightweight component more like those of Swing. However Swing is not used, due to its lack of support in common web browsers (note @javafuture).
  See also @jcmevent, @popob, @title. ££aboutpanels

#aboutpanels		§Panels combine calculations and parameters from @mod with @gui, @tls and @root (°cogs see also @struccode)

You can now open as many instances of each panel as you like - they will all share underlying data and parameters from JCM £`mod, but each new panel will have its own layout parameters. So for example, you could have one @othgasplot or @attributeplot showing emissions, another showing forcing.

#mapplot		§This general panel is extended by @regclimap and @regemitmap and plots the country polygon data from @bord. It also handles rotation.

#regionplot		§This provides general functions for viewing and combining regional data, which are inherited by the following specific plots:   <li>@distribplot (for emissions distributions)   <li>@attributeplot (for "Brazilian proposal" calculating responsibility)   <li>@costsplot (experimental!)   <li>Note also @regemitmap, and @aboutregions
  °adju ³General features³  <li> The @varq and @perq menus allow you to divide one quantity by another, to show, for example, emissions per capita or abatement per GDP.  <li> Because there are many possible combinations, an appropriate vertical scale is chosen automatically - see @scale  <li>When quantities are not divided by any other quantity, they may be stacked (@stack option) such that the sum of the regions shows the world total. This may be combined with the @frac option  to show each region as a fraction of the world total (multiplied by 100 to give scale in %).

#graph		§Graph contains the basic graph-plotting functions (the curves are actually plotted onto a @bufim and repainted as needed).

Each graph has a set of curves (each with a reference to an array of data in a module, a name, a colour, and a @complexitymenu level).

Graph is also the holder for all the extra-components that make up a graph   <li>@legend  <li>Axes (see @scale)  <li>draggable @control   <li>@datapoints

Graph is 'abstract', actual instances of graph are contained within specific @panels.

Currently, just line-curve and stacked curve plots are implemented. Later, other variants (e.g. scatterplots, surface plots) may be added.

 Some extra functions are added by @regionplot

#textpan		§General jcmpanel containing a java.awt.textarea. Textpan handles the problem, that textarea is a 'heavyweight' component, which doesn't mix easily with 'lightweight' components like @jcmpanel and @popob.

#jcmta		§See @textpan

#popob		§Popob is any object with pop-up information, that responds to mouse events. It is the superclass of @option, @menu, @control, @scale, @title, @legend.
  Popobs have a 'holder' which is a @jcmpanel. User-adjustable popobs are also the 'controller' of a @param, whose definition and effect is located elsewhere within the code (for example, within a @module or a @jcmpanel).

#legend		§This makes a curve legend composed of individual popobs. The complication is that  it may change, depending on @complexitymenu, @stack, @varq, @perq etc.

Move your mouse over each curve label  to see a longer description. If @helpmode  is enabled, clicking on each curve will  summon relevant documentation.

#title		§Plot title. This also adds units and extra curve info to the basic name. Title is also used for modules in the @flowchart

#option		§Toggle button option (a few are just triggers). An option is the controller of a @param, but its holder is a @jcmpanel. If @helpmode  is enabled, clicking on the button will summon relevant documentation.

#menu		§Drop-down menu.  An menu is the controller of a @param, but its holder is a @jcmpanel. If @helpmode  is enabled, clicking on the menu will summon relevant documentation.
  ²°cogs Menus may be large so they need to span several panels, everything that might be underneath should be repainted on removing the menu (complex when the menu changes the plot layout).²

#control		§Draggable Arrow Controls: Each arrow controls one @param of a @module, and is positioned within a @graph whose curves it affects (via the underlying @module).
  Controls are a key feature of JCM, enabling people to understand cause-effect relationships by 'playing' with the climate system  almost as if it were a mechanical toy (see @concept).

A control may be positioned according to one or both axes of the graph, if its parameter shares the same units. Otherwise, it's position is arbitrary, and the graph limits correspond to the maximum and  minimum values of the parameter. The four-pointed arrows used for @stabilisation represent a specific point on a target curve  and so control two parameters -one for the x-axis, one for the y-axis.

°adju Normally, you adjust the value by dragging the control. The model is updated at every step, which may slow on older computers. In this case, you may find it easier to click once on the control (note that its colour becomes darker), move the mouse to the destination, and click again, the control will jump directly to the new position (if valid).

°adju Move your mouse over the control to see its value. If @helpmode  is enabled, clicking on it will also summon relevant documentation, including a textfield in which you can enter a specific precise value.

#plotlayout		§This arranges the position of @pan. It also handles each @plotmenu which swaps individual plots. Specific layouts are listed in @panlist. Note, you can now have as many copies as you like of each panel, each with different setup (curves, scales etc.) -see @aboutpanels.

#panlist		§This interface lists all available @pan for the plotmenus, and specifies the default setup for each @plotlayout.
  Panlist uses only strings to refer to each panel -consequently you can have as many copies of each panel as you like, including zero (panels that are not opened by the user, do not need to be initialised by the JVM -saving memory). See also ££aboutpanels.

#jcmevent		§This transfers mouse events from the underlying Applet panel to a @jcmpanel or a @popob.

#capimage		§This tool captures and saves a snapshot image from JCM, and saves it as a '.png' image (.png is a replacement for .gif). Just press the button £`capim on a plot (to capture that plot) or in the @layoutpanel, to capture the whole model.

This tool only works if you are using Java version 1.4 or above (see @aboutjava). You must also start JCM as an application (see @startjcm) from the downloaded package (see @download), because applets in a web-browser don't have security permission to save files.

The file will be saved in a directory jcm/output, with the same name as the panel.   <li>See also @printing, @captable.
  ²(Note, this feature was added August 2002 to prepare the JCM submission for the intercomparison exercise on the Brazilian proposal)²

#captable		§This tool saves a datatable corresponding to the curves of a specific panel (the same table as you see in @viewdata).  The file will be saved in the directory jcm/output, with the same name as the panel.
  This tool only works if you  have started JCM as an application, not as an applet in a web-browser (see @startjcm), because applets don't have security permission to save files.
  See also @printing, @capimage.

#printing		§Many people ask, how can I print a copy of JCM graphics or documentation?
  <h4>Using  Ctrl-Alt-PrintScrn</h4>
  One basic way, is to capture an image (bitmap) of the screen or window.
  In windows, you can do this by pressing Ctrl+Alt+PrintScrn (all together).
  Then paste as usual into another application (e.g. Word or Paint), and print from there.

  <h4>Capturing PNG image files</h4>
  It is now easy to capture and save to disk a PNG image (or a data text file) from any plot, just by pressing one button.  <li>See @capimage
  ²Note: This is only possible if you download the package and launch startjcm.class as an application, using the latest version of Sun's Java (1.4).²

  <h4>Print documentation</h4>
  The documentation is dependent on hyperlinks, it is not intended to be read linearly. However, if you want to print it, a file is provided which concatenates all the web pages together:
  <i>Sorry, this is currently being updated - please @contact </i>
  <!--<li>See <a href="../jcmdocall.html" target="_new">jcmdocall.html</a>  (Large file, 460K!) -->

  <h4>Present JCM itself</h4>
  If you want to capture images for use within a presentation,
  have you considered downloading the JCM package, and showing people the real interactive model?<li>See @download
  ²Note: For experts, it's also possible to write scripts to set up JCM in a particular way (see @scripting)²

  <h4>Why can't I just print from the browser?</h4>
  Java 1.1 does not include standard printing functions,
  and later versions are not available in most web browsers.

  As the dynamic response to adjustments is a core feature of JCM,
  which cannot be captured on static paper,
  developing printer support is not a high priority.

  It might be easier with the latest versions of java,
  for users who are willing to install large packages.

#bufim		§An image buffer used by each @jcmpanel, so the main plot can quickly be repainted after moving/removing a @popob or its pop-up info, without recalculating all the curves.

#colfont		§An interface with colors and fonts, implemented by each @jcmpanel