By default, zonally averaged annual mean wind stresses are taken from Hellerman and Rosenstein (1983). Rain is simulated by a salt flux, which, like the heat flux, is formed from zonally averaged annual mean observed sea surface salinities and temperatures, as compiled by Levitus (1982).
When using periodic datasets, the SEA model will automatically read in two adjacent datasets and will linearly interpolate between these as the model progresses. The model will expect the number of periods to be specified and the mid-points of those periods, so that it can determine when to cycle in the dataset of the next period. This is achieved by setting the number of periods parameters (st_nperiod, ss_nperiod and ws_nperiod) in the header file include/cvbc.h and the mid-point arrays (st_period, ss_period and ws_period) in the file src/forcing.F (in the subroutine init_real_forcing).
It is important that the data files are in the correct format, to be read in by the SEA model. Like restarts, snapshots and topography files, when running in parallel each sub-process will read in data pertaining to its own sub-domain only. It is therefore necessary to pre-process the data files to match the current process configuration. The pre-data utility will handle the necessary pre-processing of these data files, provided that they have been stored something like this (where nbytes is the machine precision used; 8 or 4 bytes typically):
real sst(iall,jall), sss(iall,jall) real wsx(iall,jall), wsy(iall,jall) < generate surface data values > open (unit=11, file='data/surface_temp', form='unformatted' & access='direct', recl=iall*jall*nbytes) write (11, rec=1) sst close (11) open (unit=11, file='data/surface_salt', form='unformatted') & access='direct', recl=iall*jall*nbytes) write (11, rec=1) sss close (11) open (unit=11, file='data/wind_stress', form='unformatted') & access='direct', recl=iall*jall*nbytes) write (11, rec=1) wsx write (11, rec=2) wsy close (11)The use of direct access files allows for easier access when multiple datasets are stored. For example, if using seasonal sea surface temperatures, four datasets will be used and are stored as follows.
open (unit=11, file='data/surface_temp', form='unformatted' & access='direct', recl=iall*jall*nbytes) write (11, rec=1) sst1 write (11, rec=2) sst2 write (11, rec=3) sst3 write (11, rec=4) sst4 close (11)Similary for salinities and, for wind stress, zonal datasets are stored at odd numbered records and meridional datasets at even numbered records (i.e. wsx1@rec=1; wsy1@rec=2; wsx2@rec=3; wsy2@rec=4; and so on).
The pre-data program is compiled using the make pre-data process, after the config routine has been compiled and run. When run the pre-data utility will provide menu options to pre-process the various datasets. After pre-processing the data sub-files will reside in the data/model/ directory and will be suffixed with a process number. If running in sequential mode, rather than running the pre processing routine, it is possible to simply copy the datasets to the data/model/ directory with a ".0" suffix. (Note: take care not to make this your only copy, as the make clean procedure (which is a default action of the make procedure) wipes the data/model/ directory clean in preparation for the new process configuration).
It is not expected that all possible surface forcing variables are catered for, but if further variables are required the current implementation should act as a good template for how to pre-process, read and use the data.