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.

...

This is a special bus which is only valid for the surface schemes which do not have access to any of the busses described above! However, fields from this bus still need to get declared in sfc_businit.F90 or phyvar.hf the in the volatile or permanent bus. To get them copied to the surface bus one needs to add them' in sfcbus_mod.F90 with:


Volet

SFCVAR(name_sfc, name_bus)


Where:
    'name_sfc' is the name the field will have in the surface bus and
    'name_bus' is the "VN" name the one of the busses above.

...

To be able to treat the fields from the busses like "normal" 1-D (row) or 2-D (slab) fields (remember the physics only see one row or slab at the time - see above) they usually get "transformed" into regular 1-D or 2-D fields by using pointers the following way:

a) Declare Declaration of the field as 1-D or 2-D pointer, for example:

...

Volet
     real, pointer, dimension(:) :: zpmoins
     real, pointer, dimension(:,:) :: ztmoins


In general, the 1-D or 2-D field name is the same as the starting position of the field in the bus, preceded by a 'z'.


In utils/phymkptr.hf several functions are defined to assign a pointer to the right space on the bus, depending on the dimension and type of level (if multi level). They can be used to assign a pointer to an address in a bus so the pointer can then get used in the routine as a "normal" array, for example:

Volet
MKPTR1D(zpmoins, pmoins, f)     ! 1-D field from the permanent bus (f)
MKPTR2D(ztmoins, tmoins, d)      ! 2-D field from the dynamic bus (d)


Where
      'zpmoins'/'ztmoins' are the 1- resp. 2-D "arrays" in the routine,
      'pmoins'/'tmoins' the specific position in the bus as declared in phyvar.hf and
      'f'/'p' the name of the bus as received by the routine.

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.

...