.. _obc.bio: Conditions aux limites ouvertes specifiques pour le module ECOMARS ================================================================== * Lorsqu'on utilise la clé *key_biolo*, l'utilisation des conditions aux limites ouvertes (obc) est un peu différente de celle utilisée avec la clé *key_substance* seule. * Dans le **cas général** de la simulation de substances dissoutes et particulaires (**key_substance**), la concentration de chaque variable transportée est donnée dans la maille limite de chaque frontière ouverte. Elle est utilisée seulement lorsque le courant entre dans la zone. Dans le cas contraire, lorsque le courant sort, la concentration à la limite est égale à une combinaison des valeurs dans les 2 mailles voisines en amont du courant, perpendiculaire à la limite. | La valeur prescrite lorsque le courant rentre dans la zone peut provenir de plusieurs sources : * soit **l_obc_ogcm_rc=.false.** (dans parasubs.txt) : * pas de fichier obc pour les substances. * les valeurs aux limites pour chaque variable tendent vers une constante égale à la valeur donnée en condition initiale dans variable.dat * soit **l_obc_ogcm_rc=.true.** (dans parasubs.txt) : * fichier obc qui donne les valeurs aux limites pour une au moins des variables d'état du modèle. * Pour les variables à lire dans le fichier des conditions aux limites, donner leur nom dans le fichier *variable.dat* ("*name of substance read from obc file*"). La valeur aux limites pour ces variables tendra alors vers la valeur lue dans le fichier obc. * Pour les variables qui n'existent pas dans le fichier des conditions aux limites, il faut mettre *none* dans le fichier *variable.dat*. La valeur aux limites pour ces variables tendra alors vers une valeur constante et égale à la valeur donnée en condition initiale (dans variable.dat) * Dans les 2 cas, la vitesse à laquelle la condition à la limite tend vers la valeur prescrite à la limite dépend du coefficient **obc_coefrel**, donné dans paraspec.txt. (terme de relaxation en s-1). * Si **obc_coefrel=0** : les concentrations aux limites sont égales aux conditions prescrites (lues ou valeurs initiales) * Si **obc_coefrel petit** : les concentrations aux limites tendent lentement vers les conditions prescrites (lues ou valeurs initiales). Exemple : temps de relaxation de 10 jours : obc_coefrel=1/10j=1.1e-6 s-1 * Si **obc_coefrel grand** : les concentrations aux limites tendent rapidement vers les conditions prescrites (lues ou valeurs initiales). Exemple : temps de relaxation de 1 heure : obc_coefrel=1/1h=2.8e-4 s-1 * **obc_coefrel ne doit pas être supérieur à 2/dt** * Dans le cas du **module ECOMARS**, avec la clé **key_biolo**, on utilise une autre possibilité : le **"gradient nul"** si la valeur n'est pas connue. Plusieurs choix sont donc possibles en fonction du nom donné dans *variable.dat* pour "*name of substance read from obc file*" : * pour les variables **"none"** : La valeur aux limites pour ces variables sera constante et égale à la valeur donnée en condition initiale (dans variable.dat) * pour les variables **"zerograd**" : la concentration à la limite lorsque le courant rentre est égale à la concentration voisine, en aval du courant ("gradient nul")[exemple : limite ouest en imin+1: c(imin+1)=c(imin+2)] * pour les variables **"name of obc variable"** : la concentration à la limite est celle lue dans la fichier obc si *l_obc_ogcm_rc=.true.* (sinon ce sera la valeur initiale) * **ATTENTION** il semble que cette option "gradient nul" introduise, pour les variables particulaires notamment, des instabilités dans certains cas. Ce problème est contourné actuellement en donnant à ces variables des valeurs constantes; mais une étude plus poussée devra être menée pour comprendre son origine. * Dans tous les cas, il est maintenant possible aussi d'utiliser l'**option de relaxation classique**, qui permet, comme pour la température et la salinité, de faire un rappel sur la zone proche des limites (de largeur obc_width) pour que les mailles voisines tendent également vers la condition aux limites de façon plus lisse. * pour cela, il faut mettre **l_obc_ogcm_relax=.true.** et donner une valeur à **obc_coefrel** différente de 0 dans paraspec.txt * **ATTENTION : ne pas mettre l-obc_ogcm_relax=.true. et obc_coefrel=0.** * Dans la zone de largeur obc_width, on injecte un flux de matière pour faire tendre les concentrations dans l'eau vers la condition à la limite. (sflxsurf.F90) * A la limite pour les substances dont le "*name of substance read from obc file*" dans le fichier *variable.dat* est différent de *zerograd*, le même *obc_coefrel* est utilisé pour faire tendre les concentrations à la limite vers la concentration prescrite par le fichier obc ou vers la valeur initiale. * Dans les cas de l'application **MANGA**, et pour l'**option 1**, si **l_obc_ogcm_rc=.false.**, les concentrations aux limites prescrites pour les trois sels nutritifs : nitrate, silicate et phosphate dissous sont calculées avec un gradient vertical dépendant de la profondeur.