Initial commit
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
subroutine UnivParamsAlloc(iswitch)
|
||||
implicit none
|
||||
include '../testarea/LeafGasParams.h'
|
||||
include '../testarea/LeafGasHybridFit.h'
|
||||
integer iswitch,i
|
||||
!ilimittype=1: Rubisco,RuBp and TPU limitations
|
||||
!ilimittype=2: Rubisco and RuBp limitations only
|
||||
!ilimittype=3: Rubisco and TPU limitations only
|
||||
!ilimittype=4: RuBp and TPU limitations only
|
||||
!ilimittype=5: Rubisco limitation only
|
||||
!ilimittype=6: RuBp limitation only
|
||||
!ilimittype=7: TPU limitation only
|
||||
!iswitch=1: initilize the array of univparams
|
||||
!iswitch=2: allcoate the array of univparams to corresponding parameters
|
||||
if(iswitch.eq.2)then
|
||||
resistwp25=univparams(1)
|
||||
resistch25=univparams(2)
|
||||
rdlight25=univparams(3)
|
||||
stargamma25=univparams(4)
|
||||
vcmax25=univparams(5)
|
||||
fkc25=univparams(6)
|
||||
fko25=univparams(7)
|
||||
fjmax25=univparams(8)
|
||||
tpu25=univparams(9)
|
||||
alpha25=univparams(10)
|
||||
phifactor=univparams(11)
|
||||
thetafactor=univparams(12)
|
||||
betaPSII=univparams(13)
|
||||
ha_darkresp=univparams(14)
|
||||
ha_stargamma=univparams(15)
|
||||
ha_vcmax=univparams(16)
|
||||
ha_jmax=univparams(17)
|
||||
ha_tpu=univparams(18)
|
||||
ha_gmeso=univparams(19)
|
||||
return
|
||||
else
|
||||
do i=1,ntotunivparams
|
||||
!Initialize ifixunivparams to keep all parameters unchanged
|
||||
ifixunivparams(i)=0
|
||||
enddo
|
||||
!
|
||||
if(Currentiknowlimit.eq.-1)then
|
||||
!Fluorescence only fit
|
||||
if(idorwp.eq.1)ifixunivparams(1)=1
|
||||
if(idorch.eq.1)ifixunivparams(2)=1
|
||||
if(idord.eq.1)ifixunivparams(3)=1
|
||||
if(idostargamma.eq.1)ifixunivparams(4)=1
|
||||
if(idobetaPSII.eq.1)ifixunivparams(13)=1
|
||||
if(idoha_darkresp.eq.1)ifixunivparams(14)=1
|
||||
if(idoha_stargamma.eq.1)ifixunivparams(15)=1
|
||||
if(idoha_gmeso.eq.1)ifixunivparams(19)=1
|
||||
return
|
||||
endif
|
||||
!
|
||||
if(idorwp.eq.1)ifixunivparams(1)=1
|
||||
if(idorch.eq.1)ifixunivparams(2)=1
|
||||
if(idord.eq.1)ifixunivparams(3)=1
|
||||
if(idostargamma.eq.1)ifixunivparams(4)=1
|
||||
if(Currentilimittype.le.3.or.Currentilimittype.eq.5)then
|
||||
!Rubisco limit involved
|
||||
ifixunivparams(5)=1
|
||||
if(idokc.eq.1)ifixunivparams(6)=1
|
||||
if(idoko.eq.1)ifixunivparams(7)=1
|
||||
if(idoha_vcmax)ifixunivparams(16)=1
|
||||
endif
|
||||
if(Currentilimittype.le.2.or.Currentilimittype.eq.4.or.
|
||||
&Currentilimittype.eq.6)then
|
||||
!RuBp limit involved
|
||||
ifixunivparams(8)=1
|
||||
if(idoha_jmax.eq.1)ifixunivparams(17)=1
|
||||
if(idophifactor.eq.1)ifixunivparams(11)=1
|
||||
if(idothetafactor.eq.1)ifixunivparams(12)=1
|
||||
if(idobetaPSII.eq.1)ifixunivparams(13)=1
|
||||
endif
|
||||
if(Currentilimittype.eq.1.or.Currentilimittype.eq.3.or.
|
||||
&Currentilimittype.eq.4.or.Currentilimittype.eq.7)then
|
||||
!tpu limit involved
|
||||
ifixunivparams(9)=1
|
||||
if(idoalpha.eq.1)ifixunivparams(10)=1
|
||||
if(idoha_tpu.eq.1)ifixunivparams(18)=1
|
||||
endif
|
||||
if(idoha_darkresp.eq.1)ifixunivparams(14)=1
|
||||
if(idoha_stargamma.eq.1)ifixunivparams(15)=1
|
||||
if(idoha_gmeso.eq.1)ifixunivparams(19)=1
|
||||
return
|
||||
endif
|
||||
end subroutine UnivParamsAlloc
|
||||
Reference in New Issue
Block a user