MARS adaptation for coastal lagoon¶
Graus¶
type_grau = 1 -> NORDtype_grau = 2 -> ESTtype_grau = 3 -> SUDtype_grau = 4 -> OUESTWarning
Actuellement, les graus ne peuvent pas dépasser la largeur d’une maille
Bathymetry¶
- La bathymétrie est repérée par rapport au Zéro NGF (Nivellement Général de la France) : ZNGF
- Le niveau d’eau (xe) est repéré par rapport au Zéro hydrographique ZH
- La variable mslshift correspond à la cote du niveau dans lequel les levés bathymétriques sont repérés par rapport au zéro hydrographique.
. mslshift est défini dans la namelist nambathy du fichier paraspec.txt et ne doit être utilisé que si le réseau de nivellement utilisé n est pas le zéro hydrographique (ex: réseau IGN 69, NGF ...).
- La variable hnivmoy correspond à la correction à appliquer aux données bathymétriques pour les ramener au niveau moyen lorsqu’elles sont référencées par rapport au zéro hydrographique.
. hnivmoy est défini par le tableau à 2 dimensions hnivmoy(imin :imax, jmin :jmax) qui doit être sauvegardé dans le fichier netcdf de la bathymétrie.
. La lecture de ce tableau est faite dans la subroutine bathy.F90 si l_bathy_meanlev**==**TRUE et si la clé CPP key_bathy_final n’est pas activée.
- l_bathy_meanlev est positionné a .TRUE. si la bathymétrie est référencée par rapport au zéro hydrographique et pour activer la lecture de correction afin de ramener les sondes au niveau moyen.
Ces corrections ne concernent a priori que les zones macrotidales.
La bathymétrie est repérée par rapport au ZNGF et le niveau moyen Znm est constant sur toute la lagune (hnivmoy est un scalaire = (Delta[ZZnmZh]).
Ceci entraîne dans la version MARS lagunes de modifier certaines namelists :
- namelist nambathy :
. l_bathy_meanlev = FALSE (alors que ça devrait être vrai)
. Définition de mslshift = Delta[ZZngfZh] : décalage entre le Zéro NGF et Zéro hydrographique
- namelist namlagoon :
. Définition de hnivmoy_lagoon : décalage entre le niveau moyen et le Zéro hydrographique
- Dans la subroutine bathy.F90 :
. hnivmoy_g = hnivmoy_lagoon lorsque la cle key_lagoon est activée et donc la ligne
hx_g(:,:)=hx_g(:,:) + hnivmoy( :, ) – mslshift revient à : hx_g(:,:)=hx_g(:,:) + Delta[ZZnmZh] – Delta[ZZngfZh]
Boundary conditions in water level in graus¶
- à partir d’un signal de marée théorique calculé à partir des constantes harmoniques ;
- d’un signal de hauteurs d’eau mesurées.
l_obc_mars = .true. l_obc_tide = .true. l_obc_ogcm = .false.
Condition à la limite ouverte basée sur un signal théorique de hauteur d’eau
Un signal de hauteur d’eau théorique est calculé à partir des constantes harmoniques de la marée (à Banyuls ou à Marseille selon que la clé key_tide_lagoon_banyuls ou key_tide_lagoon_marseille est activée dans le Makefile.datarmor + la loi du baromètre inversée
namelist namobc :
- l_tide_harmcompo = true
dans la subroutine init_xe (fichier initxe.F90) :
appel de la subroutine tide_harmcompo,
dans la subroutine tide_harmcompo.F90 (fichier tideharmcomp.F90) : appel de tideharcomp_lagoonchannel
dans la subroutine tideharcomp_lagoonchannel (fichier tideharcomp_lagoonchannel.h) :
. calcul des variables obc_tide_sshe(j0) ;s(i0) ;w(j0) ;n(i0) selon la valeur de type_grau
obc_tide_sshX = signal théorique – hnivmoy(igrau,jgrau) pour passer du référentiel ZH au niveau moyen
Condition à la limite ouverte basée sur un signal de hauteurs d’eau mesurées
Un signal de hauteur d’eau mesuré est lu dans le fichier file_obc_ogcm_X corespondant au type de grau dans la namelist namobc du paraspec.txt (actuellement un seul fichier par type de grau: Sud, Nord, Est ou Ouest)
Si type_grau= 1 (Grau au Nord) ==> file_obc_ogcm_n Si type_grau= 2 (Grau a l'Est) ==> file_obc_ogcm_e Si type_grau= 3 (Grau au Sud) ==> file_obc_ogcm_s Si type_grau= 4 (Grau a l'Ouest) ==> file_obc_ogcm_w
- namelist namobc
. l_tide_harmcompo = false
dans la subroutine init_xe (fichier initxe.F90) :
. appel de la subroutine obc2d_rank . dans la subroutine obc2d_rank (fichier obc2drank.F90) : appel de la subroutine obc_2drank_lagoon . dans la subroutine obc2d_rank_lagoon (fichier obc2dranklagoon.F90) : lecture du fichier file_obc_ogcm_X
calcul des variables obc_tide_sshe(j0) ;s(i0) ;w(j0) ;n(i0) pour tous les graus selon la valeur de type_grau
obc_tide_sshX = signal de hauteur d’eau lu interpolé au pas de temps de tchrono – hnivmoy(igrau,jgrau) pour passer du référentiel ZH au niveau moyen
- dans le module obcapplyssh (fichier obcapplyssh.F90) :
. calcul des variables obc_tide_sshe(j0) ;s(i0) ;w(j0) ;n(i0) pour tous les graus selon la valeur de type_grau
Initial condition in water level in MARS/Lagoon version¶
. Définition du paramètre xe_init à partir des variables obc_tide_sshe(j0) ;s(i0) ;w(j0) ;n(i0) selon la valeur de type_grau(1) . Initialisation de xeu( :, :) = xe_init sur tout le domaine.
Fluxes at the Air-Water interface¶
Dans la version MARS « Lagune » le code tourne avec dans le Makefile.datarmor les clefs Dkey_sflx_turb_default, Dkey_sflx_ir_swimbank, Dkey_sflx_solar_luyten activées et avec les namelist nammeteo et namthermo du paraspec.txt telles que
nammeteo :
l_sflx_rpa = .true.
l_sflx_rwind = .true.
l_sflx_rsat = .true.
l_sflx_rrh = .true.
l_sflx_rsolar = .false.
l_sflx_rir = .false.
l_sflx_rrain = .true.
l_sflx_rfcc = .true.
l_sflx_ath2m = .false.
name_sflx_sat = ‘bidon’
name_sflx_pa = ‘bidon’
name_sflx_rh = ‘bidon’
name_sflx_windx = ‘bidon’
name_sflx_windy = ‘bidon’
name_sflx_solar = ‘bidon’
name_sflx_ir = ‘bidon’
name_sflx_rain = ‘bidon’
name_sflx_fcc = ‘bidon’
namthermo:
l_sflx_radlossbot = .true.
l_sflx_solarcst =.false.
sflx_solarcst = 0.0
Les namelists¶
Deux namelists spécifiques à la version MARS_lagunes avec la clé key_lagoon sont utilisées :
dans paracom.txt : namlagoonc
l_cmeteocte = .false. rhcte = 80.0 nebcte = 65.0 l_rainlag=.false. file_pluie= '../entrees/METEO/bidon.prn' /dans paraspec.txt : namlagoon
hnivmoy_lagoon=0.45 nbgrau=1 igrau(1)=172 jgrau(1)=1 type_grau(1)=3 l_depthvar_grau(1)=.true. file_Hgrau(1)='../inputs/Hgrau_Lapalme.dat' file_obc_ogcm_lagoonts_s='../inputs/CLIM/ST_sete_2003_2015_survalQ2.prn' file_obc_ogcm_lagoonts_n='' file_obc_ogcm_lagoonts_w='' file_obc_ogcm_lagoonts_e=''/