16 subroutine gfs_rad_time_vary_timestep_init (lrseeds, rseeds, &
17 lslwr, lsswr, isubc_lw, isubc_sw, icsdsw, icsdlw, cnx, cny, isc, jsc, &
18 imap, jmap, sec, kdt, imp_physics, imp_physics_zhao_carr, ipsd0, ipsdlim,&
19 ps_2delt, ps_1delt, t_2delt, t_1delt, qv_2delt, qv_1delt, t, qv, ps, &
24 use radcons,
only: qmin, con_100
29 logical,
intent(in) :: lrseeds
30 integer,
intent(in),
optional :: rseeds(:,:)
31 integer,
intent(in) :: isubc_lw, isubc_sw, cnx, cny, isc, jsc, kdt
32 integer,
intent(in) :: imp_physics, imp_physics_zhao_carr, ipsd0, ipsdlim
33 logical,
intent(in) :: lslwr, lsswr
34 integer,
intent(inout),
optional :: icsdsw(:), icsdlw(:)
35 integer,
intent(in) :: imap(:), jmap(:)
36 real(kind_phys),
intent(in) :: sec
37 real(kind_phys),
intent(inout),
optional :: ps_2delt(:)
38 real(kind_phys),
intent(inout),
optional :: ps_1delt(:)
39 real(kind_phys),
intent(inout),
optional :: t_2delt(:,:)
40 real(kind_phys),
intent(inout),
optional :: t_1delt(:,:)
41 real(kind_phys),
intent(inout),
optional :: qv_2delt(:,:)
42 real(kind_phys),
intent(inout),
optional:: qv_1delt(:,:)
43 real(kind_phys),
intent(in) :: t(:,:), qv(:,:), ps(:)
44 character(len=*),
intent(out) :: errmsg
45 integer,
intent(out) :: errflg
49 integer :: ix, j, i, ipseed
50 integer :: numrdm(cnx*cny*2)
56 if (lsswr .or. lslwr)
then
61 if ((isubc_lw==2) .or. (isubc_sw==2))
then
65 icsdsw(ix) = rseeds(ix,1)
66 icsdlw(ix) = rseeds(ix,2)
69 ipseed = mod(nint(con_100*sqrt(sec)), ipsdlim) + 1 + ipsd0
77 icsdsw(ix) = numrdm(i+isc-1 + (j+jsc-2)*cnx)
78 icsdlw(ix) = numrdm(i+isc-1 + (j+jsc-2)*cnx + cnx*cny)
83 if (imp_physics == imp_physics_zhao_carr)
then