climate_module.f90 Source File


Files dependent on this one

sourcefile~~climate_module.f90~~AfferentGraph sourcefile~climate_module.f90 climate_module.f90 sourcefile~actions.f90 actions.f90 sourcefile~actions.f90->sourcefile~climate_module.f90 sourcefile~aqu_1d_control.f90 aqu_1d_control.f90 sourcefile~aqu_1d_control.f90->sourcefile~climate_module.f90 sourcefile~cal_conditions.f90 cal_conditions.f90 sourcefile~cal_conditions.f90->sourcefile~climate_module.f90 sourcefile~ch_rthr.f90 ch_rthr.f90 sourcefile~ch_rthr.f90->sourcefile~climate_module.f90 sourcefile~ch_rtmusk.f90 ch_rtmusk.f90 sourcefile~ch_rtmusk.f90->sourcefile~climate_module.f90 sourcefile~ch_rtpath.f90 ch_rtpath.f90 sourcefile~ch_rtpath.f90->sourcefile~climate_module.f90 sourcefile~ch_temp.f90 ch_temp.f90 sourcefile~ch_temp.f90->sourcefile~climate_module.f90 sourcefile~ch_watqual4.f90 ch_watqual4.f90 sourcefile~ch_watqual4.f90->sourcefile~climate_module.f90 sourcefile~channel_control.f90 channel_control.f90 sourcefile~channel_control.f90->sourcefile~climate_module.f90 sourcefile~channel_om_output.f90 channel_om_output.f90 sourcefile~channel_om_output.f90->sourcefile~climate_module.f90 sourcefile~channel_output.f90 channel_output.f90 sourcefile~channel_output.f90->sourcefile~climate_module.f90 sourcefile~cli_atmodep_time_control.f90 cli_atmodep_time_control.f90 sourcefile~cli_atmodep_time_control.f90->sourcefile~climate_module.f90 sourcefile~cli_bounds_check.f90 cli_bounds_check.f90 sourcefile~cli_bounds_check.f90->sourcefile~climate_module.f90 sourcefile~cli_clgen.f90 cli_clgen.f90 sourcefile~cli_clgen.f90->sourcefile~climate_module.f90 sourcefile~cli_hmeas.f90 cli_hmeas.f90 sourcefile~cli_hmeas.f90->sourcefile~climate_module.f90 sourcefile~cli_initwgn.f90 cli_initwgn.f90 sourcefile~cli_initwgn.f90->sourcefile~climate_module.f90 sourcefile~cli_lapse.f90 cli_lapse.f90 sourcefile~cli_lapse.f90->sourcefile~climate_module.f90 sourcefile~cli_petmeas.f90 cli_petmeas.f90 sourcefile~cli_petmeas.f90->sourcefile~climate_module.f90 sourcefile~cli_pgen.f90 cli_pgen.f90 sourcefile~cli_pgen.f90->sourcefile~climate_module.f90 sourcefile~cli_pgenhr.f90 cli_pgenhr.f90 sourcefile~cli_pgenhr.f90->sourcefile~climate_module.f90 sourcefile~cli_pmeas.f90 cli_pmeas.f90 sourcefile~cli_pmeas.f90->sourcefile~climate_module.f90 sourcefile~cli_precip_control.f90 cli_precip_control.f90 sourcefile~cli_precip_control.f90->sourcefile~climate_module.f90 sourcefile~cli_read_atmodep.f90 cli_read_atmodep.f90 sourcefile~cli_read_atmodep.f90->sourcefile~climate_module.f90 sourcefile~cli_read_atmodep_cs.f90 cli_read_atmodep_cs.f90 sourcefile~cli_read_atmodep_cs.f90->sourcefile~climate_module.f90 sourcefile~cli_read_atmodep_salt.f90 cli_read_atmodep_salt.f90 sourcefile~cli_read_atmodep_salt.f90->sourcefile~climate_module.f90 sourcefile~cli_rhgen.f90 cli_rhgen.f90 sourcefile~cli_rhgen.f90->sourcefile~climate_module.f90 sourcefile~cli_slrgen.f90 cli_slrgen.f90 sourcefile~cli_slrgen.f90->sourcefile~climate_module.f90 sourcefile~cli_smeas.f90 cli_smeas.f90 sourcefile~cli_smeas.f90->sourcefile~climate_module.f90 sourcefile~cli_staread.f90 cli_staread.f90 sourcefile~cli_staread.f90->sourcefile~climate_module.f90 sourcefile~cli_tgen.f90 cli_tgen.f90 sourcefile~cli_tgen.f90->sourcefile~climate_module.f90 sourcefile~cli_tmeas.f90 cli_tmeas.f90 sourcefile~cli_tmeas.f90->sourcefile~climate_module.f90 sourcefile~cli_weatgn.f90 cli_weatgn.f90 sourcefile~cli_weatgn.f90->sourcefile~climate_module.f90 sourcefile~cli_wgnread.f90 cli_wgnread.f90 sourcefile~cli_wgnread.f90->sourcefile~climate_module.f90 sourcefile~cli_wmeas.f90 cli_wmeas.f90 sourcefile~cli_wmeas.f90->sourcefile~climate_module.f90 sourcefile~cli_wndgen.f90 cli_wndgen.f90 sourcefile~cli_wndgen.f90->sourcefile~climate_module.f90 sourcefile~climate_control.f90 climate_control.f90 sourcefile~climate_control.f90->sourcefile~climate_module.f90 sourcefile~co2_read.f90 co2_read.f90 sourcefile~co2_read.f90->sourcefile~climate_module.f90 sourcefile~conditions.f90 conditions.f90 sourcefile~conditions.f90->sourcefile~climate_module.f90 sourcefile~cs_rain.f90 cs_rain.f90 sourcefile~cs_rain.f90->sourcefile~climate_module.f90 sourcefile~cs_uptake_read.f90 cs_uptake_read.f90 sourcefile~cs_uptake_read.f90->sourcefile~climate_module.f90 sourcefile~ero_eiusle.f90 ero_eiusle.f90 sourcefile~ero_eiusle.f90->sourcefile~climate_module.f90 sourcefile~ero_ovrsed.f90 ero_ovrsed.f90 sourcefile~ero_ovrsed.f90->sourcefile~climate_module.f90 sourcefile~ero_pkq.f90 ero_pkq.f90 sourcefile~ero_pkq.f90->sourcefile~climate_module.f90 sourcefile~ero_ysed.f90 ero_ysed.f90 sourcefile~ero_ysed.f90->sourcefile~climate_module.f90 sourcefile~et_act.f90 et_act.f90 sourcefile~et_act.f90->sourcefile~climate_module.f90 sourcefile~et_pot.f90 et_pot.f90 sourcefile~et_pot.f90->sourcefile~climate_module.f90 sourcefile~gcycl.f90 gcycl.f90 sourcefile~gcycl.f90->sourcefile~climate_module.f90 sourcefile~hru_control.f90 hru_control.f90 sourcefile~hru_control.f90->sourcefile~climate_module.f90 sourcefile~hru_hyds.f90 hru_hyds.f90 sourcefile~hru_hyds.f90->sourcefile~climate_module.f90 sourcefile~hru_lte_read.f90 hru_lte_read.f90 sourcefile~hru_lte_read.f90->sourcefile~climate_module.f90 sourcefile~hru_lum_init.f90 hru_lum_init.f90 sourcefile~hru_lum_init.f90->sourcefile~climate_module.f90 sourcefile~hru_urban.f90 hru_urban.f90 sourcefile~hru_urban.f90->sourcefile~climate_module.f90 sourcefile~hru_urbanhr.f90 hru_urbanhr.f90 sourcefile~hru_urbanhr.f90->sourcefile~climate_module.f90 sourcefile~hyd_read_connect.f90 hyd_read_connect.f90 sourcefile~hyd_read_connect.f90->sourcefile~climate_module.f90 sourcefile~hydro_init.f90 hydro_init.f90 sourcefile~hydro_init.f90->sourcefile~climate_module.f90 sourcefile~nut_nrain.f90 nut_nrain.f90 sourcefile~nut_nrain.f90->sourcefile~climate_module.f90 sourcefile~path_ls_process.f90 path_ls_process.f90 sourcefile~path_ls_process.f90->sourcefile~climate_module.f90 sourcefile~pl_biomass_gro.f90 pl_biomass_gro.f90 sourcefile~pl_biomass_gro.f90->sourcefile~climate_module.f90 sourcefile~pl_community.f90 pl_community.f90 sourcefile~pl_community.f90->sourcefile~climate_module.f90 sourcefile~pl_dormant.f90 pl_dormant.f90 sourcefile~pl_dormant.f90->sourcefile~climate_module.f90 sourcefile~pl_leaf_drop.f90 pl_leaf_drop.f90 sourcefile~pl_leaf_drop.f90->sourcefile~climate_module.f90 sourcefile~pl_leaf_senes.f90 pl_leaf_senes.f90 sourcefile~pl_leaf_senes.f90->sourcefile~climate_module.f90 sourcefile~pl_nut_demand.f90 pl_nut_demand.f90 sourcefile~pl_nut_demand.f90->sourcefile~climate_module.f90 sourcefile~pl_tstr.f90 pl_tstr.f90 sourcefile~pl_tstr.f90->sourcefile~climate_module.f90 sourcefile~plant_init.f90 plant_init.f90 sourcefile~plant_init.f90->sourcefile~climate_module.f90 sourcefile~regres.f90 regres.f90 sourcefile~regres.f90->sourcefile~climate_module.f90 sourcefile~res_control.f90 res_control.f90 sourcefile~res_control.f90->sourcefile~climate_module.f90 sourcefile~res_cs.f90 res_cs.f90 sourcefile~res_cs.f90->sourcefile~climate_module.f90 sourcefile~res_hydro.f90 res_hydro.f90 sourcefile~res_hydro.f90->sourcefile~climate_module.f90 sourcefile~res_nutrient.f90 res_nutrient.f90 sourcefile~res_nutrient.f90->sourcefile~climate_module.f90 sourcefile~res_sediment.f90 res_sediment.f90 sourcefile~res_sediment.f90->sourcefile~climate_module.f90 sourcefile~res_weir_release.f90 res_weir_release.f90 sourcefile~res_weir_release.f90->sourcefile~climate_module.f90 sourcefile~rls_routesurf.f90 rls_routesurf.f90 sourcefile~rls_routesurf.f90->sourcefile~climate_module.f90 sourcefile~salt_rain.f90 salt_rain.f90 sourcefile~salt_rain.f90->sourcefile~climate_module.f90 sourcefile~salt_roadsalt.f90 salt_roadsalt.f90 sourcefile~salt_roadsalt.f90->sourcefile~climate_module.f90 sourcefile~salt_roadsalt_read.f90 salt_roadsalt_read.f90 sourcefile~salt_roadsalt_read.f90->sourcefile~climate_module.f90 sourcefile~salt_uptake_read.f90 salt_uptake_read.f90 sourcefile~salt_uptake_read.f90->sourcefile~climate_module.f90 sourcefile~sd_channel_control2.f90 sd_channel_control2.f90 sourcefile~sd_channel_control2.f90->sourcefile~climate_module.f90 sourcefile~sd_channel_control3.f90 sd_channel_control3.f90 sourcefile~sd_channel_control3.f90->sourcefile~climate_module.f90 sourcefile~sd_channel_sediment3.f90 sd_channel_sediment3.f90 sourcefile~sd_channel_sediment3.f90->sourcefile~climate_module.f90 sourcefile~sq_canopyint.f90 sq_canopyint.f90 sourcefile~sq_canopyint.f90->sourcefile~climate_module.f90 sourcefile~sq_greenampt.f90 sq_greenampt.f90 sourcefile~sq_greenampt.f90->sourcefile~climate_module.f90 sourcefile~sq_snom.f90 sq_snom.f90 sourcefile~sq_snom.f90->sourcefile~climate_module.f90 sourcefile~stmp_solt.f90 stmp_solt.f90 sourcefile~stmp_solt.f90->sourcefile~climate_module.f90 sourcefile~swift_output.f90 swift_output.f90 sourcefile~swift_output.f90->sourcefile~climate_module.f90 sourcefile~swr_subwq.f90 swr_subwq.f90 sourcefile~swr_subwq.f90->sourcefile~climate_module.f90 sourcefile~wet_cs.f90 wet_cs.f90 sourcefile~wet_cs.f90->sourcefile~climate_module.f90 sourcefile~wet_salt.f90 wet_salt.f90 sourcefile~wet_salt.f90->sourcefile~climate_module.f90 sourcefile~wetland_control.f90 wetland_control.f90 sourcefile~wetland_control.f90->sourcefile~climate_module.f90

