Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

...

  • entry bus (contains initial conditions - almost not used anymore in GEM5)
  • dynamic bus (contains fields which get passed from and to the dynamics)
  • volatile bus (contains physics fields of which the content is not needed to calculate the next timestep)
  • permanent bus (contains physics fields of which the content is needed to calculate the next timestep)
  • surface bus (contains only physics fields used by the surface schemes)

Declaring a field in a bus

All fields that are in a bus need to get declared with the command "PHYVARnCx".

...

The main specialty with this bus is that it is gets "differentadjusted" for each surface fraction. It always contains all surface fields but only for the points for which a certain surface scheme is valid. For example, when a land surface scheme (ISBA, SVS, CLASS) is called, this bus will only contain points with a land fraction greater than a certain threshold. By doing this one avoids nasty if-constructions inside the surface routines, checking that a point has a valid surface fraction, and the bus is more compact, without any "holes", and therefore faster to read.

Accessing fields declared in a bus

There are different ways of accessing fields declared in a bus. But they all have in common that the bus(ses) need(s) to get passed to all routines which want to access fields from the bus. The bus(ses) itself/themselves need to get passes as well as its/their length.

From the basic physics

The main physics subroutine, 'physlb1', passes the three main busses on to 'phyexe'. From there on the busses are generally named:

Volet
d - dynamic bus with its length, dsiz
v - volatile bus with its length, vsiz
f - permanent bus with its length, fsiz

Note that the name for the permanent bus is now 'f' and not 'p' !!!!!!!!!!

To get access to the variable names one needs to also use the module 'phybus':

Volet
use phybus




From the surface schemes

In the surface one passes the surface bus, its size, the list of variable and its size to the surface routine.


Explain what a bus is: slab with just land points etc.

...