bri_tem_nonsnow.f90

来自「CLM集合卡曼滤波数据同化算法」· F90 代码 · 共 2,381 行 · 第 1/5 页

F90
2,381
字号
subroutine BRI_TEM_NONSNOW(Ang,Fre,Co_deg,Co_len,Sv,Cv,Fv,&                           			   Dz,Tss,Wliq,Wice,Tve,SinScaAlb,b,Lai,Tb)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!the BT procedure is used to simulate the brightness temperature !received by the passive microwave sensors. !---------------------------------------------------------------!output parameters:!  Tb: simulation brightness temperatures received by sensors!      including H polarization Tb and V polarization Tb at two!      different frencencies!---------------------------------------------------------------!input parameters:!  Ang: observation angle [degrees]!  Fre: observation freqencies [GHz]!  Co_deg: coarseness degree [cm]!  Co_len: correlation length [cm]!  Sv: sand volume percentage!  Cv: clay volume percentage!  Fv: solid materials volume percentage!  Dz: snow and soil layer depth in CLM [m]!  Tss:temperature in each layer for snow and soil in CLM [K]!  Wliq: water content in each layer for snow and soil in CLM [kg/m2]!  Wice: ice   content in each layer for snow and soil in CLM [kg/m2]!  Tve:  vegetation effective temperature [K]!  SinScaAlb: single scattering albedo!  b: vegetation parameter used to determine optical path for some freqency!     for more dails about this parameter,refer to articles by Jackson!  Lai: a parameter for vegetation used to parameterize Wv [kg/m2]!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!implicit nonereal,parameter::ConCoe=0.035  ! conversion coefficent from Lai to Wv, unit[kg/m2] real,dimension(1:2)::Tb  ! output paramter brightness temperatures for                          ! H and V polarizations,Tb(1) vertical,Tb(2) horizontal[k]real::Ang,Fre,Co_deg,Co_len,Sv,Cv,Fv,Tve,SinScaAlb,b,Laireal,dimension(-4:10)::Dz,Tss,Wliq,Wice ! inputting into EFF_VAL_COM for computing Tb real::&     ! mediate variables outputting from EFF_VAL_COM        Tse,& ! Tse --soil effective temperature      Vms,& ! Vms --soil effective volumetric water content                 Vis   ! Vis --soil effective volumetric ice   content		  				  real::Trans	! vegetation canopy transmittance for micowave at some frequencyreal,dimension(1:2)::Emi ! the H and V emittances for bare soil                          ! at some frequency						 ! Emi(1) for vertical,Emi(2) for horizontal						 ! derive from IEMreal::Tspv,&  ! bare soil vertically polarized brightness temperature      Tsph    ! bare soil horizontally polarized brightness temperature       !print*, Ang !print*, fre !print*, co_deg !print*, co_len !print*, sv !print*, cv !print*, Sv!print*, fv !print*, dz !print*, Tss!print*, wliq !print*, wice!print*, tve!print*,sinscaalb!print*, b!print*, lai!print*, tb !print*,'Tse',Tse,'Vms',vms,'Vis',Viscall EFF_VAL_COM( Dz,Tss,Wliq,Wice,Ang,Fre,Sv,Cv,Fv,Tse,Vms,Vis)!print*,'Tse',Tse,'Vms',vms,'Vis',Vis!print*,'ang', angcall IEM(Ang,Fre,Co_deg,Co_len,Sv,Cv,Fv,Tse,Vms,Vis,Emi)!print*,'Emi',Emi!print*,'ang', angTspv=Emi(1)*TseTsph=Emi(2)*TseTrans=exp(-b*(Lai*ConCoe)/cos(Ang))Tb(1)=(1+(1-Emi(1))*Trans)*(1-Trans)*(1-SinScaAlb)*Tve+ &      Trans*Tspv! +5.0Tb(2)=(1+(1-Emi(2))*Trans)*(1-Trans)*(1-SinScaAlb)*Tve+ &      Trans*Tsph! +5.0continue! the detailed description of above formula could be found in the article! by Jackon in 1991 and 1993end subroutine BRI_TEM_NONSNOW!========================================================================subroutine EFF_VAL_COM( Dz,Tss,Wliq,Wice,Ang,Fre,Sv,Cv,Fv,Tse,Vms,Vis)!      ------------------------------------------------------------------!     |                                                                  |!     |  EFF_VAL_COM is used to compute effive temperature,volume water  |!     |  content and volume ice content in conjunction with CLM. For the |!     |  time being,only top 4 soil layers are employed in this          |!     |  procedure. However, more soil layers can be added to it. For    |!     |  detailed formula, please refer to atbd-amsr-land.pdf by Njouk   |!     |   the article by Jianchen Shi  and CLM by Yongjiu Dai            |!     |                                                                  |!     |  first version time :5/20/2004   author: QinJun                  |!     |  1th modified version time: 7/23/2004  author: QinJun            |!     |                                                                  |!     |                                                                  |!     |                                                                  |!     |                                                                  |!      ------------------------------------------------------------------implicit nonereal,parameter:: Rhow= 1.00*10**3   ! water density [kg/m3]real,parameter:: Rhoi= 0.91*10**3   ! ice density [kg/m3]real,parameter:: Pi  = 3.1415926  integer,parameter:: Ln=5               ! the number of layers used to compute effective valuesreal,dimension(-4:10):: Dz, &  !Dz: snow and soil layer depth in CLM [m]                        Tss,&  !temperature in each layer for snow and soil in CLM [K]                        Wliq,& !water content in each layer for snow and soil in CLM [kg/m2]                        Wice   !ice content in each layer for snow and soil in CLM [kg/m2]real:: Ang,&    ! sensor zenith angle       Fre      ! sensor frequencyreal:: Sv,& ! Sv -- sand volume percentage       Cv,& ! Cv -- clay volume percentage	   Fv   ! Fv -- percentage of solid soil excluding icereal:: Tse,& ! soil effective temperature       Vms,& ! soil effective volume moisture content       Vis   ! soil effective volume ice      contentreal,dimension(1:Ln)::Alpha ! parameters used for computing effective valuesreal:: Ext_Coe   ! extinction coefficient used for comuting effective valuesreal:: Epsilonr,&   ! real part in soil dielectric constant        Epsiloni     ! imagory part in soil dielectric constantreal,dimension(1:Ln):: Wvfrac,&     ! temporary varaible denoting volume water content for each soil layer in CLM                       Ivfrac       ! temporary varaible denoting volume ice   content for each soil layer in CLMreal,dimension(1:300):: STss,   &   ! sublayer temperature used to computing Tse                        SWvfrac,&					    SIvfrac,&					    SAlpha ,&					    SDz                        real:: ivreal:: wn ! wavenumberinteger:: i,j,k,l,m,n     ! iteration cycle numberTse=0.0E+0;Vms = 0.0E+0; Vis = 0.0E+0 wn=(2*Pi)*Fre/0.3    ! transforming Frequency to wavenumberdo i=1,Ln!   if (i.EQ.1) then      Wvfrac(i)=(Wliq(i)/Rhow)/Dz(i)      Ivfrac(i)=(Wice(i)/Rhoi)/Dz(i)!   else!      Wvfrac(i)=((Wliq(i)-Wliq(i-1))/Rhow)/Dz(i) ! converting CLM layer water content to Epsion volume water content!      Ivfrac(i)=((Wice(i)-Wice(i-1))/Rhoi)/Dz(i) ! converting CLM layer ice   content to Epsion volume ice   content!   end if    call epsion(Fre,Sv,Cv,Fv,Tss(i),Wvfrac(i),Ivfrac(i),Epsilonr,Epsiloni,iv)   Alpha(i)=2 * wn * &            abs(aimag(csqrt(dcmplx(Epsilonr,Epsiloni)-(sin(Ang))**2)))end dodo m=1,300    if (m.LE.50) then       STss(m)=Tss(1)	   SWvfrac(m)=Wvfrac(1)	   SIvfrac(m)=Ivfrac(1)	   SAlpha (m)=Alpha (1)	   SDz    (m)=Dz(1)/50.0	 else if (m.GT.50.AND.m.LE.100) then           STss(m)=Tss(2)	   SWvfrac(m)=Wvfrac(2)	   SIvfrac(m)=Ivfrac(2)	   SAlpha (m)=Alpha (2)	   SDz    (m)=Dz(2)/50.0	 	  	 else if (m.GT.100.AND.m.LE.180) then           STss(m)=Tss(3)	   SWvfrac(m)=Wvfrac(3)	   SIvfrac(m)=Ivfrac(3)	   SAlpha (m)=Alpha (3)	   SDz    (m)=Dz(3)/80.0		  	 else if  (m.GT.180.AND.m.LE.240) then		    	   STss(m)=Tss(4)	   SWvfrac(m)=Wvfrac(4)	   SIvfrac(m)=Ivfrac(4)	   SAlpha (m)=Alpha (4)	   SDz    (m)=Dz(4)/60.0	 else if  (m.GT.240.AND.m.LE.300) then	   STss(m)=Tss(5)	   SWvfrac(m)=Wvfrac(5)	   SIvfrac(m)=Ivfrac(5)	   SAlpha (m)=Alpha (5)	   SDz    (m)=Dz(5)/60.0	 !else if  (m.GT.1820.AND.m.LE.4620) then	   !STss(m)=Tss(6)	   !SWvfrac(m)=Wvfrac(6)	   !SIvfrac(m)=Ivfrac(6)	   !SAlpha (m)=Alpha (6)	   !SDz    (m)=Dz(6)/2800.0	! else if  (m.GT.4620.AND.m.LE.6930) then	  ! STss(m)=Tss(7)	  ! SWvfrac(m)=Wvfrac(7)	   !SIvfrac(m)=Ivfrac(7)	  ! SAlpha (m)=Alpha (7)	  ! SDz    (m)=Dz(7)/2310.0	   	   	 end if 		      end dodo j=1,300          Ext_Coe=0.0          do k=1,j             Ext_Coe=Ext_Coe+SAlpha(k)*SDz(k)	         end do      Tse=Tse+STss (j)*SAlpha(j)*exp(-Ext_Coe)*SDz(j)              Vms=Vms+SWvfrac(j)*SAlpha(j)*exp(-Ext_Coe)*SDz(j)      Vis=Vis+SIvfrac(j)*SAlpha(j)*exp(-Ext_Coe)*SDz(j)end do returnend subroutine EFF_VAL_COM!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!subroutine IEM(ang,fre,co_deg,co_len,sv,cv,fv,tse,vms,vis,emi) ! be used to couple with CLM! ff is an array used to store silumation frenencies in GHz!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!c!                                                           c!  program computes bistatics scattering coefficients       c!  from "3d" finitely conducting surface                    c!  ( only for HH and VV polarization )                      c!  ------------------------------------------------------   c!  input parameters:                                        c!     er: surface relative dielectric constant              c!     cl: surface correlation length in cm                  c!    sig: surface rms height in cm                          c!     fr: operating frequency in GHz                        c!  -----------------------------------------------------    c!    itype: select what type of surface correlation         c!           =1  Gaussian correlation function               c!           =2  exponential correlation function            c!           =3  transformed exponential correlation         c!           =4 generalized power law spectrum               c!              p = 1.5 exponential                          c!              p = infinity  Gaussina                       c!    icross:                                                c!           =0 no cross terms are computed                  c!           =1    corss terms are computed                  c!    icort:                                                 c!           =0 no corrected terms are computed              c!           =1    corrected terms are computed              c!    muti:                                                  c!           =0 no mutiple scattering are computed           c!           =1    mutiple scattering are computed           c !    -------------------------------------------------      c!    npts: number of quadature points for integration       c!    npol: number of polarizations to be computed           c!    -------------------------------------------------      c!    Arguments for subroutine "sigma" (on input):           c!    ang: incident angle in deg                             c!    angs: scattering angle in deg                          c!    phi: incident azimuth angle in deg                     c!    phis: scattering azimuth angle in deg                  c!    z1: zeros in k direction for Gaussian quaduture        c!    w1: weights in k direction for Gaussian quadature      c!    z2: zeros in phi direction for Gaussian quadature      c!    w2: weights in phi direction for Gaussian quadature    c! rmslp: surface rms slope                                  c!   ------------------------------------------------------  c!    Arguments for subroutine "sigma" (on output):          c!    sigma: array for IEM scattering coefficients           c!          sigma(1) ---> HH polarization                    c!          sigma(2) ---> VV polarization                    c!          sigma(3) ---> HV polarization                    c!          sigma(4) ---> VH polarization                    c!    -----------------------------------------------------  c!    ite=1:Fresnel reflection coeff. approxmated by R(ang)  c!    ite=2:Fresnel reflection coeff. approxmated by R(0)    c!    ite=3:calculate the proposed transition function       c!    ite=4:Fresnel reflection coeff. approxmated by R(T)    c!    -----------------------------------------------------  c!    tranh:the ratio of the complementary term to the total c!          scattering coefficients in HH polarization       c!    tranv:the ratio of the complementary term to the total c!          scattering coefficients in VV polarization       c!    tranh0,tranv0: when k approaches zero                  c!    -----------------------------------------------------  c!    trfachh,trfacvv: proposed transition function          c!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!c !!             Comment by ZHaoKaiguang                       !!   when k*sig grows large, some variables will overflow,   !!such as  tempk,tempr1 and etc. So in the program,only these!!variables' LOG value is stored into the corresopding varia-!!les whose name is the original ones puls "_LOG". To ensure !!it to run properly, other parts are aslo modified.         !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!      implicit real*8 (a-h,k,o-z)       implicit real*8 (a-h,k,o-z)      complex(8) er,ur,k2,ffhh,ffvv,stem,rh2,rv2, &               gghh,ggvv,funhh,funvv,funvvs,funhhs      complex(8) rhi,rvi      dimension sigma0(4),sigma1(4)      dimension w1(512),z1(512),w2(512),z2(512)      dimension wt(512),zt(512)      dimension shad_cor(512,512)      logical  back,shadowing      common /qua/zt,wt,npts      common /cont2/ rxx,sig,sig2      common /wlng/k,k2      common /p/pi,pi2,spi,spi2      common /al/cl,effslop,npol      common /type/itype      common /eu/er,ur      common /index/icross,icort,muti      integer npol,npts,ite      real*8 uth, cu, fu      common /order/uth,cu,fu      real:: vms  !    real*8 ang!define variable names for epsion      !real,dimension(2)::fre	! simulation frenencies      real::fre      real,dimension(1:2)::emi	! emittance of two bands first vertical second horizontal      real::sv,cv,fv,tse,co_deg,co_len	 !for detailed specifications, see epsion       integer::ii        !iteration cycle number for frenencies!print*,ang,fre,co_deg,co_len,sv,cv,fv,tse,vms,vis!print*,'icross',icross,'icort',icort,'muti',muti!! -------------------------------------! ** assign initial values to common **! -------------------------------------  npts = 0  rxx = 0.0E+0;sig = 0.0E+0;sig2 = 0.0E+0  k = 0.0E+0; k2 = (0.0E+0,0.0E+0)  pi = 0.0E+0; pi2 = 0.0E+0; spi = 0.0E+0; spi2 = 0.0E+0  cl = 0.0E+0; effslop = 0.0E+0; npol = 0  itype = 0  er = (0.0E+0,0.0E+0); ur = (0.0E+0,0.0E+0)  icross = 0; icort = 0; muti = 0   !	  st1=st-273.16  ! convert from unit K to unit degree C for 	                ! the requirement of Epsion model use to compute 					! dielectic constant for bare soil!!!!!!!!      open(15,file='iem.in',status='old',access='sequential')      shadowing=.false.      back=.false.      pi=dacos(-1.0d0)      pi2=2.0*pi      ur=1.0      npol=4			 !!polarization numbers hh,vv,hv,vh      npts=512      spi=sqrt(pi)      spi2=sqrt(pi2)!-------------------------------------------------------c!         Input Parameters                              c!-------------------------------------------------------c      icross=1	!!cross terms are computed      icort=1	!!correct terms are computed?      muti=0	!!single scattering      itype=1	!!Gaussian correlation function      ite=2		!!Fresnel reflection coeff. approxmated by R(ang)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?