Source Code

      module climate_module
    
      implicit none
      
      integer :: ppet_ndays = 30                                !none          |number of days for precip/pet sum
      integer :: ppet_mce = 0                                   !none          |current element in precip/pet linked list
      real, dimension (:,:), allocatable :: frad                !none          |fraction of solar radiation occuring 
                                                                !              |during hour in day in HRU
      real, dimension (:,:), allocatable :: wgncur              !none          |parameter to predict the impact of precip on
                                                                !              |other weather attributes
      real, dimension (:,:), allocatable :: wgnold              !none          |previous value of wgncur(:,:)
      integer, dimension (:), allocatable :: elevp              !m             |elevation of precipitation gage station
      integer, dimension (:), allocatable :: elevt              !m             |elevation of temperature gage station
      integer, dimension (:), allocatable :: idg                !none          |array location of random number seed
                                                                !              |used for a given process
      integer, dimension (:,:), allocatable :: rndseed          !none          |random number generator seeds
      real, dimension (:), allocatable :: rnd2                  !none          |random number between 0.0 and 1.0
      real, dimension (:), allocatable :: rnd3                  !none          |random number between 0.0 and 1.0
      real, dimension (:), allocatable :: rnd8                  !none          |random number between 0.0 and 1.0
      real, dimension (:), allocatable :: rnd9                  !none          |random number between 0.0 and 1.0
      integer :: rndseed_cond = 748932582   ! random number seed for dtbl conditional
      real, dimension(:), allocatable :: co2y

      type weather_generator_db      
        real :: lat =  0.0                          !! degrees      |latitude of weather station used to compile data
        real :: long = 0.0                          !! degrees      |longitude of weather station 
        real :: elev = 0.0                          !!              |elevation of weather station used to compile weather generator data
        real :: rain_yrs = 10.0                     !! none         |number of years of recorded maximum 0.5h rainfall used to calculate values for rainhhmx(:)
        real, dimension (12) :: tmpmx = 0.          !! deg C        |avg monthly maximum air temperature
        real, dimension (12) :: tmpmn = 0.          !! deg C        |avg monthly minimum air temperature
        real, dimension (12) :: tmpstdmx = 0.       !! deg C        |standard deviation for avg monthly maximum air temperature 
        real, dimension (12) :: tmpstdmn = 0.       !! deg C        |standard deviation for avg monthly minimum air temperature
        real, dimension (12) :: pcpmm = 0.          !! mm           |amount of precipitation in month
        real, dimension (12) :: pcpstd = 0.         !! mm/day       |standard deviation for the average daily
        real, dimension (12) :: pcpskw = 0.         !! none         |skew coefficient for the average daily precipitation
        real, dimension (12) :: pr_wd = 0.          !! none         |probability of wet day after dry day in month 
        real, dimension (12) :: pr_ww = 0.          !! none         |probability of wet day after wet day in month
        real, dimension (12) :: pcpd = 0.           !! days         |average number of days of precipitation in the month
        real, dimension (12) :: rainhmx = 0.        !! mm           |maximum 0.5 hour rainfall in month
        real, dimension (12) :: solarav = 0.        !! MJ/m^2/day   |average daily solar radiation for the month
        real, dimension (12) :: dewpt = 0.          !! deg C        |average dew point temperature for the month
        real, dimension (12) :: windav = 0.         !! m/s          |average wind speed for the month
      end type weather_generator_db
      type (weather_generator_db), dimension(:),allocatable :: wgn
      type (weather_generator_db), dimension(:),allocatable :: wgn_orig

      type wgn_parms
        real, dimension (12) :: pr_wdays = 0.   !! none          |proportion of wet days in a month
        real, dimension (12) :: pcpmean = 0.    !! mm/day        |average amount of precipitation falling in one day for the month
        real :: daylmn = 0.                     !!               |minimum day length
        real :: daylth = 0.                     !!               |day length threshhold to trigger dormancy
        real :: latsin = 0.                     !!               |sine of latitude
        real :: latcos = 0.                     !!               |cosine of latitude
        real :: phutot = 0.                     !!               |total base zero heat units for year
        real :: pcpdays = 0.                    !!               |days of precip in year
        real :: tmp_an = 0.                     !!               |average annual air temperature
        real :: pcp_an = 0.                     !!               |average annual precipitation
        real :: ppet_an = 0.                    !!               |average annual precip/pet
        real :: precip_sum = 0.                 !!               |30 day sum of PET (mm)
        real :: pet_sum = 0.                    !!               |30 day sum of PRECIP (mm)
        real :: p_pet_rto = 0.                  !!               |30 day sum of PRECIP/PET ratio
        real, dimension (12) :: pcf = 0.        !!               |normalization factor for precipitation
        real, dimension (12) :: amp_r = 0.      !!               |alpha factor for rain(mo max 0.5h rain)
        real, dimension (12) :: pet = 0.        !!               |average monthly PET (mm)
        integer, dimension (:), allocatable :: mne_ppet          !!none          |next element in precip-pet linked list
        real, dimension (:), allocatable :: precip_mce           !!mm            |precip on current day of 30 day list 
        real, dimension (:), allocatable :: pet_mce              !!mm            |pet on current day of 30 day list 
        integer :: ireg = 1                     !!               |annual precip category-1 <= 508 mm; 2 > 508 and <= 1016 mm; 3 > 1016 mm/yr
        integer :: idewpt = 0                   !!               |0=dewpoint; 1=rel humididty input
      end type wgn_parms
      type (wgn_parms), dimension(:),allocatable :: wgn_pms
          
      type wind_direction_db
        character(len=16) :: name = "default-uniform"
        real, dimension (12,16) :: dir = 1.     !! 1-16         |avg monthly wind direstion
      end type wind_direction_db
      type (wind_direction_db), dimension(:),allocatable :: wnd_dir
      
      type weather_daily
        real :: precip = 0.
        real :: precip_next = 0.                            !! mm           |precip generated for next day
        real :: tmax = 0.
        real :: tmin = 0.
        real :: tave = 0.
        real :: solrad = 0.
        real :: solradmx = 0.
        real :: rhum = 0.
        real :: dewpt = 0.
        real :: windsp = 0.
        real :: pet = 0.0
        !real :: pet
        real :: wndir = 0.
        real :: phubase0 = 0.                               !! deg C        |cumulative base 0 heat units
        real :: ppet = 0.                                   !! mm/mm        |climatic moisture index - cumulative p/pet
        real :: daylength = 0.                              !! hr           |day length
        real :: precip_half_hr = 0.                         !! frac         |fraction of total rainfall on day that occurs
                                                            !!              |during 0.5h highest intensity rainfall
        character(len=3) :: precip_prior_day = "dry"        !!              |"dry" or "wet"
        real, dimension(:), allocatable :: ts               !! mm           |subdaily precip - current day
        real, dimension(:), allocatable :: ts_next          !! mm           |subdaily precip - next day
      end type weather_daily
      type (weather_daily) :: w
            
      type weather_codes_station
        integer :: wgn = 1        !!  weather generator station number
        integer :: pgage = 0      !!  gage number for rainfall (sim if generating)
        integer :: tgage = 0      !!  gage number fo temperature (sim if generating)
        integer :: sgage = 0      !!  gage number for solar radiation (sim if generating) 
        integer :: hgage = 0      !!  gage number for relative humidity (sim if generating)
        integer :: wgage = 0      !!  gage number for windspeed (sim if generating)
        integer :: petgage = 0      !!  number of pet gage files used in sim
        integer :: atmodep = 0    !!  atmospheric depostion data file locator
      end type weather_codes_station
      
      type weather_codes_station_char
        !character (len=50) ::  wst = ""      !!  weather station name
        character (len=50) :: wgn = ""        !!  weather generator name
        character (len=50) :: pgage = ""      !!  gage name for rainfall 
        character (len=50) :: tgage = ""      !!  gage name for temperature
        character (len=50) :: sgage = ""      !!  gage name for solar radiation
        character (len=50) :: hgage = ""      !!  gage name for relative humidity
        character (len=50) :: wgage = ""      !!  gage name for windspeed
        character (len=50) :: petgage = ""    !!  name of pet gage ?
        character (len=50) :: atmodep = ""    !!  atmospheric depostion data file locator
      end type weather_codes_station_char

      type weather_station
        character(len=50) :: name = "Farmer Branch IL"
        real :: lat = 0.                    ! degrees    |latitude
        type (weather_codes_station_char) :: wco_c
        type (weather_codes_station) :: wco 
        type (weather_daily) :: weat
        real :: precip_aa = 0.              ! mm         |average annual precipitation
        real :: pet_aa = 0.                 ! mm         |average annual potential ET
        integer :: pcp_ts = 0               ! 1/day      |precipitation time steps per day (0 or 1 = daily)
        real, dimension(12) :: rfinc = 0    ! deg C      |monthly precipitation adjustment
        real, dimension(12) :: tmpinc = 0   ! deg C      |monthly temperature adjustment
        real, dimension(12) :: radinc = 0   ! MJ/m^2     |monthly solar radiation adjustment
        real, dimension(12) :: huminc = 0   ! none       |monthly humidity adjustment
        real, dimension(:), allocatable :: tlag     ! deg C      |daily average temperature for channel temp lag
        real :: airlag_temp = 0.            ! deg C      |average temperature w_temp%airlag_d days ago
        integer :: tlag_mne = 1             !            |next element (day) for the air temp linked list
      end type weather_station
      type (weather_station), dimension(:),allocatable :: wst
         
      type climate_change_variables
        character(len=50) :: name = "Increment or Scenario"
        integer :: ref_yr = 0               ! none       |reference year to begin incremental adjustments
        real :: co2inc = 0                  ! ppm        |annual CO2 increment
        real, dimension(12) :: rfinc = 0    ! deg C      |monthly precipitation annual increment
        real, dimension(12) :: tmpinc = 0   ! deg C      |monthly temperature annual increment
        real, dimension(12) :: radinc = 0   ! MJ/m^2     |monthly solar radiation annual increment
        real, dimension(12) :: huminc = 0   ! none       |monthly humidity annual increment
        real :: co2scen = 0                 ! ppm        |annual CO2 scenario adjustment
        real, dimension(12) :: rfscen = 0   ! deg C      |monthly precipitation scenario adjustment
        real, dimension(12) :: tmpscen = 0  ! deg C      |monthly temperature scenario adjustment
        real, dimension(12) :: radscen = 0  ! MJ/m^2     |monthly solar radiation scenario adjustment
        real, dimension(12) :: humscen = 0  ! none       |monthly humidity scenario adjustment
      end type climate_change_variables
         
      type climate_measured_data
        character (len=50) :: filename = ""
        real :: lat = 0.                    !! latitude of raingage         
        real :: long = 0.                   !! longitude of raingage
        real :: elev = 0.                   !! elevation of raingage
        integer :: nbyr = 0                 !! number of years of daily rainfall
        integer :: tstep = 0                !! timestep of precipitation  
        
        integer :: days_gen = 0             !! number of missing days - generated 
        integer :: yrs_start = 1            !! number of years of simulation before record starts
        
        integer :: start_day = 0            !! daily precip start julian day
        integer :: start_yr = 0             !! daily precip start year
        integer :: end_day = 0              !! daily precip end julian day
        integer :: end_yr = 0               !! daily precip end year
        real, dimension (12) :: mean_mon = 0. !! same as variable unit        |mean monthly measured value
        real, dimension (12) :: max_mon = 0.  !! same as variable unit        |maximum monthly measured value
        real, dimension (12) :: min_mon = 0.  !! same as variable unit        |minimum monthly measured value
        
        real, dimension (:,:), allocatable :: ts
        real, dimension (:,:), allocatable :: ts2
        real, dimension (:,:,:), allocatable :: tss
      end type climate_measured_data
      type (climate_measured_data), dimension(:), allocatable :: pcp
      type (climate_measured_data), dimension(:), allocatable :: tmp    
      type (climate_measured_data), dimension(:), allocatable :: slr
      type (climate_measured_data), dimension(:), allocatable :: hmd
      type (climate_measured_data), dimension(:), allocatable :: wnd
      type (climate_measured_data), dimension(:), allocatable :: petm
      
      type atmospheric_deposition
        real :: nh4_rf = 1.         !! ave annual ammonia in rainfall - mg/l
        real :: no3_rf = .2         !! ave annual nitrate in rainfall - mg/l
        real :: nh4_dry = 0.        !! ave annual ammonia dry deposition - kg/ha/yr
        real :: no3_dry = 0.        !! ave annual nitrate dry deposition - kg/ha/yr
        character(len=50) :: name = ""
        real, dimension(:), allocatable :: nh4_rfmo
        real, dimension(:), allocatable :: no3_rfmo
        real, dimension(:), allocatable :: nh4_drymo
        real, dimension(:), allocatable :: no3_drymo
        real, dimension(:), allocatable :: nh4_rfyr
        real, dimension(:), allocatable :: no3_rfyr
        real, dimension(:), allocatable :: nh4_dryyr
        real, dimension(:), allocatable :: no3_dryyr
      end type atmospheric_deposition
      type (atmospheric_deposition),dimension(:), allocatable :: atmodep
 
      type atmospheric_deposition_control
        integer :: num_sta = 0
        character(len=2) :: timestep = ""
        integer :: ts = 0
        integer :: mo_init = 0
        integer :: yr_init = 0
        integer :: num = 0
        integer :: first = 1
      end type atmospheric_deposition_control
      type (atmospheric_deposition_control), save :: atmodep_cont
      
      !rtb salt / rtb cs
      character(len=1) :: salt_atmo = "n"
      character(len=1) :: cs_atmo = "n"
      
      type atmospheric_deposition_cs
        real :: rf = 0.                             !! concentration in rainfall - mg/l
        real :: dry = 0.                            !! dry deposition - kg/ha/yr
        real, dimension(:), allocatable :: rfmo
        real, dimension(:), allocatable :: drymo
        real, dimension(:), allocatable :: rfyr
        real, dimension(:), allocatable :: dryyr
      end type atmospheric_deposition_cs
      type object_deposition_cs
        type (atmospheric_deposition_cs), dimension (:), allocatable :: salt
        type (atmospheric_deposition_cs), dimension (:), allocatable :: cs
      end type object_deposition_cs
      type (object_deposition_cs), dimension (:), allocatable :: atmodep_salt
      type (object_deposition_cs), dimension (:), allocatable :: atmodep_cs
      
      !rtb salt
      type road_salt
        real :: road = 0.                            !! ave annual salt ion loading via road salt application (kg/ha)
        real, dimension(:,:), allocatable :: roadday !! daily salt ion loading via road salt application (kg/ha)
        real, dimension(:), allocatable :: roadmo    !! monthly salt ion loading via road salt application (kg/ha)
        real, dimension(:), allocatable :: roadyr    !! yearly salt ion loading via road salt application (kg/ha)
      end type road_salt
      type object_road_salt
        type (road_salt), dimension (:), allocatable :: salt
      end type object_road_salt
      type (object_road_salt), dimension (:), allocatable :: rdapp_salt !applied road salt
      
      character(len=50), dimension(:), allocatable :: wst_n
      character(len=50), dimension(:), allocatable :: wgn_n
      character(len=50), dimension(:), allocatable :: pcp_n
      character(len=50), dimension(:), allocatable :: tmp_n
      character(len=50), dimension(:), allocatable :: slr_n
      character(len=50), dimension(:), allocatable :: hmd_n
      character(len=50), dimension(:), allocatable :: wnd_n
      character(len=50), dimension(:), allocatable :: atmo_n
      character(len=50), dimension(:), allocatable :: petm_n
          
      end module climate_module