@@ -484,12 +484,14 @@ SUBROUTINE init_domain_rk ( grid &
484484 grid%phb(i,k,j) = grid%phb(i,k-1 ,j) - grid%dnw(k-1 )* (grid%c1h(k-1 )* grid%mub(i,j)+ grid%c2h(k-1 ))* grid%alb(i,k-1 ,j)
485485 ENDDO
486486
487+ if ((i.eq. 1 ).and. (j.eq. 1 )) then
488+ write (6 ,* ) ' ptop is ' ,grid%p_top
489+ write (6 ,* ) ' base state grid%mub(1,1), p_surf is ' ,grid%mub(1 ,1 ),grid%mub(1 ,1 )+ grid%p_top
490+ endif
491+
487492 ENDDO
488493 ENDDO
489494
490- write (6 ,* ) ' ptop is ' ,grid%p_top
491- write (6 ,* ) ' base state grid%mub(1,1), p_surf is ' ,grid%mub(1 ,1 ),grid%mub(1 ,1 )+ grid%p_top
492-
493495! calculate full state for each column - this includes moisture.
494496
495497 write (6 ,* ) ' getting moist sounding for full state '
@@ -586,8 +588,8 @@ SUBROUTINE init_domain_rk ( grid &
586588 nref = 1 + int ( float(ide- ids+1 )/ 2.0 )
587589 kref = kte-1
588590
589- print * ,' ids,ide,kds,kds = ' ,ids,ide,kds,kde
590- print * ,' its,ite,kts,kts = ' ,its,ite,kts,kte
591+ print * ,' ids,ide,kds,kde = ' ,ids,ide,kds,kde
592+ print * ,' its,ite,kts,kte = ' ,its,ite,kts,kte
591593 print * ,' nref,fcor = ' ,nref,fcor
592594 print * ,' r0,rmax,vmax,zdd = ' ,r0,rmax,vmax,zdd
593595
@@ -607,22 +609,39 @@ SUBROUTINE init_domain_rk ( grid &
607609 allocate( qvref(nref,0 :kref+1 ))
608610
609611 ! get base state:
610- print * , ' zref,th0,qv0,thv0: '
612+ if ((its .eq. 1 ) .and. (jts .eq. 1 )) then
611613 do k= 1 ,kref
612- th0(k) = t0+ grid%t_1(1 ,k,1 )
613- qv0(k) = moist(1 ,k,1 ,P_QV)
614+ th0(k) = t0+ grid%t_1(its ,k,jts )
615+ qv0(k) = moist(its ,k,jts ,P_QV)
614616 thv0(k) = th0(k)* (1.0 + (r_v/ r_d)* qv0(k))/ (1.0 + qv0(k))
615- zref(k) = 0.5 * (grid%phb(1 ,k,1 )+ grid%phb(1 ,k+1 ,1 )+ grid%ph_1(1 ,k,1 )+ grid%ph_1(1 ,k+1 ,1 ))/ g
616- print * ,k,zref(k),th0(k),qv0(k),thv0(k)
617+ zref(k) = 0.5 * (grid%phb(its,k,jts)+ grid%phb(its,k+1 ,jts)+ grid%ph_1(its,k,jts)+ grid%ph_1(its,k+1 ,jts))/ g
617618 enddo
618-
619- print * ,' prs0,pi0,rh0:'
620619 do k= 1 ,kref
621- prs0(k) = grid%p(1 ,k,1 )+ grid%pb(1 ,k,1 )
620+ prs0(k) = grid%p(its ,k,jts )+ grid%pb(its ,k,jts )
622621 pi0(k) = (prs0(k)/ p0)** (r_d/ cp)
623622 E1= 1000.0 * SVP1* EXP (SVP2* (th0(k)* pi0(k)- SVPT0)/ (th0(k)* pi0(k)- SVP3))
624623 qvs = EP_2* E1/ (prs0(k)- E1)
625624 rh0(k) = qv0(k)/ qvs
625+ enddo
626+ endif
627+
628+ #ifdef DM_PARALLEL
629+ CALL wrf_dm_bcast_real( th0 , kref+2 )
630+ CALL wrf_dm_bcast_real( qv0 , kref+2 )
631+ CALL wrf_dm_bcast_real( thv0 , kref+2 )
632+ CALL wrf_dm_bcast_real( zref , kref+2 )
633+ CALL wrf_dm_bcast_real( prs0 , kref+2 )
634+ CALL wrf_dm_bcast_real( pi0 , kref+2 )
635+ CALL wrf_dm_bcast_real( rh0 , kref+2 )
636+ #endif
637+
638+ print * ,' zref,th0,qv0,thv0:'
639+ do k= 1 ,kref
640+ print * ,k,zref(k),th0(k),qv0(k),thv0(k)
641+ enddo
642+
643+ print * ,' prs0,pi0,rh0:'
644+ do k= 1 ,kref
626645 print * ,k,prs0(k),pi0(k),rh0(k)
627646 enddo
628647
@@ -1016,21 +1035,22 @@ SUBROUTINE init_domain_rk ( grid &
10161035 endif
10171036!#endif
10181037
1019- write (6 ,* ) ' grid%mu_1 from comp ' , grid%mu_1(1 , 1 )
1038+ write (6 ,* ) ' grid%mu_1 from comp ' , grid%mu_1(its,jts )
10201039 write (6 ,* ) ' full state sounding from comp, ph, grid%p, grid%al, grid%t_1, qv '
10211040 do k= 1 ,kde-1
1022- write (6 ,' (i3,1x,5(1x,1pe10.3))' ) k, grid%ph_1(1 ,k,1 )+ grid%phb(1 ,k,1 ), &
1023- grid%p(1 ,k,1 )+ grid%pb(1 ,k,1 ), grid%alt(1 ,k,1 ), &
1024- grid%t_1(1 ,k,1 )+ t0, moist(1 ,k,1 ,P_QV)
1041+ write (6 ,' (i3,1x,5(1x,1pe10.3))' ) k, grid%ph_1(its ,k,jts )+ grid%phb(its ,k,jts ), &
1042+ grid%p(its ,k,jts )+ grid%pb(its ,k,jts ), grid%alt(its ,k,jts ), &
1043+ grid%t_1(its ,k,jts )+ t0, moist(its ,k,jts ,P_QV)
10251044 enddo
10261045
10271046 write (6 ,* ) ' pert state sounding from comp, grid%ph_1, pp, alp, grid%t_1, qv '
10281047 do k= 1 ,kde-1
1029- write (6 ,' (i3,1x,5(1x,1pe10.3))' ) k, grid%ph_1(1 ,k,1 ), &
1030- grid%p(1 ,k,1 ), grid%al(1 ,k,1 ), &
1031- grid%t_1(1 ,k,1 ), moist(1 ,k,1 ,P_QV)
1048+ write (6 ,' (i3,1x,5(1x,1pe10.3))' ) k, grid%ph_1(its ,k,jts ), &
1049+ grid%p(its ,k,jts ), grid%al(its ,k,jts ), &
1050+ grid%t_1(its ,k,jts ), moist(its ,k,jts ,P_QV)
10321051 enddo
10331052
1053+
10341054!! interp v
10351055!
10361056! DO J = jts, jte
@@ -1100,13 +1120,22 @@ SUBROUTINE init_domain_rk ( grid &
11001120 ENDDO
11011121 ENDDO
11021122
1123+ if ((its.eq. 1 ).and. (jts.eq. 1 )) then
11031124 DO k= 1 ,kte-1
1104- grid%t_base(k) = grid%t_1(1 ,k,1 )
1105- grid%qv_base(k) = moist(1 ,k,1 ,P_QV)
1106- grid%u_base(k) = grid%u_1(1 ,k,1 )
1107- grid%v_base(k) = grid%v_1(1 ,k,1 )
1108- grid%z_base(k) = 0.5 * (grid%phb(1 ,k,1 )+ grid%phb(1 ,k+1 ,1 )+ grid%ph_1(1 ,k,1 )+ grid%ph_1(1 ,k+1 ,1 ))/ g
1125+ grid%t_base(k) = grid%t_1(its ,k,jts )
1126+ grid%qv_base(k) = moist(its ,k,jts ,P_QV)
1127+ grid%u_base(k) = grid%u_1(its ,k,jts )
1128+ grid%v_base(k) = grid%v_1(its ,k,jts )
1129+ grid%z_base(k) = 0.5 * (grid%phb(its ,k,jts )+ grid%phb(its ,k+1 ,jts )+ grid%ph_1(its ,k,jts )+ grid%ph_1(its ,k+1 ,jts ))/ g
11091130 ENDDO
1131+ endif
1132+ #ifdef DM_PARALLEL
1133+ CALL wrf_dm_bcast_real( grid%t_base , kte )
1134+ CALL wrf_dm_bcast_real( grid%qv_base , kte )
1135+ CALL wrf_dm_bcast_real( grid%u_base , kte )
1136+ CALL wrf_dm_bcast_real( grid%v_base , kte )
1137+ CALL wrf_dm_bcast_real( grid%z_base , kte )
1138+ #endif
11101139
11111140 DO J = jts, min (jde-1 ,jte)
11121141 DO I = its, min (ide-1 ,ite)
0 commit comments