Module airsea -- atmospheric fluxes


INTERFACE:

   module airsea
DESCRIPTION:

This module calculates the heat, momentum and freshwater fluxes between the ocean and the atmosphere as well as the incoming solar radiation. Fluxes and solar radiation may be prescribed. Alternatively, they may be calculated by means of bulk formulae from observed or modelled meteorological parameters and the solar radiation may be calculated from longitude, latitude, time and cloudiness. For the prescibed fluxes and solar radiation, values may be constant or read in from files. All necessary setting have to be made in the namelist file airsea.nml.


USES:

   use airsea_variables
   use time,         only: julian_day, time_diff
   use observations, only: read_obs
   IMPLICIT NONE
 
   default: all is private.
   private
PUBLIC MEMBER FUNCTIONS:
   public                              :: init_air_sea
   public                              :: do_air_sea
   public                              :: clean_air_sea
   public                              :: set_sst
   public                              :: set_ssuv
   public                              :: integrated_fluxes
 ifdef _PRINTSTATE_
   public                              :: print_state_airsea
 endif
PUBLIC DATA MEMBERS:
   logical,  public                    :: calc_fluxes
   wind speed (m/s)
   REALTYPE, public, target            :: w
   surface short-wave radiation
   and surface heat flux (W/m^2)
   REALTYPE, public, target            :: I_0
   REALTYPE, public                    :: heat
 
   surface stress components (Pa)
   REALTYPE, public                    :: tx,ty
 
   precipitation and  evaporation
   (m/s)
   REALTYPE, public, target            :: precip
   REALTYPE, public, target            :: evap
 
   sea surface temperature (degC), sea surface salinity (psu),
   sea surface current components (m/s)
   REALTYPE, public                    :: sst
   REALTYPE, public                    :: sss
   REALTYPE, public                    :: ssu
   REALTYPE, public                    :: ssv
 
   integrated precipitationa and
   evaporation + sum (m)
   REALTYPE, public                    :: int_precip,int_evap,int_fwf
 
   integrated short-wave radiation,
   surface heat flux (J/m^2)
   REALTYPE, public                    :: int_swr,int_heat
 
   sum of short wave radiation
   and surface heat flux (J/m^2)
   REALTYPE, public                    :: int_total
   REALTYPE, public                    :: cloud
   feedbacks to drag and albedo by biogeochemistry
   REALTYPE, target, public            :: bio_drag_scale,bio_albedo
DEFINED PARAMETERS:
   integer,  parameter                 :: meteo_unit=20
   integer,  parameter                 :: swr_unit=21
   integer,  parameter                 :: heatflux_unit=22
   integer,  parameter                 :: momentum_unit=23
   integer,  parameter                 :: precip_unit=24
   integer,  parameter                 :: sst_unit=25
   integer,  parameter                 :: sss_unit=26
   integer,  parameter                 :: CONSTVAL=1
   integer,  parameter                 :: FROMFILE=2
REVISION HISTORY:
   Original author(s): Karsten Bolding, Hans Burchard
LOCAL VARIABLES:
   logical                   :: init_saved_vars
   integer                   :: swr_method
   integer                   :: fluxes_method
   integer                   :: back_radiation_method
   integer                   :: heat_method
   integer                   :: momentum_method
   integer                   :: precip_method
   integer                   :: sst_method
   integer                   :: sss_method
   integer                   :: ssuv_method
   integer                   :: hum_method
   logical, public           :: rain_impact
   logical, public           :: calc_evaporation
 
   character(len=PATH_MAX)   :: meteo_file
   character(len=PATH_MAX)   :: swr_file
   character(len=PATH_MAX)   :: heatflux_file
   character(len=PATH_MAX)   :: momentumflux_file
   character(len=PATH_MAX)   :: precip_file
   character(len=PATH_MAX)   :: sss_file
   character(len=PATH_MAX)   :: sst_file
 
   REALTYPE                  :: u10,v10
   REALTYPE                  :: airp
   REALTYPE                  :: airt,twet,tdew
   REALTYPE                  :: cloud_obs
   REALTYPE                  :: rh
 
   REALTYPE                  :: const_swr
   REALTYPE                  :: swr_factor
   REALTYPE                  :: const_heat
   REALTYPE                  :: const_tx,const_ty
   REALTYPE                  :: const_precip
   REALTYPE                  :: precip_factor
   REALTYPE                  :: dlon,dlat
 
   short_wave_radiation has an optional argument [swr] and therefore needs an explicit interface
   interface
      function short_wave_radiation(jul,secs,dlon,dlat,cloud,bio_albedo) result(swr)
         integer, intent(in)                 :: jul,secs
         REALTYPE, intent(in)                :: dlon,dlat
         REALTYPE, intent(in)                :: cloud
         REALTYPE, intent(in)                :: bio_albedo
         REALTYPE                            :: swr
      end function short_wave_radiation
   end interface
BUGS:
   Wind speed - w - is not entirely correct.
   No temporal interpolation is done. If the momentum fluxes tx,ty are
   specified w=0.
   The Fairall and Kondo methods calculate their own w internally.
   w is used by e.g. bio.F90



Subsections

Karsten Bolding 2012-12-28