GENIE:Fakeatmos

FAKE ATMOSPHERE: Summary
The fake atmosphere module allows Goldstein to be run with flux, restoring or mixed boundary conditions. Its core module file is fake_atmosphere.f90 and it consists of two subroutines, initialise_fakeatmos and fakeatmos.

In subroutine initialise_fakeatmos the surface variables are read in from a file called fname_climate (filename provided in namelist). These variables are the meridional and zonal surface wind stresses, a heat and freshwater flux field, and a sea surface temperature and salinity field for restoring to. Note that the freshwater field should be in units of m/s and is then converted in the module to mm/s to be consistent with input to goldstein. The heat flux is passed in the variable conduct flux and the freshwater flux in the variable waterflux. Many of the other variables are dummy variables that are only kept for compatibility to the structure of Genie. Details of the variables are provided in the comments in fake_atmosphere.f90.

In subroutine fakeatmos the heat and freshwater fluxes that are associated with restoring boundary conditions are calculated. They follow the formula

conductflux = relaxt * (sst_model - sst_observed)

waterflux = relaxs * (sss_model - sss_observed)

where relaxt/s are the relaxation constants provided in the namelist for temperature and salinity restoring. The sss and sst refer to sea surface temperature and salinity respectively.

FAKE ATMOSPHERE: How to do a run
1) check out code as usual with svn co, e.g.,

svn co http://source.ggy.bris.ac.uk/subversion/genie/trunk --username name-surname genietrunk

2) edit user.mak to reflect your compiler etc.

3) Customize genie-main/configs/genie_na_go_ni.config (no atmosphere, goldstein ocean, no ice) or make your own config file. Below is a description of the namelist parameters in genie_na_go_ni.config that you need to run the fake-atmos code.

The module flags should be

ma_flag_fakeatmos=.TRUE. ma_flag_goldsteinocean=.TRUE. ma_flag_ebatmos=.FALSE. ma_flag_goldsteinseaice=.FALSE. ma_flag_igcmatmos=.FALSE. ma_flag_fixedocean=.FALSE. ma_flag_fixedseaice=.FALSE. ma_flag_fixedicesheet=.FALSE. ma_flag_fixedchem=.FALSE.

To ensure genie double precision (and thus make it compatible with fake-atmos), set

GENIEDP=.TRUE.

IGCMATMOSDP=.TRUE.

The namelist parameters for the fake atmosphere module are

a) The boundary condition file name

fk_fname_climate=/esdata/env/e099/genie/genie-fakeatmos/data/input/bcond2d_embm_kevin.nc

b) The flags for choosing between restoring and flux boundary condition. True for restoring.

fk_trest_flag=.true.

fk_srest_flag=.true.

c) The relaxation constants

fk_relaxt=120

fk_relaxs=1.5e-7

relaxt of 120 W/(m2K) corresponds (for mixed layer h of 80m) to restoring time = rho*Cp*h/relaxt = 1e3 * 4000 * 80/ 130 = 31 days

relaxs of 1.5e-7 m/(s PSU) corresponds (for mixed layer h of 80m) to restoring time = h/(S * relaxs) = 80/(35 * 1.5e-7) = 176 days

d) The goldstein ocean grid. The boundary condition file should also adhere to the same resolution.

fk_nx=36

fk_ny=36

4) Create your netcdf boundary condition file as needed. You only need to update the variables that you will use. For instance, if you are using mixed boundary condition (i.e., restoring to temperature but forcing with freshwater fluxes) then you do not need to worry about the heat flux field or the sea surface salinity. These will not be used.

5) Then you're good to go: ./genie_example.job -f ./configs/genie_na_go_ni.config > standardout