📄 enkf_ini.f90
字号:
subroutine enkf_ini( )! -------------------------------------------------------------------------- ! | This procedure is used for the initilization of ensemble state variables |! | and ensemble derived time-varying parameters. this procedure also |! | allocates space for remote sensing data. The model error and observation |! | operator error are read into matrice W and Q which are defined in | ! | enkfpar_module.note that the ensemble is needed to be the realizations | ! | of a certain distribution representing uncertainty in initial conditions | ! | |! | |! | |! | source file: enkf_ini.f90 |! | author : Qin Jun, 5/29/2004 |! -------------------------------------------------------------------------- use clmtv_module use enkftv_module use enkfpar_module use clmpar_module use enkfobs_module implicit none integer :: ii, jj, kk, mm, nn integer :: i , j , k , m , n integer :: a,b lun_obs = 6666 open(unit=lun_obs,file='bj_2004_sat',form='formatted') ! open(unit=7777,file='model_error.txt',form='formatted')! open(unit=8888,file='observation_error.txt',form='formatted')! open(unit=9999,file='correlation.txt',form='formatted')! read(7777,*)((W(a,b),b=1,32),a=1,32)! read(8888,*)Q Q=10.0! -----------------------------------------------------------------! | the Rhoc matrix and the sigman vector are initialized in the | ! | following. | ! | | ! ----------------------------------------------------------------- do i = 1,10 Sigman(i) = 0.01 end do Rhoc(:,:) = 0.0E+0 do i = 1, 10 do j = 1, 10 Rhoc(i,j) = exp(-1*Betat*ABS(z(i)-z(j))) end do end dowrite(*,*)((Rhoc(a,b),b=1,10),a=1,10) ! ----------------------------------------------------------------- ! allocate(sat_obs(1:4,1:kpt)) call enkftv_allocate (lpt, kpt, maxsnl, msl, Ne) do kk = 1, Ne! ---------------------------------------------------! ** firstly, manipulate one-dimensional variables **! --------------------------------------------------- en_iyear(kk) = iyear en_jday (kk) = jday en_mcsec(kk) = mcsec do ii = 1, kpt! ----------------------------------------------------! ** secondly, deal with two-dimensional variables ** ! ---------------------------------------------------- en_snl (ii, kk) = snl (ii) en_fveg (ii, kk) = fveg (ii) en_green (ii, kk) = green(ii) en_fsno (ii, kk) = fsno (ii) en_sigf (ii, kk) = sigf (ii) en_tlsun (ii, kk) = tlsun(ii) en_tlsha (ii, kk) = tlsha(ii) en_ldew (ii, kk) = ldew (ii) en_sag (ii, kk) = sag (ii) en_scv (ii, kk) = scv (ii) en_snowdp(ii, kk) = snowdp(ii) en_etrc (ii, kk) = etrc (ii) en_tg (ii, kk) = tg (ii) en_lai (ii, kk) = lai (ii) en_sai (ii, kk) = sai (ii) en_xerr (ii, kk) = xerr (ii) en_zerr (ii, kk) = zerr (ii) en_thermk(ii, kk) = thermk(ii) en_extkb (ii, kk) = extkb(ii) en_extkd (ii, kk) = extkd(ii) en_cosz (ii, kk) = cosz (ii) ! -----------------------------------------------------! ** secondly, cope with three-dimensional variables **! ----------------------------------------------------- do jj = maxsnl+1, msl en_dz (jj, ii, kk) = dz (jj, ii) en_z (jj, ii, kk) = z (jj, ii) en_tss (jj, ii, kk) = tss (jj, ii) en_wliq(jj, ii, kk) = wliq (jj, ii) en_wice(jj, ii, kk) = wice (jj, ii) end do do jj = maxsnl+0, msl en_zi(jj, ii, kk) = zi (jj, ii) end do do jj = 1, msl en_rootr(jj, ii, kk) = rootr(jj, ii) end do! ------------------------------------------------------! ** thirdly, manipulate four-dimensional varialbes **! ------------------------------------------------------ do mm =1, 2 do nn= 1, 2 en_albg (mm, nn, ii, kk) = albg (mm, nn, ii) en_albv (mm, nn, ii, kk) = albv (mm, nn, ii) en_alb (mm, nn, ii, kk) = alb (mm, nn, ii) en_ssun (mm, nn, ii, kk) = ssun (mm, nn, ii) en_ssha (mm, nn, ii, kk) = ssha (mm, nn, ii) en_tranc (mm, nn, ii, kk) = tranc(mm, nn, ii) end do end do end do end do! ######################################################################! # the following code used to generate initial ensemble temperature! # profile! #! ###################################################################### end subroutine enkf_ini
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -