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