Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • foresee/4C
  • gutsch/4C
2 results
Show changes
Showing
with 8692 additions and 588 deletions
......@@ -165,6 +165,7 @@ do
case (8, 9, 10)
call readsoil ! reading soil parameter
IF (flag_end .gt.0) return
call readredN ! Input redN or test resp.
end select
endif
......@@ -198,7 +199,7 @@ call readlit
! Initialization of soil model with profile data
call soil_ini ! Aufruf ohne s_cn_ini
! Initialization disturbances
IF (flag_dis .eq. 1) CALL dist_ini
IF (flag_dis .eq. 1 .or. flag_dis .eq. 2) CALL dist_ini
! Initialization of stand
call prepare_stand
IF (flag_end .gt.0) return
......@@ -268,12 +269,13 @@ if (flag_eva .gt.10) call evapo_ini
subroutine readsoil ! Input of soil parameter
use data_par
use data_soil_t
use data_site
implicit none
integer :: inunit, helpnl, helpnr
integer :: inunit, helpnl, helpnr, ihelp
real helpgrw, hlong, hlat
character :: text
character(30) :: hor, boart, helpid
......@@ -283,17 +285,15 @@ if (flag_trace) write (unit_trace, '(I4,I10,A)') iday, time_cur, ' readsoil'
! Setting of flag_surf from flag_cond
select case (flag_cond)
case (0,1,2,3)
flag_surf = 0
case (10,11,12,13)
flag_surf = 1
case (0,1,2,3)
flag_surf = 0
case (20,21,22,23)
flag_surf = 2
case (10,11,12,13)
flag_surf = 1
case (30,31,32,33)
flag_surf = 3
case (30,31,32,33)
flag_surf = 3
end select
! Setting of flag_bc from flag_decomp
......@@ -479,7 +479,7 @@ IF (ex .eqv. .true.) then
if (.not.flag_mult8910) print *,' >>>FORESEE message: soil_id ', soilid(ip), ' not found'
if (.not.flag_mult8910) print *,' Check your input choice!!!'
if (help==1) call dealloc_soil
CALL error_mess(time,"soil identificator not found"//adjustl(soilid(ip))//"ip No.",real(help_ip))
CALL error_mess(time,"soil identificator not found "//adjustl(soilid(ip))//"ip No.",real(help_ip))
flag_end = 5
return
ENDIF ! ios
......@@ -535,15 +535,11 @@ IF (ex .eqv. .true.) then
endif
end do
IF (ios .ne.0) then
if (.not.flag_mult8910) print *,' >>>FORESEE message: Error during reading soil data!'
WRITE(*,'(A)',advance='no') ' Stop program (y/n)? '
read *, a
IF ( a .eq. 'y' .or. a .eq. 'Y') then
print *, ' STOP program!'
stop
endif
print *,' >>>FORESEE message: Error during reading soil data!'
print *, ' Program stopped!'
IF (help==1) call dealloc_soil
if (.not.flag_mult8910) print *,' Check your input choice!!!'
flag_end = 7
return
endif ! ios
exit
endif
......@@ -556,7 +552,7 @@ IF (ex .eqv. .true.) then
print *,' Check your input choice!!!'
endif
if (help==1) call dealloc_soil
CALL error_mess(time,"soil identificator not found"//adjustl(soilid(ip))//"ip No.",real(help_ip))
CALL error_mess(time,"soil identificator not found "//adjustl(soilid(ip))//"ip No.",real(help_ip))
flag_end = 5
return
ENDIF ! ios
......@@ -915,7 +911,7 @@ if (.not.flag_mult8910 .or. (flag_mult8910 .and. anh .eq. "1") .or. (flag_mult89
WRITE(unit_ctr,'(A66,I4)') 'Time step for photosynthesis calculations (days) - ns_pro: ',ns_pro
WRITE(unit_ctr,'(A66,I4)') 'Mortality (0-OFF,1-ON stress, 2- ON stress+intr) - flag_mort: ',flag_mort
WRITE(unit_ctr,'(A66,I4)') 'Regeneration (0-OFF,1-ON, 2-weekly growth of seedl.) - flag_reg: ',flag_reg
WRITE(unit_ctr,'(A66,I4)') 'use FORSKA for regeneration (0-OFF,1-ON) - flag_forska: ',flag_forska
WRITE(unit_ctr,'(A66,I4)') 'use FORSKA for regeneration (0-OFF,1-ON) - flag_forska: ',flag_lambda
WRITE(unit_ctr,'(A66,I4)') 'Stand initialization (0-no,1-from *.ini,2-generate) - flag_stand: ',flag_stand
WRITE(unit_ctr,'(A66,I4)') 'Ground vegetation initialization (0-no,1-generate) - flag_sveg: ',flag_sveg
WRITE(unit_ctr,'(A66,I4)') 'Stand management (0-no,1-yes, 2 - seed once) - flag_mg: ',flag_mg
......@@ -1179,22 +1175,17 @@ real hNO, hNH
if (flag_trace) write (unit_trace, '(I4,I10,A)') iday, time_cur, ' readdepo'
if (.not.allocated(NOd)) allocate (NOd (1:366,1:year))
if (.not.allocated(NHd)) allocate (NHd (1:366, 1:year))
! for areal usage standard/constant deposition is set as concentration:
if (flag_multi .eq. 8 .or. flag_mult910) then
flag_depo = 2
if (.not.allocated(NOd)) then
allocate (NOd (1:366,1:year))
NOd = NOdep(ip) ! concentration mg/l
endif
if (.not.allocated(NHd)) then
allocate (NHd (1:366,1:year))
NHd = NHdep(ip) ! concentration mg/l
endif
NOd = NOdep(ip) ! concentration mg/l
NHd = NHdep(ip) ! concentration mg/l
return
endif
if (.not.allocated(NOd)) allocate (NOd (1:366,1:year))
if (.not.allocated(NHd)) allocate (NHd (1:366, 1:year))
NOd = 0.
NHd = 0.
......@@ -1427,6 +1418,7 @@ END subroutine readdepo
SUBROUTINE readredN
use data_out
use data_site
use data_species
use data_stand
use data_simul
......
......@@ -32,7 +32,6 @@ character a
character(8) actdate
character(10) acttime, helpsim, text1, text2
real time1, time2, time3
logical lhelp
unit_err=getunit()
if(flag_multi.eq.5) dirout = './'
......@@ -46,20 +45,6 @@ write (unit_trace, '(I4,I10,A)') iday, time_cur, ' sim_control'
! check daily output
if (year > 5 .and. flag_dayout .ge. 1) then
lhelp = .true.
do i = 1,outd_n
if (outd(i)%out_flag .eq. flag_dayout) then
select CASE (outd(i)%kind_name)
CASE ('day_short')
lhelp = .false.
end select
endif
enddo
if (lhelp) then
write(*,*) ' Warning: Your choice of daily output is ON with a simulation time of'
write(*,'(I6,A,I8,A)') year,' years. This option will create ',365*year,' data records per file!'
write(*,'(A)',advance='no') ' Do you really want do use daily output (y/n)? '
......@@ -67,7 +52,6 @@ if (year > 5 .and. flag_dayout .ge. 1) then
IF (a .eq. 'n' .or. a .eq. 'N') then
flag_dayout = 0
ENDIF
endif ! lhelp
ENDIF
! open file ycomp (yearly compressed output (multi run))
......@@ -136,10 +120,14 @@ time3 = 0.
case (5)
print*,ip, ' stop in readsoil, soil ID not found ', adjustl(soilid(ip))
case (6)
write(*,'(A,I5)') ' >>>foresee message: stop in read_cli - no climate data for year ',time_b
write(*,'(A,I5)') ' >>>foresee message: stop in read_cli, no climate data for year ',time_b
call finish_simul
stop
case (7)
print*,ip, ' stop in readsoil, error during reading soil data ', adjustl(soilid(ip))
call finish_simul
stop
case default
case default
print*,ip, 'flag_end = ', flag_end
end select
......@@ -228,7 +216,7 @@ if (flag_trace) write (unit_trace, '(I4,I10,A)') iday, time_cur, ' simulation_4C
DO time = 1, year
iday = 1
! Update population variable for new year if population is changed through interventions
if (flag_standup .gt. 0 .or. flag_dis==1) then
if (flag_standup .gt. 0 .or. flag_dis==1 .or. flag_dis==1) then
call stand_balance
call standup
flag_standup = 0
......@@ -239,7 +227,10 @@ if (flag_trace) write (unit_trace, '(I4,I10,A)') iday, time_cur, ' simulation_4C
! read or create Redn for areal application
IF (time.EQ.1 .and. flag_redn) CALL RedN_ini
IF (flag_dis .eq. 1) CALL dis_manag
IF (flag_dis .eq. 1 .or. flag_dis .eq. 2) then
CALL dis_manag
endif
! simulation of processes with subannual resolution (fluxes and soil)
CALL stand_daily
......
......@@ -453,12 +453,6 @@ CASE (0, 10, 20, 30, 40) ! de Vries
tcond0 = numera/denom * 86400. ! s --> day
CASE(2, 12, 22, 32, 42) ! sum like resistor; wie Widerstaende addieren
tcond2 = water%vf / water%tc + quarz%vf / quarz%tc + clay%vf / clay%tc + &
silt%vf / silt%tc + humus%vf / humus%tc + air%vf / air%tc + stone%vf / stone%tc + ice%vf / ice%tc
tcond2 = 86400. / tcond2
CASE(3, 13, 23, 33, 43) ! Campbell
vfm = clay%vf + silt%vf + stone%vf
vfs = vfm + quarz%vf + humus%vf
......@@ -504,13 +498,6 @@ CASE (1, 11, 21, 31, 41) ! Neusypina
hcapi = hcap1
tcondi = tcond1
CASE (2, 12, 22, 32, 42) ! sum like resitors; Widerstnde addieren
if ((tcond2 .gt. 8000.) .or. (tcond2 .le. 0.)) then
continue
endif
hcapi = hcap0
tcondi = tcond2
CASE (3, 13, 23, 33, 43) ! Campbell
hcapi = hcap0
tcondi = tcond3
......
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! Subroutines used only with flag flag_forska
!
! cetbl_4c
! CGTSPE_4c
! CLIMEF_4c
! gsdr_cal
! tmp_mean
! therm
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
SUBROUTINE CETBL_4c
use data_effect
use data_taxa
use data_simul
use data_stand
! function declarations
REAL RAND
! local variables
real :: PMX
INTEGER :: I,J,K
integer,dimension(17) :: nsap= 0
real,dimension(17) :: amdest = 0., &
amdest1 = 0.
if (flag_light.eq.1.or.flag_light.eq.2) then
PMX= Vstruct(lowest_layer)%Irel
else if (flag_light.eq.3.OR.flag_light.EQ.4) then
PMX = Bgpool(lowest_layer+1)
end if
! amend the EST for climate according to the climate multipliers
do i=1,17
AMDEST(I)=EST(I)*GDDMX(I)*DRMX(I)*TCMX(I)*TWMX(I)*PMX &
*XTFTMX(I)*TWARMX(I)
AMDEST1(I)=EST(I)*AMIN1(GDDMX(I),DRMX(I),TCMX(I),TWMX(I), &
PMX,XTFTMX(I),TWARMX(I))
IF(GSC(I).EQ.0.0)GOTO 301
301 CONTINUE
end do
RETURN
END subroutine cetbl_4c
SUBROUTINE CGTSPE_4c
! input of species data for regeneration
! reads species parameters
use data_simul
use data_taxa
! local variables
INTEGER:: I,J,K,nowunit,ntax
! reads number of taxa (NTAX)
nowunit=getunit()
open(unit=nowunit,file= '/data/safe/4C/4C_input/par/param_4c.dat', status='old')
READ(nowunit,*) NTAX
! reads for each taxon:
! NAM(I): name (8 characters)
! HMX(I): max height (m)
! HDS(I): initial slope of diameter vs height (m/cm)
! hgro(I): maximum height growth per year (m)
! ALP(I): half-saturation point (umol/m**2/s)
! LCP(I): compensation point (umol/m**2/s)
! GSC(I): growth constant (cm**2/m/yr)
! EST(I): sapling establishment rate (/ha/yr)
! TDI(I): threshold relative growth efficiency for increased mortality
! UMN(I): intrinsic mortality rate (/yr)
! UMX(I): suppressed mortality rate (/yr)
! SPR(I): number of sprouts per tree (0.0 or greater)
! SMN(I): minimum diameter for sprouting (cm)
! LAC(I): initial leaf area/D2 ratio (m**2/cm**2)
! LAF(I): sapwood turnover rate (/yr)
! BCF(I): stemwood biomass conversion factor (kg/cm**2/m)
! R(I): volumetric sapwood maintenance cost (/yr)
! Q10(I): rate of increase of respiration
! TMIN(I): minimum temperature for assimilation
! TMAX(I): maximum temperature for assimilation
! CCP(I): species compensation point
! DRI(I): maximum tolerated drought-index
!MINGDD(I): minimum growing degree-days
! MINTC(I): minimum temperature of coldest month (degrees C)
! MAXTC(I): maximum temperature of coldest month (degrees C)
! MINTW(I): minimum temperature of warmest month (degrees C)
! DORE(I): deciduous or evergreen 0=deciduous,1=evergreen
! ntc(I): nitrogen tolerance class (1,2,3,4,5)
! e1(I): Parameter smin of haadee height growth function
! e2(I): Second Parameter of haadee height growth function
! geff(I): growth efficiency factor of shaded trees
DO I=1,ntax
READ(nowunit,1) NAM(I)
READ(nowunit,*) HMX(I),HDS(I),hgro(I),ALP(I),LCP(I),GSC(I), &
EST(I),TDI(I),UMN(I),UMX(I),SPR(I),SMN(I),LAC(I),LAF(I),BCF(I), &
R(I),Q10(I),TMIN(I),TMAX(I),CCP(I),DRI(I),MINGDD(I),MINTC(I), &
MAXTC(I),MINTW(I),DORE(I),ntc(I)
IF(SPR(I).EQ.0)SMN(I)=0.0
DRI(I)=DRI(I)+0.3
end do
RETURN
! format statements
1 FORMAT(A8)
END subroutine cgtspe_4c
SUBROUTINE CLIMEF_4c
use data_taxa
use data_effect
use data_simul
! computes the growth multipliers.
! checks to see if GDD, temp coldest month below minimum for species
! if so multipliers = 0 else equals 1.
! computes drought effect multipliers as per ICP
! sets max.temp of coldest month multiplier to 0 or 1 for ESTBL routine
! checks if warmest month exceeds species limit
! averages light intensity (INS) over time step.
! local parameters
INTEGER :: I,J,K
REAL ::TOTGDD= 0, &
TGSDRT=0., &
TM4DRT=0.
real,dimension(17) :: tottft=0.
! gives growth multiplier for each species to be applied in subroutine
! TVXT or ETBL - growing degree days, growing/-4 drought index, temps.
TOTGDD=GDD(time)
TGSDRT=GSDRI(time)
TM4DRT=M4DRI(time)
! totals and then averages species specific multipliers etc. over timestep
! that is sapres, mutmx, tftmx
do i=1,17
xtftmx(i) = tftmx(i,time)
end do
! set multipliers to 1 before checking on environment
do i=1,17
GDDMX(I)=1.0
TWARMX(I)=1.0
TCMX(I)=1.0
TWMX(I)=1.0
TWARMX(I)=1.0
! check to see is a deciduous species
IF(DORE(I).EQ.0)THEN
DRMX(I)=1-((TGSDRT/DRI(I))**2)
IF(DRMX(I).LT.0.0)DRMX(I)=0.0
ELSE
! must be an evergreen
DRMX(I)=1-((TM4DRT/DRI(I))**2)
IF(DRMX(I).LT.0.0)DRMX(I)=0.0
ENDIF
! check if environment exceeds species limits - step functions
! if so set multiplier to zero
IF(TOTGDD.LT.MINGDD(I))GDDMX(I)=0.0
IF(TCOLD.LT.MINTC(I))TCMX(I)=0.0
IF(TCOLD.GT.MAXTC(I))TWMX(I)=0.0
IF(TWARM.LT.MINTW(I))TWARMX(I)=0.0
! write out to screen and forcli.out multipliers for each species
! keep these commented as they use a lot of paper <--M.B was ist damit gemeint? ist das relevant fr den nutzer.
end do
do i=1,17
end do
end subroutine climef_4c
SUBROUTINE gsdr_cal
! calculation of gsdri and m4dri for FORSKA regeneration
use data_climate
use data_effect
use data_simul
use data_evapo
if(tp(iday,time).ge.-4.) then
foudpt = foudpt + pet
foudae = foudae + aet
end if
if(tp(iday,time).ge.4.) then
tgsdpt = tgsdpt + pet
tgsdae = tgsdae + aet
end if
if(iday.eq. recs(time)) then
gsdri(time) = (tgsdpt-tgsdae)/tgsdpt
m4dri(time) = (foudpt-foudae)/foudpt
end if
END SUBROUTINE gsdr_cal
SUBROUTINE tmp_mean
! calculation of environmental variables twarm, tcold and long-term monthly
! mean of temperature
USE data_effect
USE data_climate
USE data_simul
real,dimension(12) :: tmph = 0.
integer :: i,l,m,dayc
allocate( tpmean(12))
allocate (gdd(year))
allocate (tftmx(17,year))
monrec=(/31,28,31,30,31,30,31,31,30,31,30,31/)
tpmean = 0
if (recs(time).eq.366) then
monrec(2)=29
else
monrec(2)=28
endif
do k = 1, year
! call calculation of env. variables
call therm(k)
dayc = 1
do l= 1,12
tmph(l) = 0.
do m=1,monrec(l)
tmph(l) = tmph(l) + tp( dayc,k)
dayc = dayc + 1
end do
tmph(l) = tmph(l)/monrec(l)
tpmean(l) = tpmean(l) + tmph(l)
end do
end do
do l=1,12
tpmean(l) = tpmean(l)/year
end do
! work out which is temperature of coldest month
! and warmest month for year
tcold = 50.0
twarm = -50.0
do k=1,12
if(tpmean(k).lt.tcold) tcold = tpmean(k)
if(tpmean(k).gt.twarm) twarm = tpmean(k)
end do
END SUBROUTINE tmp_mean
SUBROUTINE therm(ktime)
! therm - calculation of environmental variables (annual and species specific)
! gdd - growing degress day
! tftmx - thermal multiplier - species specific
use data_climate
use data_simul
use data_effect
use data_taxa
implicit none
! local variables
integer :: j,k,m4day,gdday1,ktime
real,dimension(17) :: tft,tresft
gdd(ktime) = 0.
m4day=0
gdday1=0
do j=1,17
tft(j)=0.0
tresft(j)=0.0
end do
! calculate ft values for each day of the year
! for each species upto number of taxa
do k=1,17
do j=1,recs(ktime)
! add up mutmx multiplier
tresft(k) = tresft(k)+(q10(k)**((tp(j,ktime) - tref)*0.1))
if(k.eq.1) then
if (tp(j,ktime).ge.tref) gdd(ktime) = gdd(ktime) + (tp(j,ktime)-tref)
end if
! first check to see if deciduous or not
if(dore(k).eq.0)then
! totalling daily deciduous multipliers for growing season only
if(tp(j,ktime).ge.5.0) then
tft(k) = tft(k)+(4*(tp(j,ktime)-tmin(k))*(tmax(k)-tp(j,ktime))/(tmin(k)-tmax(k))**2)
endif
else
! must be evergreen so produce daily values
! do not allow below zero
! checks for temperature greater than -4 oC for evergreen species
if(tp(j,ktime).ge.-4.0)then
tft(k)=tft(k)+(4*((tp(j,ktime)-tmin(k))*(tmax(k)-tp(j,ktime))) &
/(tmin(k)-tmax(k))**2)
endif
endif
if(tft(k).lt.0.0)tft(k)=0.0
end do
end do
do j=1,recs(ktime)
if(tp(j,ktime).ge.5.0) then
gdday1=gdday1+1
end if
if(tp(j,ktime).ge.-4.0) then
m4day=m4day+1
end if
end do
do k=1,17
if(dore(k).eq.0) then
tftmx(k,ktime) = tft(k)/gdday1
else
tftmx(k,ktime) = tft(k)/m4day
end if
end do
END SUBROUTINE therm
......@@ -104,7 +104,12 @@ do
sumbio = sumbio + ntr * zeig%coh%totBio
sumNPP = sumNPP + ntr * zeig%coh%NPP
Ndem = Ndem + ntr * zeig%coh%Ndemc_c
autresp = autresp + ntr * zeig%coh%maintres
select case (flag_dis)
case (0,1)
autresp = autresp + ntr * zeig%coh%maintres
case (2)
autresp = autresp + ntr * (zeig%coh%maintres+zeig%coh%biocost_all)
end select
totfol = totfol + ntr * zeig%coh%x_fol
totsap = totsap + ntr * zeig%coh%x_sap
totfrt = totfrt + ntr * zeig%coh%x_frt
......@@ -498,10 +503,6 @@ svar%frt = 0.
END SELECT
Enddo
IF(spar(spec_new)%phmodel==4) THEN
svar(spec_new)%daybb = svar(spec_new)%ext_daybb
ELSE
......@@ -543,7 +544,7 @@ do i=1,nspecies
svar(i)%mean_diam = svar(i)%mean_diam / ntr
svar(i)%mean_jrb = svar(i)%mean_jrb / ntr
svar(i)%basal_area = pi*ntr*(svar(i)%med_diam*svar(i)%med_diam/40000)*10000/kpatchsize
svar(i)%basal_area = pi*(ntr-helpdiam(i))*(svar(i)%med_diam*svar(i)%med_diam/40000)*10000/kpatchsize
else
svar(i)%sum_ntreea = 0.
endif
......@@ -1083,8 +1084,14 @@ IMPLICIT NONE
DO
IF(.not.associated(zeig)) exit
if (zeig%coh%species.ne.nspec_tree+2) then ! exclude mistletoe from senescence
zeig%coh%sfol = spar(zeig%coh%species)%psf * zeig%coh%x_fol
zeig%coh%sfrt = spar(zeig%coh%species)%psr * zeig%coh%x_frt
select case (flag_dis)
! case (1,2)
! zeig%coh%sfol = spar(zeig%coh%species)%psf * zeig%coh%x_fol + zeig%coh%x_fol_loss
! zeig%coh%sfrt = spar(zeig%coh%species)%psr * zeig%coh%x_frt + zeig%coh%x_frt_loss
case (0,1,2)
zeig%coh%sfol = spar(zeig%coh%species)%psf * zeig%coh%x_fol
zeig%coh%sfrt = spar(zeig%coh%species)%psr * zeig%coh%x_frt
end select
IF (zeig%coh%height.ge.thr_height .and.zeig%coh%species.LE. nspec_tree) THEN
zeig%coh%ssap = spar(zeig%coh%species)%pss * zeig%coh%x_sap
ELSE
......
SUBROUTINE win_prepini
!*
!* Implementation and Revisions:
!* -----------------------------
!*
! 15.08.11 Su Zwischendruck bei treeini raus
! 24.02.11 Su stand_id als Character
! 01.02.05 ag win_prepini: help_ip set to actual run number
! 28.01.05 Su
! check stand_id from multi-stand-intialisaton file (...tree.ini)
! lmulti = 0 ==> single initialisation file
USE data_simul
USE data_site
USE data_stand
USE data_species
use flag_field
IMPLICIT NONE
CHARACTER :: a
CHARACTER(30) :: filename, text
CHARACTER(50) :: test_stand_id
INTEGER :: ios,treeunit
LOGICAL :: exs, lstin
INTEGER :: help_ip, test_vf, i
REAL :: test_patchsize, xx
IF(site_nr==1) THEN
help_ip=site_nr
ELSE
help_ip=act_run
END IF
! when initialization stand flag == 1
IF(flag_stand>0) then
exs = .false.
stand_id = standid(help_ip)
! reading stand information from treefile
inquire (File = treefile(help_ip), exist = exs)
IF(exs .eqv. .false.) write(*,*) ' Stand initialization file not exists!'
! read values from treefile
IF (exs.eqv. .true.) then
treeunit=getunit()
OPEN(treeunit,file=treefile(help_ip),action='read', pad='YES')
READ(treeunit,'(I1,F12.0)',iostat=ios) test_vf, test_patchsize
IF(test_patchsize .GT. 0.) THEN
lmulti = .FALSE.
IF(test_patchsize.NE.kpatchsize) THEN
CALL error_mess(time,"patch size in sim-file and the one used for initialisation do not match",kpatchsize)
CALL error_mess(time,"value in ini-file",test_patchsize)
CALL error_mess(time,"value in sim-file",kpatchsize)
kpatchsize = test_patchsize
ENDIF
ELSE
lmulti = .TRUE.
! count number of stand_id
anz_standid = 0
do
READ(treeunit,'(A)',iostat=ios) a
IF (a .ne. '!') exit
end do
do
read(treeunit,*,iostat=ios) xx
IF (ios .lt. 0) exit
anz_standid = anz_standid + 1
do while (xx .gt. -90.0)
read (treeunit,*) xx
! print *,xx
enddo ! xx
enddo
if (allocated(standid_list)) deallocate(standid_list)
allocate (standid_list(anz_standid))
rewind treeunit
! read stand_id
read (treeunit,*) xx
do
READ(treeunit,'(A)',iostat=ios) a
IF (a .ne. '!') exit
end do
backspace treeunit
lstandid = .FALSE.
do i = 1, anz_standid
read(treeunit,*) test_stand_id, test_patchsize, text
standid_list(i) = test_stand_id
if (test_stand_id .eq. stand_id) lstandid = .TRUE.
read (treeunit,*) xx
do while (xx .gt. -90.0)
read (treeunit,*) xx
enddo ! xx
enddo
END IF ! test_patchsize -- lmulti
CLOSE(treeunit)
END IF ! exs
END IF
END SUBROUTINE win_prepini
......@@ -154,7 +154,7 @@ integer act_spec, act_year, set_year
! calculate emission from harvesting process
emission_har (management_years(i)) = summe * sub_par(1)
write (9999,*) emission_har(management_years(i)), management_years(i)
! write (9999,*) emission_har(management_years(i)), management_years(i)
end do
end subroutine calculate_product_lines
......
!MS$FREEFORM
! Microsoft Developer Studio generated include file.
! Used by script1.rc
!
integer, parameter :: IDD_4C = 101
integer, parameter :: IDD_4C_ctr = 102
integer, parameter :: IDD_4C_flags = 109
integer, parameter :: IDD_4C_files = 111
integer, parameter :: IDB_BITMAP3 = 115
integer, parameter :: IDD_4C_out = 116
integer, parameter :: IDD_4C_yearly = 118
integer, parameter :: IDD_4C_daily = 119
integer, parameter :: IDD_4C_coh_yearly = 120
integer, parameter :: IDD_4C_coh_daily = 121
integer, parameter :: IDD_default_dir = 122
integer, parameter :: IDD_4C_default_dir = 122
integer, parameter :: IDD_4C_main = 123
integer, parameter :: IDD_4C_ids = 126
integer, parameter :: IDB_BITMAP1 = 131
integer, parameter :: IDC_STATIC_Control = 1005
integer, parameter :: IDC_STATIC_4C = 1017
integer, parameter :: IDC_COMBO_runv = 1019
integer, parameter :: IDC_RADIO_ctrfile = 1020
integer, parameter :: IDC_COMBO_runv3 = 1020
integer, parameter :: IDC_RADIO_ctredit = 1024
integer, parameter :: IDC_STATIC_simul = 1034
integer, parameter :: IDC_STATIC_runv = 1036
integer, parameter :: IDC_STATIC_runnr = 1037
integer, parameter :: IDC_STATIC_runv3 = 1038
integer, parameter :: IDC_EDIT_runnr = 1044
integer, parameter :: IDC_STATIC_runo = 1046
integer, parameter :: IDC_STATIC_runo3 = 1047
integer, parameter :: IDC_EDIT_yearn = 1048
integer, parameter :: IDC_EDIT_start = 1049
integer, parameter :: IDC_STATIC_yearn = 1050
integer, parameter :: IDC_STATIC_start = 1051
integer, parameter :: IDC_EDIT_patch = 1052
integer, parameter :: IDC_STATIC_patch = 1053
integer, parameter :: IDC_STATIC_model = 1055
integer, parameter :: IDC_EDIT_thickf = 1056
integer, parameter :: IDC_EDIT_timeph = 1057
integer, parameter :: IDC_STATIC_thickf = 1058
integer, parameter :: IDC_STATIC_timeph = 1059
integer, parameter :: IDC_STATIC_mort = 1060
integer, parameter :: IDC_STATIC_reg = 1061
integer, parameter :: IDC_STATIC_forska = 1062
integer, parameter :: IDC_COMBO_mort = 1063
integer, parameter :: IDC_COMBO_reg = 1064
integer, parameter :: IDC_COMBO_forska = 1065
integer, parameter :: IDC_STATIC_stand = 1066
integer, parameter :: IDC_STATIC_sveg = 1067
integer, parameter :: IDC_STATIC_mg = 1068
integer, parameter :: IDC_STATIC_dis = 1069
integer, parameter :: IDC_STATIC_light = 1070
integer, parameter :: IDC_STATIC_folhei = 1071
integer, parameter :: IDC_COMBO_stand = 1072
integer, parameter :: IDC_COMBO_sveg = 1073
integer, parameter :: IDC_COMBO_mg = 1074
integer, parameter :: IDC_COMBO_dis = 1075
integer, parameter :: IDC_COMBO_light = 1076
integer, parameter :: IDC_COMBO_folhei = 1077
integer, parameter :: IDC_COMBO_volfunc = 1078
integer, parameter :: IDC_STATIC_volfunc = 1079
integer, parameter :: IDC_STATIC_resp = 1080
integer, parameter :: IDC_STATIC_limi = 1081
integer, parameter :: IDC_STATIC_decomp = 1082
integer, parameter :: IDC_STATIC_sign = 1083
integer, parameter :: IDC_STATIC_wred = 1084
integer, parameter :: IDC_STATIC_wurz = 1085
integer, parameter :: IDC_STATIC_cond = 1086
integer, parameter :: IDC_COMBO_resp = 1088
integer, parameter :: IDC_COMBO_limi = 1089
integer, parameter :: IDC_COMBO_decomp = 1090
integer, parameter :: IDC_COMBO_sign = 1091
integer, parameter :: IDC_COMBO_wred = 1092
integer, parameter :: IDC_COMBO_wurz = 1093
integer, parameter :: IDC_COMBO_cond = 1094
integer, parameter :: IDC_COMBO_int = 1095
integer, parameter :: IDC_COMBO_eva = 1096
integer, parameter :: IDC_STATIC_int = 1097
integer, parameter :: IDC_STATIC_eva = 1098
integer, parameter :: IDC_STATIC_sort = 1099
integer, parameter :: IDC_STATIC_wpm = 1100
integer, parameter :: IDC_COMBO_CO2 = 1101
integer, parameter :: IDC_STATIC_stat = 1102
integer, parameter :: IDC_COMBO_sort = 1103
integer, parameter :: IDC_COMBO_wpm = 1104
integer, parameter :: IDC_COMBO_stat = 1105
integer, parameter :: IDC_STATIC_files = 1108
integer, parameter :: IDC_STATIC_specpar = 1109
integer, parameter :: IDC_EDIT_specpar = 1110
integer, parameter :: IDC_BUTTON_specpar = 1111
integer, parameter :: IDC_BUTTON_ini = 1112
integer, parameter :: IDC_BUTTON_sop = 1113
integer, parameter :: IDC_STATIC_dir1 = 1114
integer, parameter :: IDC_STATIC_dirin = 1114
integer, parameter :: IDC_BUTTON_soi = 1115
integer, parameter :: IDC_STATIC_dirout = 1115
integer, parameter :: IDC_STATIC_soi = 1116
integer, parameter :: IDC_EDIT_sop = 1117
integer, parameter :: IDC_EDIT_soi = 1118
integer, parameter :: IDC_STATIC_ini = 1119
integer, parameter :: IDC_EDIT_ini = 1120
integer, parameter :: IDC_STATIC_ini1 = 1121
integer, parameter :: IDC_BUTTON_man = 1122
integer, parameter :: IDC_STATIC_cli = 1123
integer, parameter :: IDC_BUTTON_dep = 1124
integer, parameter :: IDC_BUTTON_red = 1125
integer, parameter :: IDC_BUTTON_lit = 1126
integer, parameter :: IDC_RADIO_single_ini = 1127
integer, parameter :: IDC_RADIO_multi_ini = 1128
integer, parameter :: IDC_STATIC_standid = 1129
integer, parameter :: IDC_EDIT_standid = 1130
integer, parameter :: IDC_STATIC_man = 1131
integer, parameter :: IDC_EDIT_man = 1132
integer, parameter :: IDC_STATIC_dep = 1133
integer, parameter :: IDC_EDIT_dep = 1134
integer, parameter :: IDC_EDIT_red = 1135
integer, parameter :: IDC_EDIT_lit = 1136
integer, parameter :: IDC_STATIC_lit = 1137
integer, parameter :: IDC_STATIC_red = 1138
integer, parameter :: IDC_STATIC_dir2 = 1139
integer, parameter :: IDC_STATIC_sop = 1140
integer, parameter :: IDC_EDIT_cli = 1141
integer, parameter :: IDC_BUTTON_cli = 1142
integer, parameter :: IDC_BUTTON_DIR = 1143
integer, parameter :: IDC_EDIT_cli2 = 1144
integer, parameter :: IDC_EDIT_DIR = 1144
integer, parameter :: IDC_EDIT_DIR_IN = 1144
integer, parameter :: IDC_STATIC_name = 1145
integer, parameter :: IDC_EDIT_DIR_OUT = 1145
integer, parameter :: IDC_EDIT_sitename = 1147
integer, parameter :: IDC_STATIC_nameall = 1148
integer, parameter :: IDC_RADIO_idy = 1149
integer, parameter :: IDC_RADIO_idn = 1150
integer, parameter :: IDC_STATIC_id = 1151
integer, parameter :: IDC_STATIC_year = 1152
integer, parameter :: IDC_STATIC_yearly = 1153
integer, parameter :: IDC_CHECK_y1 = 1161
integer, parameter :: IDC_CHECK_y2 = 1162
integer, parameter :: IDC_CHECK_y3 = 1163
integer, parameter :: IDC_CHECK_y4 = 1164
integer, parameter :: IDC_CHECK_y5 = 1165
integer, parameter :: IDC_CHECK_y6 = 1166
integer, parameter :: IDC_CHECK_y7 = 1167
integer, parameter :: IDC_CHECK_y8 = 1168
integer, parameter :: IDC_CHECK_y9 = 1169
integer, parameter :: IDC_CHECK_y10 = 1170
integer, parameter :: IDC_CHECK_y11 = 1171
integer, parameter :: IDC_CHECK_y12 = 1172
integer, parameter :: IDC_CHECK_y13 = 1173
integer, parameter :: IDC_CHECK_y14 = 1174
integer, parameter :: IDC_CHECK_y15 = 1175
integer, parameter :: IDC_CHECK_y16 = 1176
integer, parameter :: IDC_CHECK_y17 = 1177
integer, parameter :: IDC_CHECK_y18 = 1178
integer, parameter :: IDC_CHECK_y19 = 1179
integer, parameter :: IDC_CHECK_y20 = 1180
integer, parameter :: IDC_CHECK_y21 = 1181
integer, parameter :: IDC_CHECK_y22 = 1182
integer, parameter :: IDC_CHECK_y23 = 1183
integer, parameter :: IDC_CHECK_y24 = 1184
integer, parameter :: IDC_CHECK_y25 = 1185
integer, parameter :: IDC_CHECK_y26 = 1186
integer, parameter :: IDC_CHECK_y27 = 1187
integer, parameter :: IDC_CHECK_y28 = 1188
integer, parameter :: IDC_STATIC_yfile = 1189
integer, parameter :: IDC_BUTTON_yearly = 1190
integer, parameter :: IDC_CHECK_y29 = 1190
integer, parameter :: IDC_BUTTON_daily = 1191
integer, parameter :: IDC_CHECK_y30 = 1191
integer, parameter :: IDC_BUTTON_coh_yearly = 1192
integer, parameter :: IDC_CHECK_y31 = 1192
integer, parameter :: IDC_BUTTON_coh_daily = 1193
integer, parameter :: IDC_CHECK_y32 = 1193
integer, parameter :: IDC_STATIC_choice_out = 1194
integer, parameter :: IDC_CHECK_y33 = 1194
integer, parameter :: IDC_STATIC_daily = 1195
integer, parameter :: IDC_CHECK_y34 = 1195
integer, parameter :: IDC_COMBO_daily = 1196
integer, parameter :: IDC_CHECK_y35 = 1196
integer, parameter :: IDC_STATIC_coh_daily = 1197
integer, parameter :: IDC_CHECK_y36 = 1197
integer, parameter :: IDC_COMBO_coh_daily = 1198
integer, parameter :: IDC_CHECK_y37 = 1198
integer, parameter :: IDC_CHECK_y38 = 1199
integer, parameter :: IDC_CHECK_y39 = 1200
integer, parameter :: IDC_CHECK_y40 = 1201
integer, parameter :: IDC_CHECK_y41 = 1202
integer, parameter :: IDC_CHECK_y42 = 1203
integer, parameter :: IDC_COMBO_coh_yearly = 1204
integer, parameter :: IDC_STATIC_coh_yearly = 1205
integer, parameter :: IDC_STATIC_SUM = 1206
integer, parameter :: IDC_CHECK_y43 = 1206
integer, parameter :: ID4C_BUTTON_OK = 1208
integer, parameter :: ID_CTR_BUTTON_FLAGS = 1209
integer, parameter :: ID_CTR_BUTTON_OK = 1210
integer, parameter :: ID_FILES_BUTTON_OK = 1211
integer, parameter :: ID_CTR_BUTTON_FILES = 1212
integer, parameter :: ID_OUT_BUTTON_BACK = 1213
integer, parameter :: ID_START = 1214
integer, parameter :: ID_SAVE = 1215
integer, parameter :: ID_YEARLY_BUTTON_OK = 1216
integer, parameter :: ID_DAILY_BUTTON_OK = 1217
integer, parameter :: ID_YEARLYCOH_BUTTON_OK = 1218
integer, parameter :: ID_FLAGS_BUTTON_OK = 1219
integer, parameter :: ID_DAILYCOH_BUTTON_OK = 1220
integer, parameter :: ID_CTR_BUTTON_RUNNR = 1221
integer, parameter :: ID_DEFAULT_DIR_BUTTON_OK = 1222
integer, parameter :: ID_START_4C = 1226
integer, parameter :: IDSTOP = 1227
integer, parameter :: IDC_RADIO_start = 1229
integer, parameter :: IDC_RADIO_start_dir = 1230
integer, parameter :: IDC_RADIO_edit = 1231
integer, parameter :: ID_CANCEL_FLAGS = 1232
integer, parameter :: IDC_EDIT_ID = 1233
integer, parameter :: ID_CANCEL_FILES = 1233
integer, parameter :: IDC_COMBO_standid = 1234
integer, parameter :: ID_CANCEL_IDS = 1234
integer, parameter :: IDC_STATIC_spinup = 1235
integer, parameter :: IDC_EDIT_spinup = 1236
integer, parameter :: IDC_EDIT_wpm = 1236
integer, parameter :: ID_CANCEL_OUTF = 1236
integer, parameter :: IDC_BUTTON_spinup = 1237
integer, parameter :: IDC_STATIC_mes = 1237
integer, parameter :: ID_CTR_BUTTON_IDS = 1238
integer, parameter :: IDC_EDIT_mes = 1238
integer, parameter :: IDC_COMBO_yearly = 1239
integer, parameter :: IDC_COMBO_sum = 1240
integer, parameter :: ID_IDS_BUTTON_OK = 1242
integer, parameter :: ID_YEARLY_BUTTON_SELECT = 1248
integer, parameter :: ID_YEARLY_BUTTON_DESELECT = 1249
integer, parameter :: IDC_BUTTON_wpm = 1250
integer, parameter :: ID_DAILY_BUTTON_SELECT = 1250
integer, parameter :: IDC_BUTTON_mes = 1251
integer, parameter :: ID_DAILY_BUTTON_DESELECT = 1251
integer, parameter :: ID_DAILYCOH_BUTTON_SELECT = 1252
integer, parameter :: ID_DAILYCOH_BUTTON_DESELECT = 1253
integer, parameter :: ID_YEARLYCOH_BUTTON_SELECT = 1254
integer, parameter :: ID_YEARLYCOH_BUTTON_DESELECT = 1255
integer, parameter :: IDC_CHECK_y44 = 1256
integer, parameter :: IDC_STATIC_CO2 = 1256
integer, parameter :: IDC_CHECK_y45 = 1257
integer, parameter :: IDC_CHECK_y46 = 1258
integer, parameter :: IDC_CHECK_y47 = 1259
integer, parameter :: IDC_CHECK_y48 = 1260
integer, parameter :: IDC_CHECK_y49 = 1261
integer, parameter :: IDC_REBAR1 = 1262
integer, parameter :: IDC_CHECK_y50 = 1001
integer, parameter :: IDC_CHECK_y51 = 1002
#ifndef IDC_STATIC
#define IDC_STATIC (-1)
#endif
#define IDD_4C_ctr 102
#define IDD_4C_flags 109
#define IDD_4C_files 111
#define IDD_4C_out 116
#define IDD_4C_yearly 118
#define IDD_4C_daily 119
#define IDD_4C_coh_yearly 120
#define IDD_4C_coh_daily 121
#define IDD_4C_default_dir 122
#define IDD_4C_main 123
#define IDD_4C_ids 126
#define IDB_BITMAP1 131
#define IDD_DIALOG1 136
#define IDC_STATIC_day 1000
#define IDC_CHECK_y50 1001
#define IDC_CHECK_y51 1002
#define IDC_REBAR1 1002
#define IDC_STATIC_pic 1003
#define IDC_STATIC_Control 1005
#define IDC_STATIC_4C 1017
#define IDC_COMBO_runv 1019
#define IDC_COMBO_runv3 1020
#define IDC_STATIC_simul 1034
#define IDC_STATIC_runv 1036
#define IDC_STATIC_runnr 1037
#define IDC_STATIC_runv3 1038
#define IDC_EDIT_runnr 1044
#define IDC_STATIC_runo 1046
#define IDC_STATIC_runo3 1047
#define IDC_EDIT_yearn 1048
#define IDC_EDIT_start 1049
#define IDC_STATIC_yearn 1050
#define IDC_STATIC_start 1051
#define IDC_EDIT_patch 1052
#define IDC_STATIC_patch 1053
#define IDC_STATIC_model 1055
#define IDC_EDIT_thickf 1056
#define IDC_EDIT_timeph 1057
#define IDC_STATIC_thickf 1058
#define IDC_STATIC_timeph 1059
#define IDC_STATIC_mort 1060
#define IDC_STATIC_reg 1061
#define IDC_STATIC_forska 1062
#define IDC_COMBO_mort 1063
#define IDC_COMBO_reg 1064
#define IDC_COMBO_forska 1065
#define IDC_STATIC_stand 1066
#define IDC_STATIC_sveg 1067
#define IDC_STATIC_mg 1068
#define IDC_STATIC_dis 1069
#define IDC_STATIC_light 1070
#define IDC_STATIC_folhei 1071
#define IDC_COMBO_stand 1072
#define IDC_COMBO_sveg 1073
#define IDC_COMBO_mg 1074
#define IDC_COMBO_dis 1075
#define IDC_COMBO_light 1076
#define IDC_COMBO_folhei 1077
#define IDC_COMBO_volfunc 1078
#define IDC_STATIC_volfunc 1079
#define IDC_STATIC_resp 1080
#define IDC_STATIC_limi 1081
#define IDC_STATIC_decomp 1082
#define IDC_STATIC_sign 1083
#define IDC_STATIC_wred 1084
#define IDC_STATIC_wurz 1085
#define IDC_STATIC_cond 1086
#define IDC_COMBO_resp 1088
#define IDC_COMBO_limi 1089
#define IDC_COMBO_decomp 1090
#define IDC_COMBO_sign 1091
#define IDC_COMBO_wred 1092
#define IDC_COMBO_wurz 1093
#define IDC_COMBO_cond 1094
#define IDC_COMBO_int 1095
#define IDC_COMBO_eva 1096
#define IDC_STATIC_int 1097
#define IDC_STATIC_eva 1098
#define IDC_STATIC_sort 1099
#define IDC_STATIC_wpm 1100
#define IDC_COMBO_CO2 1101
#define IDC_STATIC_stat 1102
#define IDC_COMBO_sort 1103
#define IDC_COMBO_wpm 1104
#define IDC_COMBO_stat 1105
#define IDC_STATIC_files 1108
#define IDC_STATIC_specpar 1109
#define IDC_EDIT_specpar 1110
#define IDC_BUTTON_specpar 1111
#define IDC_BUTTON_ini 1112
#define IDC_BUTTON_sop 1113
#define IDC_STATIC_dirin 1114
#define IDC_BUTTON_soi 1115
#define IDC_STATIC_dirout 1115
#define IDC_STATIC_soi 1116
#define IDC_EDIT_sop 1117
#define IDC_EDIT_soi 1118
#define IDC_STATIC_ini 1119
#define IDC_EDIT_ini 1120
#define IDC_STATIC_ini1 1121
#define IDC_BUTTON_man 1122
#define IDC_STATIC_cli 1123
#define IDC_BUTTON_dep 1124
#define IDC_BUTTON_red 1125
#define IDC_BUTTON_lit 1126
#define IDC_STATIC_standid 1129
#define IDC_EDIT_standid 1130
#define IDC_STATIC_man 1131
#define IDC_EDIT_man 1132
#define IDC_STATIC_dep 1133
#define IDC_EDIT_dep 1134
#define IDC_EDIT_red 1135
#define IDC_EDIT_lit 1136
#define IDC_STATIC_lit 1137
#define IDC_STATIC_red 1138
#define IDC_STATIC_sop 1140
#define IDC_EDIT_cli 1141
#define IDC_BUTTON_cli 1142
#define IDC_EDIT_DIR_IN 1144
#define IDC_EDIT_DIR_OUT 1145
#define IDC_STATIC_year 1152
#define IDC_CHECK_y1 1161
#define IDC_CHECK_y2 1162
#define IDC_CHECK_y3 1163
#define IDC_CHECK_y4 1164
#define IDC_CHECK_y5 1165
#define IDC_CHECK_y6 1166
#define IDC_CHECK_y7 1167
#define IDC_CHECK_y8 1168
#define IDC_CHECK_y9 1169
#define IDC_CHECK_y10 1170
#define IDC_CHECK_y11 1171
#define IDC_CHECK_y12 1172
#define IDC_CHECK_y13 1173
#define IDC_CHECK_y14 1174
#define IDC_CHECK_y15 1175
#define IDC_CHECK_y16 1176
#define IDC_CHECK_y17 1177
#define IDC_CHECK_y18 1178
#define IDC_CHECK_y19 1179
#define IDC_CHECK_y20 1180
#define IDC_CHECK_y21 1181
#define IDC_CHECK_y22 1182
#define IDC_CHECK_y23 1183
#define IDC_CHECK_y24 1184
#define IDC_CHECK_y25 1185
#define IDC_CHECK_y26 1186
#define IDC_CHECK_y27 1187
#define IDC_CHECK_y28 1188
#define IDC_STATIC_yfile 1189
#define IDC_BUTTON_yearly 1190
#define IDC_CHECK_y29 1190
#define IDC_BUTTON_daily 1191
#define IDC_CHECK_y30 1191
#define IDC_BUTTON_coh_yearly 1192
#define IDC_CHECK_y31 1192
#define IDC_BUTTON_coh_daily 1193
#define IDC_CHECK_y32 1193
#define IDC_CHECK_y33 1194
#define IDC_STATIC_choice_out 1194
#define IDC_CHECK_y34 1195
#define IDC_CHECK_y35 1196
#define IDC_COMBO_daily 1196
#define IDC_CHECK_y36 1197
#define IDC_CHECK_y37 1198
#define IDC_COMBO_coh_daily 1198
#define IDC_CHECK_y38 1199
#define IDC_CHECK_y39 1200
#define IDC_CHECK_y40 1201
#define IDC_CHECK_y41 1202
#define IDC_CHECK_y42 1203
#define IDC_COMBO_coh_yearly 1204
#define IDC_CHECK_y43 1206
#define IDC_STATIC_SUM 1206
#define ID_CTR_BUTTON_FLAGS 1209
#define ID_CTR_BUTTON_OK 1210
#define ID_FILES_BUTTON_OK 1211
#define ID_CTR_BUTTON_FILES 1212
#define ID_OUT_BUTTON_BACK 1213
#define ID_START 1214
#define ID_SAVE 1215
#define ID_YEARLY_BUTTON_OK 1216
#define ID_DAILY_BUTTON_OK 1217
#define ID_YEARLYCOH_BUTTON_OK 1218
#define ID_FLAGS_BUTTON_OK 1219
#define ID_DAILYCOH_BUTTON_OK 1220
#define ID_CTR_BUTTON_RUNNR 1221
#define ID_DEFAULT_DIR_BUTTON_OK 1222
#define ID_START_4C 1226
#define IDSTOP 1227
#define IDC_RADIO_start 1229
#define IDC_RADIO_edit 1231
#define ID_CANCEL_FLAGS 1232
#define IDC_EDIT_ID 1233
#define ID_CANCEL_FILES 1233
#define IDC_COMBO_standid 1234
#define ID_CANCEL_IDS 1234
#define IDC_STATIC_spinup 1235
#define IDC_EDIT_wpm 1236
#define ID_CANCEL_OUTF 1236
#define IDC_STATIC_mes 1237
#define IDC_EDIT_mes 1238
#define ID_CTR_BUTTON_IDS 1238
#define IDC_COMBO_yearly 1239
#define IDC_COMBO_sum 1240
#define ID_IDS_BUTTON_OK 1242
#define ID_YEARLY_BUTTON_SELECT 1248
#define ID_YEARLY_BUTTON_DESELECT 1249
#define IDC_BUTTON_wpm 1250
#define ID_DAILY_BUTTON_SELECT 1250
#define IDC_BUTTON_mes 1251
#define ID_DAILY_BUTTON_DESELECT 1251
#define ID_DAILYCOH_BUTTON_SELECT 1252
#define ID_DAILYCOH_BUTTON_DESELECT 1253
#define ID_YEARLYCOH_BUTTON_SELECT 1254
#define ID_YEARLYCOH_BUTTON_DESELECT 1255
#define IDC_CHECK_y44 1256
#define IDC_STATIC_CO2 1256
#define IDC_CHECK_y45 1257
#define IDC_CHECK_y46 1258
#define IDC_CHECK_y47 1259
#define IDC_CHECK_y48 1260
#define IDC_CHECK_y49 1261
This diff is collapsed.
/*++
Copyright 1990 - 1998 Microsoft Corporation
Module Name:
poppack.h
Abstract:
This file turns packing of structures off. (That is, it enables
automatic alignment of structure fields.) An include file is needed
because various compilers do this in different ways.
poppack.h is the complement to pshpack?.h. An inclusion of poppack.h
MUST ALWAYS be preceded by an inclusion of one of pshpack?.h, in one-to-one
correspondence.
For Microsoft compatible compilers, this file uses the pop option
to the pack pragma so that it can restore the previous saved by the
pshpack?.h include file.
--*/
#if ! (defined(lint) || defined(_lint) || defined(RC_INVOKED))
#if ( _MSC_VER >= 800 ) || defined(_PUSHPOP_SUPPORTED)
#pragma warning(disable:4103)
#if !(defined( MIDL_PASS )) || defined( __midl )
#pragma pack(pop)
#else
#pragma pack()
#endif
#else
#pragma pack()
#endif
#endif // ! (defined(lint) || defined(_lint) || defined(RC_INVOKED))
/*****************************************************************************\
* *
* prsht.h - - Interface for the Windows Property Sheet Pages *
* *
* Version 1.0 *
* *
* Copyright 1991-1998, Microsoft Corp. All rights reserved. *
* *
\*****************************************************************************/
#ifndef _PRSHT_H_
#define _PRSHT_H_
#ifndef _WIN32_IE
#define _WIN32_IE 0x0400
#else
#if (_WIN32_IE < 0x0400) && defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0500)
#error _WIN32_IE setting conflicts with _WIN32_WINNT setting
#endif
#endif
//
// Define API decoration for direct importing of DLL references.
//
#ifndef WINCOMMCTRLAPI
#if !defined(_COMCTL32_) && defined(_WIN32)
#define WINCOMMCTRLAPI DECLSPEC_IMPORT
#else
#define WINCOMMCTRLAPI
#endif
#endif // WINCOMMCTRLAPI
#ifndef CCSIZEOF_STRUCT
#define CCSIZEOF_STRUCT(structname, member) (((int)((LPBYTE)(&((structname*)0)->member) - ((LPBYTE)((structname*)0)))) + sizeof(((structname*)0)->member))
#endif
//
// For compilers that don't support nameless unions
//
#ifndef DUMMYUNIONNAME
#ifdef NONAMELESSUNION
#define DUMMYUNIONNAME u
#define DUMMYUNIONNAME2 u2
#define DUMMYUNIONNAME3 u3
#define DUMMYUNIONNAME4 u4
#define DUMMYUNIONNAME5 u5
#else
#define DUMMYUNIONNAME
#define DUMMYUNIONNAME2
#define DUMMYUNIONNAME3
#define DUMMYUNIONNAME4
#define DUMMYUNIONNAME5
#endif
#endif // DUMMYUNIONNAME
#ifdef __cplusplus
extern "C" {
#endif
#ifndef SNDMSG
#ifdef __cplusplus
#ifndef _MAC
#define SNDMSG ::SendMessage
#else
#define SNDMSG ::AfxSendMessage
#endif
#else
#ifndef _MAC
#define SNDMSG SendMessage
#else
#define SNDMSG AfxSendMessage
#endif
#endif
#endif // ifndef SNDMSG
#define MAXPROPPAGES 100
struct _PSP;
typedef struct _PSP FAR* HPROPSHEETPAGE;
#ifndef MIDL_PASS
struct _PROPSHEETPAGEA;
struct _PROPSHEETPAGEW;
#endif
typedef UINT (CALLBACK FAR * LPFNPSPCALLBACKA)(HWND hwnd, UINT uMsg, struct _PROPSHEETPAGEA FAR *ppsp);
typedef UINT (CALLBACK FAR * LPFNPSPCALLBACKW)(HWND hwnd, UINT uMsg, struct _PROPSHEETPAGEW FAR *ppsp);
#ifdef UNICODE
#define LPFNPSPCALLBACK LPFNPSPCALLBACKW
#else
#define LPFNPSPCALLBACK LPFNPSPCALLBACKA
#endif
#define PSP_DEFAULT 0x00000000
#define PSP_DLGINDIRECT 0x00000001
#define PSP_USEHICON 0x00000002
#define PSP_USEICONID 0x00000004
#define PSP_USETITLE 0x00000008
#define PSP_RTLREADING 0x00000010
#define PSP_HASHELP 0x00000020
#define PSP_USEREFPARENT 0x00000040
#define PSP_USECALLBACK 0x00000080
#define PSP_PREMATURE 0x00000400
#if (_WIN32_IE >= 0x0400)
//----- New flags for wizard97 --------------
#define PSP_HIDEHEADER 0x00000800
#define PSP_USEHEADERTITLE 0x00001000
#define PSP_USEHEADERSUBTITLE 0x00002000
//-------------------------------------------
#endif
#define PSPCB_RELEASE 1
#define PSPCB_CREATE 2
#define PROPSHEETPAGEA_V1_SIZE CCSIZEOF_STRUCT(PROPSHEETPAGEA, pcRefParent)
#define PROPSHEETPAGEW_V1_SIZE CCSIZEOF_STRUCT(PROPSHEETPAGEW, pcRefParent)
typedef struct _PROPSHEETPAGEA {
DWORD dwSize;
DWORD dwFlags;
HINSTANCE hInstance;
union {
LPCSTR pszTemplate;
#ifdef _WIN32
LPCDLGTEMPLATE pResource;
#else
const VOID FAR *pResource;
#endif
} DUMMYUNIONNAME;
union {
HICON hIcon;
LPCSTR pszIcon;
} DUMMYUNIONNAME2;
LPCSTR pszTitle;
DLGPROC pfnDlgProc;
LPARAM lParam;
LPFNPSPCALLBACKA pfnCallback;
UINT FAR * pcRefParent;
#if (_WIN32_IE >= 0x0400)
LPCSTR pszHeaderTitle; // this is displayed in the header
LPCSTR pszHeaderSubTitle; //
#endif
} PROPSHEETPAGEA, FAR *LPPROPSHEETPAGEA;
typedef const PROPSHEETPAGEA FAR *LPCPROPSHEETPAGEA;
typedef struct _PROPSHEETPAGEW {
DWORD dwSize;
DWORD dwFlags;
HINSTANCE hInstance;
union {
LPCWSTR pszTemplate;
#ifdef _WIN32
LPCDLGTEMPLATE pResource;
#else
const VOID FAR *pResource;
#endif
}DUMMYUNIONNAME;
union {
HICON hIcon;
LPCWSTR pszIcon;
}DUMMYUNIONNAME2;
LPCWSTR pszTitle;
DLGPROC pfnDlgProc;
LPARAM lParam;
LPFNPSPCALLBACKW pfnCallback;
UINT FAR * pcRefParent;
#if (_WIN32_IE >= 0x0400)
LPCWSTR pszHeaderTitle; // this is displayed in the header
LPCWSTR pszHeaderSubTitle; ///
#endif
} PROPSHEETPAGEW, FAR *LPPROPSHEETPAGEW;
typedef const PROPSHEETPAGEW FAR *LPCPROPSHEETPAGEW;
#ifdef UNICODE
#define PROPSHEETPAGE PROPSHEETPAGEW
#define LPPROPSHEETPAGE LPPROPSHEETPAGEW
#define LPCPROPSHEETPAGE LPCPROPSHEETPAGEW
#define PROPSHEETPAGE_V1_SIZE PROPSHEETPAGEW_V1_SIZE
#else
#define PROPSHEETPAGE PROPSHEETPAGEA
#define LPPROPSHEETPAGE LPPROPSHEETPAGEA
#define LPCPROPSHEETPAGE LPCPROPSHEETPAGEA
#define PROPSHEETPAGE_V1_SIZE PROPSHEETPAGEA_V1_SIZE
#endif
#define PSH_DEFAULT 0x00000000
#define PSH_PROPTITLE 0x00000001
#define PSH_USEHICON 0x00000002
#define PSH_USEICONID 0x00000004
#define PSH_PROPSHEETPAGE 0x00000008
#define PSH_WIZARDHASFINISH 0x00000010
#define PSH_WIZARD 0x00000020
#define PSH_USEPSTARTPAGE 0x00000040
#define PSH_NOAPPLYNOW 0x00000080
#define PSH_USECALLBACK 0x00000100
#define PSH_HASHELP 0x00000200
#define PSH_MODELESS 0x00000400
#define PSH_RTLREADING 0x00000800
#define PSH_WIZARDCONTEXTHELP 0x00001000
#if (_WIN32_IE >= 0x0400)
//----- New flags for wizard97 -----------
#define PSH_WIZARD97 0x00002000
// 0x00004000 was not used by any previous release
#define PSH_WATERMARK 0x00008000
#define PSH_USEHBMWATERMARK 0x00010000 // user pass in a hbmWatermark instead of pszbmWatermark
#define PSH_USEHPLWATERMARK 0x00020000 //
#define PSH_STRETCHWATERMARK 0x00040000 // stretchwatermark also applies for the header
#define PSH_HEADER 0x00080000
#define PSH_USEHBMHEADER 0x00100000
#define PSH_USEPAGELANG 0x00200000 // use frame dialog template matched to page
//----------------------------------------
#endif
typedef int (CALLBACK *PFNPROPSHEETCALLBACK)(HWND, UINT, LPARAM);
#define PROPSHEETHEADERA_V1_SIZE CCSIZEOF_STRUCT(PROPSHEETHEADERA, pfnCallback)
#define PROPSHEETHEADERW_V1_SIZE CCSIZEOF_STRUCT(PROPSHEETHEADERW, pfnCallback)
typedef struct _PROPSHEETHEADERA {
DWORD dwSize;
DWORD dwFlags;
HWND hwndParent;
HINSTANCE hInstance;
union {
HICON hIcon;
LPCSTR pszIcon;
}DUMMYUNIONNAME;
LPCSTR pszCaption;
UINT nPages;
union {
UINT nStartPage;
LPCSTR pStartPage;
}DUMMYUNIONNAME2;
union {
LPCPROPSHEETPAGEA ppsp;
HPROPSHEETPAGE FAR *phpage;
}DUMMYUNIONNAME3;
PFNPROPSHEETCALLBACK pfnCallback;
#if (_WIN32_IE >= 0x0400)
union {
HBITMAP hbmWatermark;
LPCSTR pszbmWatermark;
} DUMMYUNIONNAME4;
HPALETTE hplWatermark;
union {
HBITMAP hbmHeader; // Header bitmap shares the palette with watermark
LPCSTR pszbmHeader;
} DUMMYUNIONNAME5;
#endif
} PROPSHEETHEADERA, FAR *LPPROPSHEETHEADERA;
typedef const PROPSHEETHEADERA FAR *LPCPROPSHEETHEADERA;
typedef struct _PROPSHEETHEADERW {
DWORD dwSize;
DWORD dwFlags;
HWND hwndParent;
HINSTANCE hInstance;
union {
HICON hIcon;
LPCWSTR pszIcon;
}DUMMYUNIONNAME;
LPCWSTR pszCaption;
UINT nPages;
union {
UINT nStartPage;
LPCWSTR pStartPage;
}DUMMYUNIONNAME2;
union {
LPCPROPSHEETPAGEW ppsp;
HPROPSHEETPAGE FAR *phpage;
}DUMMYUNIONNAME3;
PFNPROPSHEETCALLBACK pfnCallback;
#if (_WIN32_IE >= 0x0400)
union {
HBITMAP hbmWatermark;
LPCWSTR pszbmWatermark;
} DUMMYUNIONNAME4;
HPALETTE hplWatermark;
union {
HBITMAP hbmHeader;
LPCWSTR pszbmHeader;
} DUMMYUNIONNAME5;
#endif
} PROPSHEETHEADERW, FAR *LPPROPSHEETHEADERW;
typedef const PROPSHEETHEADERW FAR *LPCPROPSHEETHEADERW;
#ifdef UNICODE
#define PROPSHEETHEADER PROPSHEETHEADERW
#define LPPROPSHEETHEADER LPPROPSHEETHEADERW
#define LPCPROPSHEETHEADER LPCPROPSHEETHEADERW
#define PROPSHEETHEADER_V1_SIZE PROPSHEETHEADERW_V1_SIZE
#else
#define PROPSHEETHEADER PROPSHEETHEADERA
#define LPPROPSHEETHEADER LPPROPSHEETHEADERA
#define LPCPROPSHEETHEADER LPCPROPSHEETHEADERA
#define PROPSHEETHEADER_V1_SIZE PROPSHEETHEADERA_V1_SIZE
#endif
#define PSCB_INITIALIZED 1
#define PSCB_PRECREATE 2
WINCOMMCTRLAPI HPROPSHEETPAGE WINAPI CreatePropertySheetPageA(LPCPROPSHEETPAGEA);
WINCOMMCTRLAPI HPROPSHEETPAGE WINAPI CreatePropertySheetPageW(LPCPROPSHEETPAGEW);
WINCOMMCTRLAPI BOOL WINAPI DestroyPropertySheetPage(HPROPSHEETPAGE);
WINCOMMCTRLAPI int WINAPI PropertySheetA(LPCPROPSHEETHEADERA);
WINCOMMCTRLAPI int WINAPI PropertySheetW(LPCPROPSHEETHEADERW);
#ifdef UNICODE
#define CreatePropertySheetPage CreatePropertySheetPageW
#define PropertySheet PropertySheetW
#else
#define CreatePropertySheetPage CreatePropertySheetPageA
#define PropertySheet PropertySheetA
#endif
typedef BOOL (CALLBACK FAR * LPFNADDPROPSHEETPAGE)(HPROPSHEETPAGE, LPARAM);
typedef BOOL (CALLBACK FAR * LPFNADDPROPSHEETPAGES)(LPVOID, LPFNADDPROPSHEETPAGE, LPARAM);
typedef struct _PSHNOTIFY
{
NMHDR hdr;
LPARAM lParam;
} PSHNOTIFY, FAR *LPPSHNOTIFY;
#define PSN_FIRST (0U-200U)
#define PSN_LAST (0U-299U)
#define PSN_SETACTIVE (PSN_FIRST-0)
#define PSN_KILLACTIVE (PSN_FIRST-1)
// #define PSN_VALIDATE (PSN_FIRST-1)
#define PSN_APPLY (PSN_FIRST-2)
#define PSN_RESET (PSN_FIRST-3)
// #define PSN_CANCEL (PSN_FIRST-3)
#define PSN_HELP (PSN_FIRST-5)
#define PSN_WIZBACK (PSN_FIRST-6)
#define PSN_WIZNEXT (PSN_FIRST-7)
#define PSN_WIZFINISH (PSN_FIRST-8)
#define PSN_QUERYCANCEL (PSN_FIRST-9)
#if (_WIN32_IE >= 0x0400)
#define PSN_GETOBJECT (PSN_FIRST-10)
#endif // 0x0400
#define PSNRET_NOERROR 0
#define PSNRET_INVALID 1
#define PSNRET_INVALID_NOCHANGEPAGE 2
#define PSM_SETCURSEL (WM_USER + 101)
#define PropSheet_SetCurSel(hDlg, hpage, index) \
SNDMSG(hDlg, PSM_SETCURSEL, (WPARAM)index, (LPARAM)hpage)
#define PSM_REMOVEPAGE (WM_USER + 102)
#define PropSheet_RemovePage(hDlg, index, hpage) \
SNDMSG(hDlg, PSM_REMOVEPAGE, index, (LPARAM)hpage)
#define PSM_ADDPAGE (WM_USER + 103)
#define PropSheet_AddPage(hDlg, hpage) \
SNDMSG(hDlg, PSM_ADDPAGE, 0, (LPARAM)hpage)
#define PSM_CHANGED (WM_USER + 104)
#define PropSheet_Changed(hDlg, hwnd) \
SNDMSG(hDlg, PSM_CHANGED, (WPARAM)hwnd, 0L)
#define PSM_RESTARTWINDOWS (WM_USER + 105)
#define PropSheet_RestartWindows(hDlg) \
SNDMSG(hDlg, PSM_RESTARTWINDOWS, 0, 0L)
#define PSM_REBOOTSYSTEM (WM_USER + 106)
#define PropSheet_RebootSystem(hDlg) \
SNDMSG(hDlg, PSM_REBOOTSYSTEM, 0, 0L)
#define PSM_CANCELTOCLOSE (WM_USER + 107)
#define PropSheet_CancelToClose(hDlg) \
PostMessage(hDlg, PSM_CANCELTOCLOSE, 0, 0L)
#define PSM_QUERYSIBLINGS (WM_USER + 108)
#define PropSheet_QuerySiblings(hDlg, wParam, lParam) \
SNDMSG(hDlg, PSM_QUERYSIBLINGS, wParam, lParam)
#define PSM_UNCHANGED (WM_USER + 109)
#define PropSheet_UnChanged(hDlg, hwnd) \
SNDMSG(hDlg, PSM_UNCHANGED, (WPARAM)hwnd, 0L)
#define PSM_APPLY (WM_USER + 110)
#define PropSheet_Apply(hDlg) \
SNDMSG(hDlg, PSM_APPLY, 0, 0L)
#define PSM_SETTITLEA (WM_USER + 111)
#define PSM_SETTITLEW (WM_USER + 120)
#ifdef UNICODE
#define PSM_SETTITLE PSM_SETTITLEW
#else
#define PSM_SETTITLE PSM_SETTITLEA
#endif
#define PropSheet_SetTitle(hDlg, wStyle, lpszText)\
SNDMSG(hDlg, PSM_SETTITLE, wStyle, (LPARAM)(LPCTSTR)lpszText)
#define PSM_SETWIZBUTTONS (WM_USER + 112)
#define PropSheet_SetWizButtons(hDlg, dwFlags) \
PostMessage(hDlg, PSM_SETWIZBUTTONS, 0, (LPARAM)dwFlags)
#define PSWIZB_BACK 0x00000001
#define PSWIZB_NEXT 0x00000002
#define PSWIZB_FINISH 0x00000004
#define PSWIZB_DISABLEDFINISH 0x00000008
#define PSM_PRESSBUTTON (WM_USER + 113)
#define PropSheet_PressButton(hDlg, iButton) \
PostMessage(hDlg, PSM_PRESSBUTTON, (WPARAM)iButton, 0)
#define PSBTN_BACK 0
#define PSBTN_NEXT 1
#define PSBTN_FINISH 2
#define PSBTN_OK 3
#define PSBTN_APPLYNOW 4
#define PSBTN_CANCEL 5
#define PSBTN_HELP 6
#define PSBTN_MAX 6
#define PSM_SETCURSELID (WM_USER + 114)
#define PropSheet_SetCurSelByID(hDlg, id) \
SNDMSG(hDlg, PSM_SETCURSELID, 0, (LPARAM)id)
#define PSM_SETFINISHTEXTA (WM_USER + 115)
#define PSM_SETFINISHTEXTW (WM_USER + 121)
#ifdef UNICODE
#define PSM_SETFINISHTEXT PSM_SETFINISHTEXTW
#else
#define PSM_SETFINISHTEXT PSM_SETFINISHTEXTA
#endif
#define PropSheet_SetFinishText(hDlg, lpszText) \
SNDMSG(hDlg, PSM_SETFINISHTEXT, 0, (LPARAM)lpszText)
#define PSM_GETTABCONTROL (WM_USER + 116)
#define PropSheet_GetTabControl(hDlg) \
(HWND)SNDMSG(hDlg, PSM_GETTABCONTROL, 0, 0)
#define PSM_ISDIALOGMESSAGE (WM_USER + 117)
#define PropSheet_IsDialogMessage(hDlg, pMsg) \
(BOOL)SNDMSG(hDlg, PSM_ISDIALOGMESSAGE, 0, (LPARAM)pMsg)
#define PSM_GETCURRENTPAGEHWND (WM_USER + 118)
#define PropSheet_GetCurrentPageHwnd(hDlg) \
(HWND)SNDMSG(hDlg, PSM_GETCURRENTPAGEHWND, 0, 0L)
#define ID_PSRESTARTWINDOWS 0x2
#define ID_PSREBOOTSYSTEM (ID_PSRESTARTWINDOWS | 0x1)
#define WIZ_CXDLG 276
#define WIZ_CYDLG 140
#define WIZ_CXBMP 80
#define WIZ_BODYX 92
#define WIZ_BODYCX 184
#define PROP_SM_CXDLG 212
#define PROP_SM_CYDLG 188
#define PROP_MED_CXDLG 227
#define PROP_MED_CYDLG 215
#define PROP_LG_CXDLG 252
#define PROP_LG_CYDLG 218
#ifdef __cplusplus
}
#endif
#endif // _PRSHT_H_
/*++
Copyright 1995 - 1998 Microsoft Corporation
Module Name:
pshpack1.h
Abstract:
This file turns 1 byte packing of structures on. (That is, it disables
automatic alignment of structure fields.) An include file is needed
because various compilers do this in different ways. For Microsoft
compatible compilers, this files uses the push option to the pack pragma
so that the poppack.h include file can restore the previous packing
reliably.
The file poppack.h is the complement to this file.
--*/
#if ! (defined(lint) || defined(_lint) || defined(RC_INVOKED))
#if ( _MSC_VER >= 800 ) || defined(_PUSHPOP_SUPPORTED)
#pragma warning(disable:4103)
#if !(defined( MIDL_PASS )) || defined( __midl )
#pragma pack(push)
#endif
#pragma pack(1)
#else
#pragma pack(1)
#endif
#endif // ! (defined(lint) || defined(_lint) || defined(RC_INVOKED))
/*++
Copyright 1995 - 1998 Microsoft Corporation
Module Name:
pshpack4.h
Abstract:
This file turns 4 byte packing of structures on. (That is, it disables
automatic alignment of structure fields.) An include file is needed
because various compilers do this in different ways. For Microsoft
compatible compilers, this files uses the push option to the pack pragma
so that the poppack.h include file can restore the previous packing
reliably.
The file poppack.h is the complement to this file.
--*/
#if ! (defined(lint) || defined(_lint) || defined(RC_INVOKED))
#if ( _MSC_VER >= 800 ) || defined(_PUSHPOP_SUPPORTED)
#pragma warning(disable:4103)
#if !(defined( MIDL_PASS )) || defined( __midl )
#pragma pack(push)
#endif
#pragma pack(4)
#else
#pragma pack(4)
#endif
#endif // ! (defined(lint) || defined(_lint) || defined(RC_INVOKED))
This diff is collapsed.
/*++ BUILD Version: 0001 Increment this if a change has global effects
Copyright (c) 1985-1997, Microsoft Corporation
Module Name:
windows.h
Abstract:
Master include file for Windows applications.
Modified with WC_STATIC by F. Suckow 04.08.2011
--*/
#ifndef _WINDOWS_
#define _WINDOWS_
#ifndef WINVER
#define WINVER 0x0400
#else
#if defined(_WIN32_WINNT) && (WINVER < 0x0400) && (_WIN32_WINNT > 0x0400)
#error WINVER setting conflicts with _WIN32_WINNT setting
#endif
#endif
#ifndef WC_STATIC
#define WC_STATIC "Static"
#endif
#if(WINVER >= 0x0500)
#pragma message ("")
#pragma message ("NOTE: WINVER has been defined as 0x0500 or greater which enables")
#pragma message ("Windows NT 5.0 and Windows 98 features. When these headers were released,")
#pragma message ("Windows NT 5.0 beta 1 and Windows 98 beta 2.1 were the current versions.")
#pragma message ("")
#pragma message ("For this release when WINVER is defined as 0x0500 or greater, you can only")
#pragma message ("build beta or test applications. To build a retail application,")
#pragma message ("set WINVER to 0x0400 or visit http://www.microsoft.com/msdn/sdk")
#pragma message ("to see if retail Windows NT 5.0 or Windows 98 headers are available.")
#pragma message ("")
#pragma message ("See the SDK release notes for more information.")
#pragma message ("")
#endif
#ifndef _INC_WINDOWS
#define _INC_WINDOWS
#if defined (_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif
/* If defined, the following flags inhibit definition
* of the indicated items.
*
* NOGDICAPMASKS - CC_*, LC_*, PC_*, CP_*, TC_*, RC_
* NOVIRTUALKEYCODES - VK_*
* NOWINMESSAGES - WM_*, EM_*, LB_*, CB_*
* NOWINSTYLES - WS_*, CS_*, ES_*, LBS_*, SBS_*, CBS_*
* NOSYSMETRICS - SM_*
* NOMENUS - MF_*
* NOICONS - IDI_*
* NOKEYSTATES - MK_*
* NOSYSCOMMANDS - SC_*
* NORASTEROPS - Binary and Tertiary raster ops
* NOSHOWWINDOW - SW_*
* OEMRESOURCE - OEM Resource values
* NOATOM - Atom Manager routines
* NOCLIPBOARD - Clipboard routines
* NOCOLOR - Screen colors
* NOCTLMGR - Control and Dialog routines
* NODRAWTEXT - DrawText() and DT_*
* NOGDI - All GDI defines and routines
* NOKERNEL - All KERNEL defines and routines
* NOUSER - All USER defines and routines
* NONLS - All NLS defines and routines
* NOMB - MB_* and MessageBox()
* NOMEMMGR - GMEM_*, LMEM_*, GHND, LHND, associated routines
* NOMETAFILE - typedef METAFILEPICT
* NOMINMAX - Macros min(a,b) and max(a,b)
* NOMSG - typedef MSG and associated routines
* NOOPENFILE - OpenFile(), OemToAnsi, AnsiToOem, and OF_*
* NOSCROLL - SB_* and scrolling routines
* NOSERVICE - All Service Controller routines, SERVICE_ equates, etc.
* NOSOUND - Sound driver routines
* NOTEXTMETRIC - typedef TEXTMETRIC and associated routines
* NOWH - SetWindowsHook and WH_*
* NOWINOFFSETS - GWL_*, GCL_*, associated routines
* NOCOMM - COMM driver routines
* NOKANJI - Kanji support stuff.
* NOHELP - Help engine interface.
* NOPROFILER - Profiler interface.
* NODEFERWINDOWPOS - DeferWindowPos routines
* NOMCX - Modem Configuration Extensions
*/
#if defined(RC_INVOKED) && !defined(NOWINRES)
#include <winresrc.h>
#else
#if defined(RC_INVOKED)
/* Turn off a bunch of stuff to ensure that RC files compile OK. */
#define NOATOM
#define NOGDI
#define NOGDICAPMASKS
#define NOMETAFILE
#define NOMINMAX
#define NOMSG
#define NOOPENFILE
#define NORASTEROPS
#define NOSCROLL
#define NOSOUND
#define NOSYSMETRICS
#define NOTEXTMETRIC
#define NOWH
#define NOCOMM
#define NOKANJI
#define NOCRYPT
#define NOMCX
#endif
#if !defined(_68K_) && !defined(_MPPC_) && !defined(_PPC_) && !defined(_ALPHA_) && !defined(_MIPS_) && !defined(_X86_) && defined(_M_IX86)
#define _X86_
#endif
#if !defined(_68K_) && !defined(_MPPC_) && !defined(_PPC_) && !defined(_ALPHA_) && !defined(_X86_) && !defined(_MIPS_) && defined(_M_MRX000)
#define _MIPS_
#endif
#if !defined(_68K_) && !defined(_MPPC_) && !defined(_PPC_) && !defined(_ALPHA_) && !defined(_X86_) && !defined(_MIPS_) && defined(_M_ALPHA)
#define _ALPHA_
#endif
#if !defined(_68K_) && !defined(_MPPC_) && !defined(_PPC_) && !defined(_ALPHA_) && !defined(_X86_) && !defined(_MIPS_) && defined(_M_PPC)
#define _PPC_
#endif
#if !defined(_68K_) && !defined(_MPPC_) && !defined(_PPC_) && !defined(_ALPHA_) && !defined(_X86_) && !defined(_MIPS_) && defined(_M_M68K)
#define _68K_
#endif
#if !defined(_68K_) && !defined(_MPPC_) && !defined(_PPC_) && !defined(_ALPHA_) && !defined(_X86_) && !defined(_MIPS_) && defined(_M_MPPC)
#define _MPPC_
#endif
#ifndef _MAC
#if defined(_68K_) || defined(_MPPC_)
#define _MAC
#endif
#endif
#ifndef RC_INVOKED
#if ( _MSC_VER >= 800 )
#pragma warning(disable:4001)
#pragma warning(disable:4201)
#pragma warning(disable:4214)
#pragma warning(disable:4514)
#endif
#include <excpt.h>
#include <stdarg.h>
#endif /* RC_INVOKED */
#include <windef.h>
#include <winbase.h>
#include <wingdi.h>
#include <winuser.h>
#ifdef _MAC
DECLARE_HANDLE(HKEY);
typedef HKEY *PHKEY;
#endif
#if !defined(_MAC) || defined(_WIN32NLS)
#include <winnls.h>
#endif
#ifndef _MAC
#include <wincon.h>
#include <winver.h>
#endif
#if !defined(_MAC) || defined(_WIN32REG)
#include <winreg.h>
#endif
#ifndef _MAC
#include <winnetwk.h>
#endif
#ifndef WIN32_LEAN_AND_MEAN
#include <cderr.h>
#include <dde.h>
#include <ddeml.h>
#include <dlgs.h>
#ifndef _MAC
#include <lzexpand.h>
#include <mmsystem.h>
#include <nb30.h>
#include <rpc.h>
#endif
#include <shellapi.h>
#ifndef _MAC
#include <winperf.h>
#if(_WIN32_WINNT >= 0x0400)
#include <winsock2.h>
#include <mswsock.h>
#else
#include <winsock.h>
#endif /* _WIN32_WINNT >= 0x0400 */
#endif
#ifndef NOCRYPT
#include <wincrypt.h>
#endif
#ifndef NOGDI
#include <commdlg.h>
#ifndef _MAC
#include <winspool.h>
#ifdef INC_OLE1
#include <ole.h>
#else
#include <ole2.h>
#endif /* !INC_OLE1 */
#endif /* !MAC */
#endif /* !NOGDI */
#endif /* WIN32_LEAN_AND_MEAN */
#ifdef _MAC
#include <winwlm.h>
#endif
#ifdef INC_OLE2
#include <ole2.h>
#endif /* INC_OLE2 */
#ifndef _MAC
#ifndef NOSERVICE
#include <winsvc.h>
#endif
#if(WINVER >= 0x0400)
#ifndef NOMCX
#include <mcx.h>
#endif /* NOMCX */
#ifndef NOIME
#include <imm.h>
#endif
#endif /* WINVER >= 0x0400 */
#endif
#ifndef RC_INVOKED
#if ( _MSC_VER >= 800 )
#pragma warning(default:4001)
#pragma warning(default:4201)
#pragma warning(default:4214)
/* Leave 4514 disabled. It's a stupid warning anyway. */
#endif
#endif /* RC_INVOKED */
#endif /* RC_INVOKED */
#endif /* _INC_WINDOWS */
#endif /* _WINDOWS_ */
!*****************************************************************!
!* *!
!* 4C (FORESEE) Simulation Model *!
!* main program for 4C *!
!* Unix/Linux Version *!
!* *!
!* *!
!* data module data_clas for forest type classification wclas *!
!* *!
!* Copyright (C) 1996-2018 *!
!* Potsdam Institute for Climate Impact Reserach (PIK) *!
!* Authors and contributors see AUTHOR file *!
!* This file is part of 4C and is licensed under BSD-2-Clause *!
!* See LICENSE file or under: *!
!* See LICENSE file or under *!
!* http://www.https://opensource.org/licenses/BSD-2-Clause *!
!* Contact: *!
!* https://gitlab.pik-potsdam.de/foresee/4C *!
!* *!
!*****************************************************************!
PROGRAM foresee
USE data_simul
actDir = ''
CALL prepare_global
CALL sim_control
module data_clas
END PROGRAM foresee
real, allocatable, dimension(:) :: bpart
real lhpar, nhpar, alhpar, alnpar
end module data_clas
!*****************************************************************!
!* *!
!* 4C (FORESEE) Simulation Model *!
!* *!
!* climate data modules *!
!* *!
!* containes: *!
!* DATA_CLIMATE *!
!* DATA_EVAPO *!
!* DATA_INTER *!
!* DATA_DEPO *!
!* *!
!* Copyright (C) 1996-2018 *!
!* Potsdam Institute for Climate Impact Reserach (PIK) *!
!* Authors and contributors see AUTHOR file *!
!* This file is part of 4C and is licensed under BSD-2-Clause *!
!* See LICENSE file or under *!
!* http://www.https://opensource.org/licenses/BSD-2-Clause *!
!* Contact: *!
!* https://gitlab.pik-potsdam.de/foresee/4C *!
!* *!
!*****************************************************************!
module data_climate
! flag defines structure of climate data file
integer :: flag_climtyp = 0
integer :: i_exit ! day number of first missing data record
integer,allocatable,save,dimension(:) :: recs,yy
integer,allocatable,save,dimension(:,:) :: dd,mm
real,allocatable,save,dimension(:,:) :: tp,hm,prc,prs,rd,wd, tx, tn,vp, sdu,bw, sde
real,allocatable,save,dimension(:) :: tpmean
real :: airtemp = -99., & ! air temperature (°C)
airtemp_1 = -99., & ! air temperature of previous day (°C)
airtemp_2 = -99., & ! air temperature of two days before (°C)
airtemp_max = -99., & ! maximum air temperature (°C)
airtemp_min = -99., & ! minimum air temperature (°C)
hum = -99., & ! humidity (%)
prec = -99., & ! precipitation (mm)
press = -99., & ! pressure (hPa)
rad = -99., & ! solar radiation(J/cm2)
rad_max = -99., & ! maximal solar radiation(J/cm2)
wind = -99., & ! wind velocity (m/s)
rnet_tot = -99., & ! total net radiation(J/cm2)
avg_incl , & ! average sun inclination [degrees]
beta , & ! average sun inclination [radians]
dlength = -99., & ! day length == Photoperiode (h)
dptemp = -99., & ! dew point temperature
co2 = -99. ! atmospheric CO2 content (mol/mol)
integer :: flag_vegper = 0 ! indicates vegetation period described by temeprature > 10°C
integer :: flag_tveg = 0
integer :: iday_vegper = 0
! cumulative and mean values per year
real :: med_air ! yearly mean air temperature
real :: med_air_ms ! average temperature May - September
real :: med_air_mj ! avarage temperature May - July
real :: sum_prec ! yearly precipitation sum
real :: sum_prec_ms ! precipitation sum May - September
real :: sum_prec_mj ! precipitation sum may - July
real :: med_air_wm ! average temperature of the warmest month
real :: med_air_cm ! average temperature of the coldest month
real :: med_rad
real :: med_rad1 ! annual mean of daily solar radiation of the first year of simulation
real :: med_wind
real :: gdday ! annual growing degree day
! values per month
real, dimension(12) :: temp_mon ! mean monthly average air temperature (°C)
real, dimension(12) :: prec_mon ! mean monthly precipitation sum (mm)
real, dimension(12) :: rad_mon ! mean monthly average of daily radiation (J/cm2)
real, dimension(12) :: hum_mon ! mean monthly average daily relative humidity (%)
real :: aet_dec ! sum of AET of last december (mm)
real :: temp_dec ! mean average air temperature of last december (°C)
real :: prec_dec ! precipitation sum of last december (mm)
real :: rad_dec ! mean average of daily radiation of last december (J/cm2)
real :: hum_dec ! mean average of daily relative humidity of last december (%)
! values per week
real, dimension(53) :: temp_week ! mean monthly average air temperature (°C)
real, dimension(53) :: prec_week ! mean monthly precipitation sum (mm)
! for calculation of long-term monthly means
real, dimension(12) :: tempmean_mo ! long-term monthly means
real, dimension(12) :: tempmean_mo_a ! annual monthly means
integer :: days_summer = -99, & ! number of summer days (Tmax > 25°C)
days_hot = -99, & ! number of hot days (Tmax > 30°C)
days_ice = -99, & ! number of ice days (Tmax < 0°C)
days_dry = -99, & ! number of days without precipitation
days_hrain = -99, & ! number of days with heavy rain (> 10mm)
days_snow = -99, & ! number of days with snow (4C simulation)
days_rain = -99, & ! number of days with rain > 0.1 mm
days_rain_mj = -99, & ! number of days with rain > 0.1 mm May - July
days_wof = -99 ! number of days without frost Tmin > 0°C
! total mean values
real :: med_air_all ! overall yearly mean air temperature
real :: sum_prec_all ! overall mean yearly precipitation sum
real :: med_rad_all ! overall mean annual radiation
real :: gdday_all ! overlall mean annual growing degree day
! monthly climate indices
real :: ind_cout_mo ! monthly index Coutange
real :: ind_wiss_mo ! monthly index v. Wissmann
real :: ind_arid_mo ! monthly Index UNEP
real :: cwb_mo ! monthly climate water balance
! annual climate indices
real :: ind_arid_an ! annual aridity index UNEP
real :: cwb_an ! annual climate water balance
real :: ind_lang_an ! annual climate index acc. Linsser/Lang
real :: ind_cout_an ! annual index Coutange
real :: ind_wiss_an ! annual index v. Wissmann
real :: ind_mart_an ! annual index Martonne
real :: ind_mart_vp ! annual index martonne vegetation period (May- Sept.)
real :: ind_emb ! annual index Emberger
real :: ind_weck ! annual index Weck
real :: ind_reich ! annual index Reichel
real :: con_gor ! annual continentality index Gorczynski
real :: con_cur ! annual continentality index Currey
real :: con_con ! annual continentality index Conrad
real :: ind_bud ! annual dryness index Budyko
real :: ind_shc ! annual index Seljaninov
real :: cwb_an_m ! mean annual climate water balance of simulation period
! mean annual climate inidces of the simulation period
real :: ind_arid_an_m ! annual aridity index UNEP
real :: ind_lang_an_m ! annual climate index acc. Linsser/Lang
real :: ind_cout_an_m ! annual index Coutange
real :: ind_wiss_an_m ! annual index v. Wissmann
real :: ind_mart_an_m ! annual index Martonne
real :: ind_mart_vp_m ! annual index martonne vegetation perio (May- Sept.)
real :: ind_emb_m ! annual index Emberger
real :: ind_weck_m ! annual index Weck
real :: ind_reich_m ! annual index Reichel
real :: con_gor_m ! annual continentality index Gorczynski
real :: con_cur_m ! annual continentality index Currey
real :: con_con_m ! annual continentality index Conrad
real :: ind_bud_m ! annual dryness index Budyko
real :: ind_shc_m ! annual index Seljaninov
! values for evaluation of npp module
real,allocatable,save,dimension(:) :: tempfield
real,allocatable,save,dimension(:) :: globfield
real,allocatable,save,dimension(:) :: dayfield
real, dimension(5) :: clim_waterb = 0. ! climatic water balance (fire_risk)
! Mauna Loa CO2 time series, annual means
REAL :: year_CO2 = 2016
REAL :: Mauna_Loa_CO2(1959:2016) ! time series of annual mean CO2 measured at Mauna Loa, Hawaii
Real :: RCP_2p6(1765:2300)
Real :: RCP_6p0(1765:2150)
DATA Mauna_Loa_CO2 /0.00031598, 0.00031691, 0.00031765, 0.00031845, 0.00031899, &
0.00031952, 0.00032003, 0.00032137, 0.00032218, 0.00032305, &
0.00032462, 0.00032568, 0.00032632, 0.00032746, 0.00032968, &
0.00033025, 0.00033115, 0.00033215, 0.0003339, 0.0003355, &
0.00033685, 0.00033869, 0.00033993, 0.00034113, 0.00034278, &
0.00034442, 0.0003459, 0.00034715, 0.00034893, 0.00035148, &
0.00035291, 0.00035419, 0.00035559, 0.00035637, 0.00035704, &
0.00035888, 0.00036088, 0.00036264, 0.00036376, 0.00036663, &
0.00036831, 0.00036948, 0.00037102, 0.0003731, 0.00037564, &
0.00037738, 0.00037975, 0.00038185, 0.00038372, 0.00038557, &
0.00038738, 0.00038985, 0.00039163, 0.00039382, 0.00039648, &
0.00039861, 0.00040083, 0.00040421/
DATA RCP_2p6/278.05,278.11,278.22,278.34,278.47,278.60,278.73,278.87,279.01,279.15,279.30,279.46,279.62,279.78,279.94,280.10,280.24,280.38,280.52,280.66,&
280.80,280.96,281.12,281.28,281.44,281.60,281.75,281.89,282.03,282.17,282.30,282.43,282.55,282.67,282.79,282.90,283.01,283.11,283.21,283.31,283.40,283.49,&
283.58,283.66,283.74,283.80,283.85,283.89,283.93,283.96,284.00,284.04,284.09,284.13,284.17,284.20,284.22,284.24,284.26,284.28,284.30,284.32,284.34,284.36,&
284.38,284.40,284.39,284.28,284.13,283.98,283.83,283.68,283.53,283.43,283.40,283.40,283.43,283.50,283.60,283.73,283.90,284.08,284.23,284.40,284.58,284.73,&
284.88,285.00,285.13,285.28,285.43,285.58,285.73,285.90,286.08,286.23,286.38,286.50,286.63,286.78,286.90,287.00,287.10,287.23,287.38,287.53,287.70,287.90,&
288.13,288.40,288.70,289.03,289.40,289.80,290.23,290.70,291.20,291.68,292.13,292.58,292.98,293.30,293.58,293.80,294.00,294.18,294.33,294.48,294.60,294.70,&
294.80,294.90,295.03,295.23,295.50,295.80,296.13,296.48,296.83,297.20,297.63,298.08,298.50,298.90,299.30,299.70,300.08,300.43,300.78,301.10,301.40,301.73,&
302.08,302.40,302.70,303.03,303.40,303.78,304.13,304.53,304.98,305.40,305.83,306.30,306.78,307.23,307.70,308.18,308.60,309.00,309.40,309.75,310.00,310.18,&
310.30,310.38,310.38,310.30,310.20,310.13,310.10,310.13,310.20,310.33,310.50,310.75,311.10,311.50,311.93,312.43,313.00,313.60,314.23,314.85,315.50,316.27,&
317.08,317.80,318.40,318.93,319.65,320.65,321.61,322.64,323.90,324.99,325.86,327.14,328.68,329.74,330.59,331.75,333.27,334.85,336.53,338.36,339.73,340.79,&
342.20,343.78,345.28,346.80,348.65,350.74,352.49,353.86,355.02,355.89,356.78,358.13,359.84,361.46,363.16,365.32,367.35,368.87,370.47,372.52,374.76,376.81,&
378.81,380.83,382.78,384.80,387.00,389.29,391.56,393.84,396.12,398.40,400.68,402.97,405.25,407.53,409.80,412.07,414.33,416.52,418.60,420.60,422.52,424.35,&
426.10,427.75,429.31,430.78,432.16,433.44,434.59,435.65,436.63,437.52,438.33,439.06,439.69,440.22,440.66,441.02,441.35,441.62,441.86,442.08,442.28,442.46,&
442.60,442.70,442.75,442.76,442.73,442.66,442.55,442.41,442.25,442.08,441.89,441.67,441.42,441.13,440.80,440.43,440.01,439.54,439.05,438.54,438.02,437.48,&
436.92,436.34,435.76,435.18,434.60,434.00,433.38,432.78,432.19,431.62,431.06,430.51,429.96,429.41,428.86,428.30,427.73,427.14,426.57,426.00,425.46,424.94,&
424.43,423.93,423.43,422.93,422.43,421.92,421.40,420.90,420.41,419.95,419.50,419.06,418.62,418.17,417.71,417.25,416.77,416.28,415.80,415.32,414.87,414.42,&
413.99,413.55,413.10,412.64,412.17,411.69,411.19,410.70,410.22,409.76,409.31,408.86,408.42,407.97,407.52,407.07,406.61,406.15,405.69,405.26,404.84,404.45,&
404.07,403.68,403.29,402.90,402.51,402.10,401.69,401.28,400.89,400.53,400.17,399.83,399.49,399.14,398.79,398.43,398.06,397.68,397.31,396.96,396.62,396.30,&
395.99,395.68,395.36,395.03,394.70,394.36,394.00,393.66,393.33,393.02,392.72,392.44,392.14,391.85,391.54,391.23,390.91,390.58,390.26,389.95,389.65,389.38,&
389.11,388.83,388.55,388.27,387.97,387.67,387.35,387.05,386.75,386.48,386.21,385.96,385.70,385.44,385.16,384.88,384.59,384.29,384.00,383.72,383.45,383.20,&
382.96,382.72,382.46,382.20,381.93,381.66,381.37,381.08,380.81,380.56,380.32,380.09,379.86,379.61,379.36,379.11,378.84,378.56,378.29,378.03,377.78,377.56, &
377.33,377.11,376.87,376.63,376.38,376.12,375.85,375.59,375.34,375.11,374.89,374.67,374.45,374.23,373.99,373.75,373.50,373.24,372.98,372.74,372.52,372.30,&
372.10,371.89,371.67,371.44,371.21,370.96,370.71,370.46,370.23,370.01,369.80,369.60,369.40,369.19,368.97,368.74,368.50,368.26,368.02,367.79,367.58,367.38,&
367.18,366.98,366.78,366.57,366.35,366.11,365.87,365.64,365.42,365.21,365.02,364.83,364.64,364.44,364.23,364.02,363.79,363.55,363.32,363.11,362.91,362.72,&
362.54,362.35,362.16,361.95,361.75,361.52,361.29,361.07,360.86,360.67/
DATA RCP_6p0/ 278.05,278.11,278.22,278.34,278.47,278.60,278.73,278.87,279.01,279.15,279.30,279.46,279.62,279.78,279.94,280.10,280.24,280.38,280.52,280.66,&
280.80,280.96,281.12,281.28,281.44,281.60,281.75,281.89,282.03,282.17,282.30,282.43,282.55,282.67,282.79,282.90,283.01,283.11,283.21,283.31,283.40,283.49,&
283.58,283.66,283.74,283.80,283.85,283.89,283.93,283.96,284.00,284.04,284.09,284.13,284.17,284.20,284.22,284.24,284.26,284.28,284.30,284.32,284.34,284.36,&
284.38,284.40,284.39,284.28,284.13,283.98,283.83,283.68,283.53,283.43,283.40,283.40,283.43,283.50,283.60,283.73,283.90,284.08,284.23,284.40,284.58,284.73,&
284.88,285.00,285.13,285.28,285.43,285.58,285.73,285.90,286.08,286.23,286.38,286.50,286.63,286.78,286.90,287.00,287.10,287.23,287.38,287.53,287.70,287.90,&
288.13,288.40,288.70,289.03,289.40,289.80,290.23,290.70,291.20,291.68,292.13,292.58,292.98,293.30,293.58,293.80,294.00,294.18,294.33,294.48,294.60,294.70,&
294.80,294.90,295.03,295.23,295.50,295.80,296.13,296.48,296.83,297.20,297.63,298.08,298.50,298.90,299.30,299.70,300.08,300.43,300.78,301.10,301.40,301.73,&
302.08,302.40,302.70,303.03,303.40,303.78,304.13,304.53,304.98,305.40,305.83,306.30,306.78,307.23,307.70,308.18,308.60,309.00,309.40,309.75,310.00,310.18,&
310.30,310.38,310.38,310.30,310.20,310.13,310.10,310.13,310.20,310.33,310.50,310.75,311.10,311.50,311.93,312.43,313.00,313.60,314.23,314.85,315.50,316.27,&
317.08,317.80,318.40,318.93,319.65,320.65,321.61,322.64,323.90,324.99,325.86,327.14,328.68,329.74,330.59,331.75,333.27,334.85,336.53,338.36,339.73,340.79,&
342.20,343.78,345.28,346.80,348.65,350.74,352.49,353.86,355.02,355.89,356.78,358.13,359.84,361.46,363.16,365.32,367.35,368.87,370.47,372.52,374.76,376.81,&
378.81,380.83,382.78,384.80,386.93,389.07,391.17,393.24,395.30,397.35,399.39,401.42,403.43,405.43,407.40,409.36,411.30,413.22,415.14,417.08,419.04,421.00,&
422.98,424.95,426.92,428.88,430.83,432.81,434.83,436.92,439.07,441.29,443.57,445.90,448.28,450.70,453.15,455.65,458.18,460.76,463.41,466.12,468.91,471.77,&
474.69,477.67,480.70,483.78,486.92,490.10,493.34,496.64,500.02,503.48,507.02,510.63,514.31,518.03,521.80,525.62,529.49,533.40,537.38,541.44,545.59,549.82,&
554.13,558.49,562.87,567.27,571.70,576.15,580.61,585.10,589.65,594.26,598.92,603.54,608.02,612.36,616.57,620.65,624.58,628.38,632.06,635.65,639.14,642.60,&
646.06,649.52,652.95,656.36,659.75,663.11,666.42,669.72,673.02,676.29,679.50,682.65,685.71,688.69,691.59,694.40,697.11,699.73,702.28,704.76,707.20,709.60,&
711.93,714.21,716.40,718.52,720.56,722.51,724.37,726.16,727.90,729.59,731.24,732.85,734.39,735.86,737.26,738.59,739.83,740.99,742.08,743.12,744.13,745.10,&
746.02,746.88,747.68,748.40,749.05,749.62,750.09,750.51,750.87,751.20,751.49,751.74,751.92,752.00 /
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!^
end module data_climate
module data_evapo
! evapotranspiration data
real :: aet = 0. ! daily total actual evapotranspiration / mm
real :: aet_cum = 0. ! yearly total actual evapotranspiration / mm
real :: aet_m = 0. ! mean yearly total actual evapotranspiration / mm
real :: pet = 0. ! daily total potential evapotranspiration / mm
real :: pet_cum = 0. ! yearly total potential evapotranspiration / mm
real :: pet_m = 0. ! mean yearly total potential evapotranspiration / mm
real :: pev_s = 0. ! potential evaporation of soil / mm
real :: pev_sn = 0. ! potential evaporation of snow / mm
real :: dew_rime = 0. ! dew or rime resp. / mm
real :: dew_cum = 0. ! yearly total dew or rime resp. / mm
real :: dew_m = 0. ! mean yearly total dew or rime resp. / mm
real :: trans_dem = 0. ! potential transpiration / mm
real :: trans_tree= 0. ! actual transpiration of trees / mm
real :: trans_sveg= 0. ! actual transpiration of ground vegetation / mm
real :: tra_tr_cum= 0. ! yearly transpiration of trees / mm
real :: tra_sv_cum= 0. ! yearly transpiration of ground vegetation / mm
real :: aev_s = 0. ! actual evaporation of soil / mm
real :: aev_i = 0. ! actual evaporation of intercepted water / mm
real :: demand_mistletoe_cohort = 0. ! helping variable: transfer of mistletoe demand from evapo.f to soil.f
REAL, dimension(12) :: aet_mon ! monthly actual evapotranspiration sum / mm
REAL, dimension(53) :: aet_week ! weekly actual evapotranspiration sum / mm
REAL, dimension(12) :: pet_mon ! monthly potential evapotranspiration sum / mm
REAL, dimension(53) :: pet_week ! weekly potential evapotranspiration sum / mm
real :: Rnet_cum = 0. ! net radiation J/cm²
integer:: unit_eva
end module data_evapo
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
module data_inter
! interception data
real :: interc_can = 0. ! total daily canopy interception / mm
real :: int_st_can = 0. ! canopy interception storage / mm
real :: int_cum_can = 0. ! cumulative canopy interception / mm
real :: interc_m_can = 0. ! mean yearly canopy interception / mm
real :: prec_stand = 0. ! stand precipitation / mm
real :: prec_stand_red= 0. ! reduction of stand precipitation by percentage (drought experiments) / %
real :: interc_sveg = 0. ! total daily interception of ground vegetation / mm
real :: int_st_sveg = 0. ! interception storage of ground vegetation / mm
real :: int_cum_sveg = 0. ! cumulative interception of ground vegetation / mm
real :: interc_m_sveg= 0. ! mean yearly interception of ground vegetation / mm
real :: stem_flow = 0. ! stem flow / mm
logical:: lint_snow = .false. ! interception of snow = .true.
end module data_inter
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
module data_depo
! deposition data
real,allocatable,save,dimension(:,:) :: NHd, NOd ! input fields / mg N/m2
real :: NH_dep = 0. ! deposition of NHx-N / g N/m2
real :: NO_dep = 0. ! deposition of NOx-N / g N/m2
real :: Ndep_cum = 0. ! yearly cumulative deposition / g N/m2
real :: Ndep_cum_all = 0. ! overall mean yearly deposition / g N/m2
end module data_depo