module module_restart 2
use module_variables
use module_constants
use module_control
,only: RestartFileName,OutputByHour,dt
implicit none
contains
subroutine write_restart(its) 1
integer,intent(IN) :: its
integer :: ivl ! Index for vertical levels
character(80) :: filename
integer , parameter :: lunrout=31 ! Logical unit for restart output
integer time
if(OutputByHour) then
time = (its+.5)*dt/3600
else
time = its
endif
write(filename,"('fim_restart_',i6.6)") time
open (lunrout,file=filename,form='unformatted')
write(lunrout) its,nf,of,vof,ab1,ab2,ab3
write(lunrout) lat,lon,nprox,proxs,proxRestart,area,cs,sn, &
sidevec_c,sidevec_e,sideln,rprox_ln
write(lunrout) rarea,rsideln,f,deg_lat,deg_lon,rn2d,pw2d
write(lunrout) thetac,dpsig
!write(lunrout) fu ,fv ,ft ,fqv
!write(lunrout) fdp,fdpl,ftl,fqvl
!write(lunrout) us3d,vs3d,ws3d,mp3d
!write(lunrout) dp3d,qv3d,th3d,tp3d
!write(lunrout) rh3d,qvpl,ssus
!write(lunrout) ssvs,ssdp,ssth,ssqv
!write(lunrout) qvdp,tpl ,dpl ,vor
!write(lunrout) pr3d,ex3d,ph3d,sdps
write(lunrout) fu ,fv ,ftr
write(lunrout) fdp,fdpl,ftrl
write(lunrout) us3d,vs3d,ws3d,mp3d
write(lunrout) dp3d,tr,trdp
write(lunrout) rh3d,trpl,ssus
write(lunrout) ssvs,ssdp,ssth,ssqv
write(lunrout) dpl ,vor
write(lunrout) pr3d,ex3d,ph3d,sdps
close(lunrout)
return
end subroutine write_restart
subroutine read_restart(its) 1
integer,intent(OUT) :: its
integer :: ivl ! Index for vertical levels
integer , parameter :: lunrin =30 ! Logical unit for restart input
open(lunrin,file=RestartFileName,form="unformatted")
read(lunrin) its,nf,of,vof,ab1,ab2,ab3
read(lunrin) lat,lon,nprox,proxs,prox,area,cs,sn, &
sidevec_c,sidevec_e,sideln,rprox_ln
!SMS$ignore begin
proxRestart = prox
!SMS$ignore end
!SMS$UNSTRUCTURED_GRID(PROX)
read(lunrin) rarea,rsideln,f,deg_lat,deg_lon,rn2d,pw2d
read(lunrin) thetac,dpsig
!read(lunrin) fu ,fv ,ft ,fqv
!read(lunrin) fdp,fdpl,ftl,fqvl
!read(lunrin) us3d,vs3d,ws3d,mp3d
!read(lunrin) dp3d,qv3d,th3d,tp3d
!read(lunrin) rh3d,qvpl,ssus
!read(lunrin) ssvs,ssdp,ssth,ssqv
!read(lunrin) qvdp,tpl ,dpl ,vor
!read(lunrin) pr3d,ex3d,ph3d,sdps
close(lunrin)
its = its + 1
return
end subroutine read_restart
end module module_restart