dump_atm.f90 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. ! ===================
  2. ! SUBROUTINE ATM_DUMP
  3. ! ===================
  4. subroutine atm_dump
  5. use pumamod
  6. character (len=256) :: yfn
  7. call step2cal(nstep,ntspd,iyea,imon,iday,ihou,imin)
  8. write(yfn,'("atm_dump_",I4.4,4I2.2)') iyea,imon,iday,ihou,imin
  9. open(72,file=yfn)
  10. 100 format(a16,i16)
  11. write (72,100) 'nice',nice
  12. write (72,100) 'mocd',mocd
  13. write (72,100) 'n_start_year',n_start_year
  14. write (72,100) 'n_start_month',n_start_month
  15. write (72,100) 'ntspd',ntspd
  16. write (72,100) 'noutput',noutput
  17. write (72,100) 'nout',nout
  18. write (72,100) 'n_start_step',n_start_step
  19. write (72,100) 'n_days_per_month',n_days_per_month
  20. write (72,100) 'n_days_per_year',n_days_per_year
  21. write (72,100) 'nprint',nprint
  22. write (72,100) 'nprhor',nprhor
  23. write (72,100) 'nstep',nstep
  24. write (72,100) 'nrestart',nrestart
  25. write (72,100) 'naccuout',naccuout
  26. write (72,100) 'mpstep',mpstep
  27. write (72,100) 'nwpd',nwpd
  28. write (72,100) 'kick',kick
  29. write (72,100) 'nafter',nafter
  30. write (72,100) 'ncoeff',ncoeff
  31. write (72,100) 'ndiag',ndiag
  32. write (72,100) 'ndebug',ndebug
  33. write (72,100) 'nexp',nexp
  34. write (72,100) 'nexper',nexper
  35. write (72,100) 'ngui',ngui
  36. write (72,100) 'npacksp',npacksp
  37. write (72,100) 'npackgp',npackgp
  38. write (72,100) 'ndiaggp',ndiaggp
  39. write (72,100) 'ndiagsp',ndiagsp
  40. write (72,100) 'ndiagcf',ndiagcf
  41. write (72,100) 'ndiaggp2d',ndiaggp2d
  42. write (72,100) 'ndiaggp3d',ndiaggp3d
  43. write (72,100) 'ndiagsp2d',ndiagsp2d
  44. write (72,100) 'ndiagsp3d',ndiagsp3d
  45. write (72,100) 'nhdiff',nhdiff
  46. write (72,100) 'ntime',ntime
  47. write (72,100) 'nperpetual',nperpetual
  48. write (72,100) 'n_sea_points',n_sea_points
  49. write (72,100) 'mars',mars
  50. 200 format(a16,e20.10)
  51. write (72,200) 'dawn',dawn
  52. write (72,200) 'delt',delt
  53. write (72,200) 'delt2',delt2
  54. write (72,200) 'dtep',dtep
  55. write (72,200) 'dtns',dtns
  56. write (72,200) 'dtrop',dtrop
  57. write (72,200) 'dttrp',dttrp
  58. write (72,200) 'tgr',tgr
  59. write (72,200) 'psurf',psurf
  60. write (72,200) 'time0',time0
  61. write (72,200) 'co2',co2
  62. write (72,200) 'umax',umax
  63. write (72,200) 't2mean',t2mean
  64. write (72,200) 'precip',precip
  65. write (72,200) 'evap',evap
  66. write (72,200) 'olr',olr
  67. write (72,200) 'akap',akap
  68. write (72,200) 'alr',alr
  69. write (72,200) 'ga',ga
  70. write (72,200) 'gascon',gascon
  71. write (72,200) 'plarad',plarad
  72. write (72,200) 'pnu',pnu
  73. write (72,200) 'siderial_day',siderial_day
  74. write (72,200) 'solar_day',solar_day
  75. write (72,200) 'ww',ww
  76. write (72,200) 'ra1',ra1
  77. write (72,200) 'ra2',ra2
  78. write (72,200) 'ra4',ra4
  79. write (72,200) 'acpd',acpd
  80. write (72,200) 'adv',adv
  81. write (72,200) 'cv',cv
  82. write (72,200) 'ct',ct
  83. write (72,200) 'pnu21',pnu21
  84. write (72,200) 'rdbrv',rdbrv
  85. close(72)
  86. end
  87. subroutine atm_dump_hor(ya,pa)
  88. use pumamod
  89. character (len=*) :: ya
  90. real :: pa(NHOR)
  91. write(72,'(/A)') trim(ya)
  92. do j = 1 , NHOR , 4
  93. write(72,'(i6,2x,4e18.10)') j,pa(j:j+3)
  94. enddo
  95. return
  96. end
  97. subroutine atm_dump_hor14(ya,pa)
  98. use pumamod
  99. character (len=*) :: ya
  100. real :: pa(NHOR,14)
  101. do mon = 1 , 14
  102. write(72,'(/I2,2X,A)') mon-1,trim(ya)
  103. do j = 1 , NHOR , 4
  104. write(72,'(i6,2x,4e18.10)') j,pa(j:j+3,mon)
  105. enddo
  106. enddo
  107. return
  108. end