📄 data.f90
字号:
SUBROUTINE data(lon ,lat ,msub ,& nsrest ,rdlsf ,rdlai ,dt_step ,mstep ,& mbyear ,mbday ,mbsec ,greenwich ,& lun_ini ,lun_rst ,lun_srf ,lun_lai ,lun_met, lun_out) !-----------------------------------------------------------------------! ! Read data from namelist clmexp to define the run and open the files!!---------------------------output variables----------------------------- IMPLICIT NONE integer, INTENT(out) :: & lon, &!longitude points lat, &!latitude points msub, &!number of submesh mstep, &!model step for simulation [-] mbyear, &!base year of run mbday, &!base julian day of run mbsec, &!base seconds of starting date (e.g., 0) nsrest, &!0 = initial run, > 0 = continuation run lun_ini, &!logical unit number of initial data lun_rst, &!logical unit number of re-start file lun_srf, &!logical unit number of surface data lun_lai, &!logical unit number of LAI data lun_met, &!logical unit number of meteorological data lun_out !logical unit number of output file logical, INTENT(out) :: & rdlsf, &!true if read in initial data set rdlai, &!true if read in LAI data set greenwich !true if the input starting time is greenwich time !false -> local time real, INTENT(out) :: & dt_step ! time step of model (second)!---------------------------Local variables----------------------------- character(LEN=40) :: & site, &! site name inidat, &! file name of initial data rstdat, &! file name of re-start file srfdat, &! file name of surface data laidat, &! file name of LAI data metdat, &! file name meteorological data outdat ! file name of output file!! --------------------------Namelist variables--------------------------! namelist /clmexp/ site ,lon ,lat ,msub, & nsrest ,rdlsf ,rdlai ,dt_step ,mstep, & greenwich ,mbyear ,mbday ,mbsec ,inidat, & rstdat ,srfdat ,laidat ,metdat ,outdat! ----------------------------------------------------------------------! open(unit=5,file='bj_2004_in',form='formatted') open(unit=6,file='bj_2004_out',form='formatted') read (5,clmexp) write(6,*) 'the running for case ', site write(6,*) write(6,100) lon write(6,*) write(6,110) lat write(6,*) write(6,120) msub write(6,*) write(6,130) dt_step write(6,*) write(6,140) mstep write(6,*) if(greenwich)then write(6,*) 'the starting time is the greenwich time' else write(6,*) 'the starting time is local time' endif write(6,*) write(6,150) mbyear write(6,*) write(6,160) mbday write(6,*) write(6,170) mbsec lun_ini = 100 if(nsrest==0)then if(rdlsf)then open(unit=lun_ini,file=inidat,form='formatted') write(6,*) write(6,*) 'Initial run with read-in initial data ',inidat else write(6,*) write(6,*) 'Initial run with arbitrary initial set' endif endif lun_rst = 110 open(unit=lun_rst,file=rstdat,form='formatted') write(6,*) write(6,*) 'Re-strat run with read-in from or write out to re-start data ',rstdat lun_srf = 120 open(unit=lun_srf,file=srfdat,form='formatted') write(6,*) write(6,*) 'read-in surface parameters from ',srfdat lun_met = 130 open(unit=lun_met,file=metdat,status='old',form='formatted') write(6,*) write(6,*) 'read-in meteorological data from ',metdat lun_lai = 140 if(rdlai)then open(unit=lun_lai,file=laidat,status='old',form='formatted') write(6,*) write(6,*) 'read-in LAI data from ',laidat endif lun_out = 150 open(unit=lun_out,file=outdat,status='unknown',form='unformatted') write(6,*) write(6,*) 'write-out the model output to ',outdat100 format(' the running for longitude number = ',i8)110 format(' the running for latitude number = ',i8)120 format(' the running for tile number in grids = ',i8)130 format(' the running time step (second) = ',f10.1)140 format(' the running total steps = ',i8)150 format(' the running starting year = ',i8)160 format(' the running starting julian day = ',i8)170 format(' the running starting seconds (0-86400) = ',i8) close(5) END SUBROUTINE data
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -