Files
exoplasim/tools/dump_atm.f90
T

126 lines
3.6 KiB
Fortran

! ===================
! SUBROUTINE ATM_DUMP
! ===================
subroutine atm_dump
use pumamod
character (len=256) :: yfn
call step2cal(nstep,ntspd,iyea,imon,iday,ihou,imin)
write(yfn,'("atm_dump_",I4.4,4I2.2)') iyea,imon,iday,ihou,imin
open(72,file=yfn)
100 format(a16,i16)
write (72,100) 'nice',nice
write (72,100) 'mocd',mocd
write (72,100) 'n_start_year',n_start_year
write (72,100) 'n_start_month',n_start_month
write (72,100) 'ntspd',ntspd
write (72,100) 'noutput',noutput
write (72,100) 'nout',nout
write (72,100) 'n_start_step',n_start_step
write (72,100) 'n_days_per_month',n_days_per_month
write (72,100) 'n_days_per_year',n_days_per_year
write (72,100) 'nprint',nprint
write (72,100) 'nprhor',nprhor
write (72,100) 'nstep',nstep
write (72,100) 'nrestart',nrestart
write (72,100) 'naccuout',naccuout
write (72,100) 'mpstep',mpstep
write (72,100) 'nwpd',nwpd
write (72,100) 'kick',kick
write (72,100) 'nafter',nafter
write (72,100) 'ncoeff',ncoeff
write (72,100) 'ndiag',ndiag
write (72,100) 'ndebug',ndebug
write (72,100) 'nexp',nexp
write (72,100) 'nexper',nexper
write (72,100) 'ngui',ngui
write (72,100) 'npacksp',npacksp
write (72,100) 'npackgp',npackgp
write (72,100) 'ndiaggp',ndiaggp
write (72,100) 'ndiagsp',ndiagsp
write (72,100) 'ndiagcf',ndiagcf
write (72,100) 'ndiaggp2d',ndiaggp2d
write (72,100) 'ndiaggp3d',ndiaggp3d
write (72,100) 'ndiagsp2d',ndiagsp2d
write (72,100) 'ndiagsp3d',ndiagsp3d
write (72,100) 'nhdiff',nhdiff
write (72,100) 'ntime',ntime
write (72,100) 'nperpetual',nperpetual
write (72,100) 'n_sea_points',n_sea_points
write (72,100) 'mars',mars
200 format(a16,e20.10)
write (72,200) 'dawn',dawn
write (72,200) 'delt',delt
write (72,200) 'delt2',delt2
write (72,200) 'dtep',dtep
write (72,200) 'dtns',dtns
write (72,200) 'dtrop',dtrop
write (72,200) 'dttrp',dttrp
write (72,200) 'tgr',tgr
write (72,200) 'psurf',psurf
write (72,200) 'time0',time0
write (72,200) 'co2',co2
write (72,200) 'umax',umax
write (72,200) 't2mean',t2mean
write (72,200) 'precip',precip
write (72,200) 'evap',evap
write (72,200) 'olr',olr
write (72,200) 'akap',akap
write (72,200) 'alr',alr
write (72,200) 'ga',ga
write (72,200) 'gascon',gascon
write (72,200) 'plarad',plarad
write (72,200) 'pnu',pnu
write (72,200) 'siderial_day',siderial_day
write (72,200) 'solar_day',solar_day
write (72,200) 'ww',ww
write (72,200) 'ra1',ra1
write (72,200) 'ra2',ra2
write (72,200) 'ra4',ra4
write (72,200) 'acpd',acpd
write (72,200) 'adv',adv
write (72,200) 'cv',cv
write (72,200) 'ct',ct
write (72,200) 'pnu21',pnu21
write (72,200) 'rdbrv',rdbrv
close(72)
end
subroutine atm_dump_hor(ya,pa)
use pumamod
character (len=*) :: ya
real :: pa(NHOR)
write(72,'(/A)') trim(ya)
do j = 1 , NHOR , 4
write(72,'(i6,2x,4e18.10)') j,pa(j:j+3)
enddo
return
end
subroutine atm_dump_hor14(ya,pa)
use pumamod
character (len=*) :: ya
real :: pa(NHOR,14)
do mon = 1 , 14
write(72,'(/I2,2X,A)') mon-1,trim(ya)
do j = 1 , NHOR , 4
write(72,'(i6,2x,4e18.10)') j,pa(j:j+3,mon)
enddo
enddo
return
end