DOCUMENTATION INTERFACE PHYSIQUE

Date: le 28 mars 1995

OBJET

Ce document décrit la nouvelle interface physique de RPN. On y décrit les champs requis par la physique, ainsi que les variables de contrôle et les moyens de communication utilisés pour transférer ces variables.

POSTULAT

Une hypothèse est à la base de toute la stratégie : la physique traite les colonnes séparément les unes des autres. Les opérations horizontales ne sont donc pas permises à l'intérieur de la physique elle-même.

CONTRÔLE

La dynamique communique à la physique toutes les informations de contrôle par un appel à un sous-programme de la physique. L'information communiquée est identifiée par une chaîne de caractères. Chaque appel initialise la clef de contrôle correspondant à l'item identifié par la chaîne de caractères dans un ou des commons appartenant à la programmathèque de la physique.

Description du sous-programmme d'initialisation:

Il y a 4 séquences d'appel, selon le type de la clef :

		NOM est le nom de la clef (voir tableau plus bas);
		VAL_type est la (les) valeur(s) de la clef;
		NV est la dimension de VAL_type (le nombre de valeurs à
		initialiser);
		MODE est le mode d'opération :
                                  `GET' pour initialiser la clef;
                                  `SET' pour connaître la
                                             valeur de la clef.

Exemple : Initialiser la clef `FLUVERT' avec la valeur `CLEF' :
		CALL PHYOPTC(`FLUVERT','CLEF',1,'SET')

Description des variables de contrôle :

CLEF            DESCRIPTION                       VALEURS POSSIBLES                  
'CONVEC'        schéma de convection utilisé      'FCP': Fritsch-Chappell            
                                                  'KFC': Kain-Kritsch                
                                                  'MANABE': ajustement convectif     
                                                  de Manabe                          
                                                  'NEWKUO': Kuo (nouveau)            
                                                  'NIL': aucun                       
                                                  'OLDKUO': Kuo (ancien)             
                                                  'SEC': schéma de convection        
                                                  sèche de Manabe                    
'FLUVERT'       processus de surface, couche      'PHYSIMP': paramétrages très       
                limite et diffusion verticale     simplifiés                         
                                                  'CLEF': paramétrages sophis-       
                                                  tiqués                             
                                                  'NIL': pas de diffusion            
                                                  verticale                          
'RADIA'         schéma de radiation utilisé       'NEWRAD': schéma de radiation      
                                                  sophistiqué. Implique la           
                                                  lecture par PHYDEBU des            
                                                  tableaux de radiation.             
                                                  'OLDRAD': schéma de radiation      
                                                  simplifié                          
                                                  'NIL': aucun schéma de             
                                                  radiation                          
'STCOND'        schéma de condensation utilisé    'CONDS': schéma simplifié          
                                                  'EXMO': schéma explicite           
                                                  'NEWSUND':Sundqvist (nouveau)      
                                                  'NIL': aucun                       
                                                  'OLDSUND': Sundqvist (ancien)      
'CLIMAT'        interrupteur du mode climatique   .true., .false.                    
'DATE'          variable contenant le <<date      entier de 14 éléments              
                time stamp>> du CMC               contenant la date du cas           
                                                  étudié (voir le module DATMGP      
                                                  de RMNLIB)                         
'DEBUT'         pas de temps du début de la       nombre entier                      
                tranche d'exécution (pour le                                         
                mode climatique seulement)                                           
'DELT'          pas de temps d'intégration        nombre entier de secondes          
CLEF            DESCRIPTION                       VALEURS POSSIBLES                  
'KNTRAD'        nombre de pas de temps entre      nombre entier de pas de temps      
                les applications successives du                                      
                schéma de radiation                                                  
'CHAUF'         réchauffement par les océans      .true., .false.                    
                (pour l'option 'PHYSIMP')                                            
'DBGMEM'        interrupteur de contrôle du       .true., .false.                    
                mode diagnostique du progiciel                                       
                de gestion de l'espace volatile                                      
                de la couche limite                                                  
'DMOM'          diffusion verticale du            .true., .false.                    
                momen-tum (pour l'option                                             
                'PHYSIMP')                                                           
'DRAG'          frottement à la surface           .true., .false.                    
                (pour l'option 'PHYSIMP')                                            
'EVAP'          évaporation au-dessus des         .true., .false.                    
                océans (pour les options                                             
                'PHYSIMP' et 'CLEF')                                                 
'GWDRAG'        interrupteur pour <<gravity       .true., .false.                    
                wave drag>>                                                          
'INILWC'        interrupteur pour                 .true., .false.                    
                l'initialisation du contenu en                                       
                eau liquide en début                                                 
                d'intégration (options                                               
                'OLDSUND' et 'NEWSUND')                                              
'SATUCO'        phase pour la saturation          .true.: phase liquide/glace        
                                                  pour la saturation                 
                                                  .false.: phase liquide pour la     
                                                  saturation                         
'WET'           interrupteur pour physique        .true.,.false.                     
                mouillée ou sèche                                                    
'EPONGE'        Vecteur contenant le facteur      réel (nombre de niveaux)           
                d'amplification de la matrice     = 0.0  -> pas d'amplification      
                de diffusion pour simuler une     > 0.0  ->       amplification      
                couche éponge.                    (voir documentation de la          
                                                  physique RPN)                      
'FACTDT'        facteur multiplicatif du pas de   réel                               
                temps                             = 1    -> modèle à 2 pas de        
                                                  temps                              
                                                  = 2    -> modèle à 3 pas de        
                                                  temps                              
'FACDIFV'       facteur d'allongement du pas de   réel                               
                temps pour la diffusion           = 1    -> pas d'allongement        
                verticale                         > 1    ->       allongement        

CLEF            DESCRIPTION                       VALEURS POSSIBLES                  
'HC'            seuil d'humidité relative pour    réel (0. à 1.)                     
                le déclenchement de                                                  
                l'ajustement mouillé (schéma                                         
                'MANABE')                                                            
'HF'            seuil d'humidité relative pour    réel (0. à 1.)                     
                le transport vertical                                                
                d'humidité durant l'ajustement                                       
                convectif (schéma 'MANABE')                                          
'HM'            une entrée dans le calcul de      réel (0. à 1.)                     
                l'humidité relative saturante à                                      
                la première itération (schéma                                        
                'MANABE')                                                            

Une série d'appels au module d'initialisation PHYOPT définit la configuration de la physique désirée. Par la suite, le sous-programme PHYDEBU - notez l'absence d'arguments à l'appel - s'assure de la cohérence des options choisies et initialise certains champs avant l'exécution de la physique proprement dite. Voici un exemple d'initia-lisation:



	CALL PHYOPTC (`FLUVERT',	'CLEF',		1,	'SET')
	CALL PHYOPTC (`RADIA',	'RADMULT',		1,	'SET')
	CALL PHYOPTC ('CONVEC',	'OLDKUO',		1,	'SET')
	CALL PHYOPTL ('GWDRAG',	.TRUE.,		1,	'SET')
                .
                .
                .
                .

	CALL PHYDEBU( )

INTERFACE

La physique traite un plan vertical (une rangée du modèle) à la fois. Les rangées sur lesquelles on veut exécuter la physique sont normalement distribuées aux CPU disponibles. Toutes les variables qui sont définies sur une rangée (qu'elles aient un seul ou NK niveaux) sont accumulées en 2 blocs distincts qui sont passés comme arguments de l'interface physique. La navigation à l'intérieur d'un bloc pour récupérer une des variables se fait en se positionnant dans le bloc à l'aide d'indices calculés à l'avance.

On exécute la physique de RPN à l'aide de l'interface suivante dont les arguments sont décrits ci-après:

CALL PHYEXEC (BLOC1, BLOC2, NDIM, N, NK, JROW, KOUNT, DT)

Voir en annexe pour une description détaillée du contenu de BLOC1 et de BLOC2.

BLOC1:

Le premier argument est une pile contenant un ensemble de variables physiques dont les valeurs obtenues au précédent pas de temps doivent être réutilisées par la physique pour son schéma temporel. Leur volume combiné est tel qu'il est difficile de le garder en mémoire et on doit faire de l'entrée/sortie sur ces champs. Cette pile contient également les champs géophysiques tranchés.

BLOC2:

Le deuxième argument est une pile contenant une tranche des variables dynamiques au temps *, au temps -, de quelques autres variables dynamiques utilisées par la physique et les tendances générées par les différents processus physiques pour application sur les variables dynamiques.

NDIM:

Nombre de points dans une rangée.

N:

Nombre de points à traiter à l'intérieur d'une rangée.

NK:

Nombre de niveaux.

JROW:

Indice de la rangée en cours de traitement.

KOUNT:

Numéro du pas de temps en cours de traitement.

DT:

Longueur du pas de temps.

ANNEXE

Liste des champs devant faire partie de BLOC1:

z0     |  roughness length 
ts     |  surface temperature
hs     |  fractional potential evaporation 
       |  (humidity at the ground)
tmp    |  compound field of sea surface temperature over the sea
       |  and deep soil temperature over land
mg     |  land (1) or sea (0) mask (including ice)
lht    |  launching height
al     |  surface albedo
dlat   |  geographical latitudes of the model grid points
dlon   |  geographical longitudes of the model grid points
vp     |  permanent variables of the physics

Liste des champs devant faire partie de BLOC2

uu     |  the x component of wind at time t*
vv     |  the y component of wind at time t*
tt     |  the temperature at time t*
hu     |  the specific humidity at time t*
qc     |  the mixing ratio of cloud water/ice at time t*
ps     |  surface pressure at time t*
e      |  turbulent kinetic energy at t*
uum    |  the x component of wind at time t-
vvm    |  the y component of wind at time t-
ttm    |  the temperature at time t-
hum    |  the specific humidity at time t-
qcm    |  the mixing ratio of cloud water/ice at time t-
psm    |  surface pressure at time t-
em     |  turbulent kinetic energy at t-
omg    |  vertical motion
ttr    |  the temperature tendency from radiation
tugd   |  the x component of the wind tendency from gravity wave drag
tvgw   |  the y component of the wind tendency from gravity wave drag
ttc    |  the temperature tendency from convection
thc    |  the specific humidity tendency from convection
tqcc   |  the mixing ratio of cloud water/ice tendency from convection
ttvd   |  the temperature tendency form vertical diffusion
thvd   |  the specific humidity tendency from vertical diffusion
tuvd   |  the x component of the wind tendency from vertical diffusion
tvvd   |  the y component of the wind tendency from vertical diffusion
tevvd  |  the turbulent kinetic energy tendency