72 nslwr, nhfrad, idate, debug, me, master, nscyc, sec, phour, zhour, fhour, &
73 kdt, julian, yearlen, ipt, lprnt, lssav, lsswr, lslwr, solhr, errmsg, errflg)
75 use machine,
only: kind_phys, kind_dbl_prec, kind_sngl_prec
79 integer,
intent(in) :: idate(:)
80 integer,
intent(in) :: jdat(:), idat(:)
81 integer,
intent(in) :: nsswr, nslwr, me, &
83 logical,
intent(in) :: debug
84 real(kind=kind_phys),
intent(in) :: dtp
86 integer,
intent(out) :: kdt, yearlen, ipt
87 logical,
intent(out) :: lprnt, lssav, lsswr, &
89 real(kind=kind_phys),
intent(out) :: sec, phour, zhour, &
92 character(len=*),
intent(out) :: errmsg
93 integer,
intent(out) :: errflg
95 real(kind=kind_phys),
parameter :: con_24 = 24.0_kind_phys
96 real(kind=kind_phys),
parameter :: con_hr = 3600.0_kind_phys
97 real(kind=kind_dbl_prec) :: rinc8(5)
108 if (.not.is_initialized)
then
109 write(errmsg,
'(*(a))')
"Logic error: GFS_time_vary_pre_timestep_init called before GFS_time_vary_pre_init"
117 call w3difdat(jdat,idat,4,rinc8)
122 fhour = (sec + dtp)/con_hr
123 kdt = nint((sec + dtp)/dtp)
138 jd1 = iw3jdn(jdat(1),jdat(2),jdat(3))
139 jd0 = iw3jdn(jdat(1),1,1)
140 fjd = float(jdat(5))/24.0 + float(jdat(6))/1440.0
142 julian = float(jd1-jd0) + fjd
151 if (mod(jdat(1),4) == 0)
then
153 if (mod(jdat(1),100) == 0)
then
155 if (mod(jdat(1),400) == 0)
then
166 lsswr = (mod(kdt, nsswr) == 1)
167 lslwr = (mod(kdt, nslwr) == 1)
169 if (nsswr == 1) lsswr = .true.
170 if (nslwr == 1) lslwr = .true.
173 if (kdt <= nhfrad)
then
179 solhr = mod(phour+idate(1),con_24)
181 if ((debug) .and. (me == master))
then
184 print *,
' nsswr ', nsswr
185 print *,
' nslwr ', nslwr
186 print *,
' nscyc ', nscyc
187 print *,
' lsswr ', lsswr
188 print *,
' lslwr ', lslwr
189 print *,
' fhour ', fhour
190 print *,
' phour ', phour
191 print *,
' solhr ', solhr
subroutine, public gfs_time_vary_pre_timestep_init(jdat, idat, dtp, nsswr, nslwr, nhfrad, idate, debug, me, master, nscyc, sec, phour, zhour, fhour, kdt, julian, yearlen, ipt, lprnt, lssav, lsswr, lslwr, solhr, errmsg, errflg)