<p><b>fanglin.yang@noaa.gov</b> 2012-08-11 22:32:08 -0600 (Sat, 11 Aug 2012)</p><p>update driver<br>
</p><hr noshade><pre><font color="gray">Modified: branches/atmos_physics_gfs/src/core_atmos_physics_gfs/dotstep.f
===================================================================
--- branches/atmos_physics_gfs/src/core_atmos_physics_gfs/dotstep.f        2012-08-09 17:30:35 UTC (rev 2097)
+++ branches/atmos_physics_gfs/src/core_atmos_physics_gfs/dotstep.f        2012-08-12 04:32:08 UTC (rev 2098)
@@ -120,9 +120,10 @@
         
         do j=1,lats_node_r
         do i=1,lonr
-         do k=1,levs+1
+         do k=1,levs
           mp_pi(i,k,j)= 0.001*air_mpas(1,i,k)  !convert pascal to centibar
          enddo
+          mp_pi(i,levp1,j)= 0.0                !top of the atmosphere        
          do k=1,levs
           mp_pl(i,k,j)= 0.001*air_mpas(2,i,k)
           mp_u(i,k,j)= air_mpas(3,i,k)
@@ -253,7 +254,7 @@
 !-----send atmospheric state variables back to driver 
         do j=1,lats_node_r
         do i=1,lonr
-         do k=1,levs+1
+         do k=1,levs
           air_mpas(1,i,k)=1000.0*mp_pi(i,k,j)
          enddo
          do k=1,levs

Modified: branches/atmos_physics_gfs/src/core_atmos_physics_gfs/driver_gfscolumn.f
===================================================================
--- branches/atmos_physics_gfs/src/core_atmos_physics_gfs/driver_gfscolumn.f        2012-08-09 17:30:35 UTC (rev 2097)
+++ branches/atmos_physics_gfs/src/core_atmos_physics_gfs/driver_gfscolumn.f        2012-08-12 04:32:08 UTC (rev 2098)
@@ -8,31 +8,16 @@
 
       use machine
       use Sfc_Flx_ESMFMod
-!-------------------------------------
-
       implicit none
 
-!--number of cells used for test
-      integer, parameter :: ncell=10          

+!----------------------------------------------------------
 !--gfs initial condition dimensions
       integer, parameter :: nlat=880, nlon=1760, levs=64    
       integer, parameter :: lsoil=4                            
-      integer, parameter :: nsfc=47, ntrace=3, nair=6+ntrace
+      integer, parameter :: nsfc=47, nsig=11                      
 
-      TYPE(Sfc_Var_Data)    :: sfc_mpas
-!--fields included in GFS analysis sfcanl. sfc2gg is used to 
-!--converts spectral coefficients to gaussian grid. 
-!  tsea   smc(4) sheleg stc(4) tg3    zorl   
-!  cv     cvb    cvt    alvsf  alvwf  alnsf  
-!  alnwf  slmsk  vfrac  canopy f10m   vtype  
-!  stype  facsf  facwf  uustar ffmm   ffhh   
-!  hice   fice   tprcp  srflag snwdph slc(4) 
-!  shdmin shdmax slope  snoalb oro    t2m    
-!  q2m    tisfc  
-
-!--fields included in GFS analysis siganl. ss2gg s used to 
-!--converts spectral coefficients to gaussian grid. 
+!--fields included in GFS analysis siganl. ss2gg iss used to 
+!--convert spectral coefficients to gaussian grid. 
 !  HS    1 99 surface orography (m)
 !  PS    1 99 surface pressure (Pa)
 !  P    64 99 pressure (Pa)
@@ -46,308 +31,219 @@
 !  VOR  64 99 vorticity (m/s**2)
 !  Q2   64 99 tracer 2, ozone (kg/kg)
 !  Q3   64 99 tracer 3, cloud water (kg/kg)
-      real(kind=kind_phys) :: hs(nlat,nlon)
-      real(kind=kind_phys) :: ps(nlat,nlon)
-      real(kind=kind_phys) :: p(nlat,nlon,levs)
-      real(kind=kind_phys) :: dp(nlat,nlon,levs)
-      real(kind=kind_phys) :: t(nlat,nlon,levs)
-      real(kind=kind_phys) :: q(nlat,nlon,levs)
-      real(kind=kind_phys) :: rh(nlat,nlon,levs)
-      real(kind=kind_phys) :: u(nlat,nlon,levs)
-      real(kind=kind_phys) :: v(nlat,nlon,levs)
-      real(kind=kind_phys) :: div(nlat,nlon,levs)
-      real(kind=kind_phys) :: vor(nlat,nlon,levs)
-      real(kind=kind_phys) :: q2(nlat,nlon,levs)
-      real(kind=kind_phys) :: q3(nlat,nlon,levs)
+      real(kind=kind_phys) :: hs(nlon,nlat)
+      real(kind=kind_phys) :: ps(nlon,nlat)
+      real(kind=kind_phys) :: sigini(nlon,nlat,levs,nsig)
 
-      integer(kind=kind_io4)  :: kdt,ncell,nodes,node0,nlunit
-      integer(kind=kind_io4)  :: idate(4)
-      character(len=80)       :: gfs_namelist
+!--fields included in GFS analysis sfcanl. sfc2gg is used to 
+!--convert spectral coefficients to gaussian grid. 
+!  tsea   smc(4) sheleg stc(4) tg3    zorl   
+!  cv     cvb    cvt    alvsf  alvwf  alnsf  
+!  alnwf  slmsk  vfrac  canopy f10m   vtype  
+!  stype  facsf  facwf  uustar ffmm   ffhh   
+!  hice   fice   tprcp  srflag snwdph slc(4) 
+!  shdmin shdmax slope  snoalb oro    t2m    
+!  q2m    tisfc  
+      real(kind=kind_phys) :: sfcini(nlon,nlat,nsfc)
+!
+      real(kind=kind_phys) :: latgfs(nlat),longfs(nlon)
+!-------------------------------------------------------------
 
-      real(kind=kind_phys) :: dt,fhour
-      real(kind=kind_phys) :: xlat(ncell)
-      real(kind=kind_phys) :: xlon(ncell)
-      integer ierr
-!****************************************************************************
+!--column model parameters and arrays
 
+      integer, parameter :: ncell=10, nair=9          
+      TYPE(Sfc_Var_Data)    :: sfc_mpas
+      real(kind=kind_phys)  :: air_mpas(nair,ncell,levs)
 
-!! define and allocate space for sfc_map, only 1 latitude
-       call sfcvar_aldata(ncell,1,lsoil,sfc_mpas,ierr)
+      integer(kind=kind_io4)  :: kdt,nodes,node0,nlunit
+      integer(kind=kind_io4)  :: idate(4)
+      character(len=80)       :: gfs_namelist
 
+      real(kind=kind_phys) :: dt, fhour, fhend
+      real(kind=kind_phys) :: xlat(ncell)    !in radian
+      real(kind=kind_phys) :: xlon(ncell)    !in radian
 
+      real(kind=kind_phys) :: pi                                 
+      integer :: i,j,k,m,n, ierr, nkdt
+!****************************************************************************
+      pi=4.0*atan(1.0)
 
 
+!-------------------------------------------
+!! read in air and surface initial conditions
+       open(11,file=&quot;sig_ini&quot;,form=&quot;unformatted&quot;,status=&quot;unknown&quot;)
+       open(12,file=&quot;sfc_ini&quot;,form=&quot;unformatted&quot;,status=&quot;unknown&quot;)
 
+      read(11) (( hs(i,j),i=1,nlon),j=1,nlat)
+      read(11) (( ps(i,j),i=1,nlon),j=1,nlat)
+      do n=1,nsig
+      do k=1,levs
+       read(11) (( sigini(i,j,k,n),i=1,nlon),j=1,nlat)
+      enddo
+      enddo
+      do n=1,nsfc
+       read(12) (( sfcini(i,j,n),i=1,nlon),j=1,nlat)
+      enddo
 
-
-
-
-!--at initial time to allocate GFS-related model arrays, 
-!--to read in GFS namelist file and set up running parameters, 
-!--and to read in most static boundary conditions.
-      if(ifirst &gt; 0) then
-
-!--GFS initial condition date, 1-hour,2-month,3-day,4-year
-       do j=1,4
-        idate(j)=idate(j)
+!!  T574 GFS latidue and longitude grids 
+       open(13,file=&quot;nlat_points_T574GFS.txt&quot;,
+     &amp;         form=&quot;formatted&quot;,status=&quot;unknown&quot;)
+       read(13,'(4f12.6)') (latgfs(j),j=nlat,1,-1)
+       do i=1,nlon
+        longfs(i)=360.0/nlon*(i-1)
        enddo
-       lats_node_r=1             !for MPAS use 1-D block for each task
 
-       call GFS_Initialize(node0,fhour,levs,ncell,
-     &amp;   xlon,xlat,lats_node_r,dt,nlunit,
-     &amp;   gfs_namelist)
+!---------------------------------------------
+!! pick selected points from GFS global initial 
+!! conditions and pass them  to the column model
 
-       if(levs.ne.levs .or. lonr.ne.ncell) then
-        print*, &quot;levs.ne.levs or lonr.ne.ncell, quit&quot;
-        call abort
-       endif
+!-- define and allocate space for sfc_map for column model 
+       call sfcvar_aldata(ncell,1,lsoil,sfc_mpas,ierr)
 
-         nodes=nodes                
-         me=node0                  
-         do j=1,latr
-         do i=1,lonr
-          sinlat_r2(i,j)=sin(xlat(i)) 
-          coslat_r2(i,j)=cos(xlat(i))  !xlat in radian
-         enddo
-         enddo
-       ifirst=0
-      endif
+       do n=1,ncell
+         i=nlon/ncell*(n-1)
+         j=5+nlat/ncell*(n-1)
 
-      kdt=kdt                     
-      fhour=fhour
-      phour=fhour
+         xlat(ncell)=latgfs(j)/pi
+         xlon(ncell)=longfs(i)/pi
 
-!-----exchange atmosphere state variables between MPAS and GFS
-        allocate ( mp_pi(lonr,levp1,lats_node_r) )
-        allocate ( mp_pl(lonr,levs,lats_node_r) )   
-        allocate ( mp_u(lonr,levs,lats_node_r) )
-        allocate ( mp_v(lonr,levs,lats_node_r) )
-        allocate ( mp_w(lonr,levs,lats_node_r) )
-        allocate ( mp_t(lonr,levs,lats_node_r) )
-        allocate ( mp_q(lonr,levs,lats_node_r) )
-        allocate ( mp_tr(lonr,levs,ntrac-1,lats_node_r) )                                 
-        
-        do j=1,lats_node_r
-        do i=1,lonr
-         do k=1,levs+1
-          mp_pi(i,k,j)= air(1,i,k)
+!--upper air variables 
+         air_mpas(1,n,1)=ps(i,j)    !interface pressure in pasca
+         do k=2,levs
+          air_mpas(1,n,k)=air_mpas(1,n,k-1) - sigini(i,j,k-1,2)               
          enddo
          do k=1,levs
-          mp_pl(i,k,j)= air(2,i,k)
-          mp_u(i,k,j)= air(3,i,k)
-          mp_v(i,k,j)= air(4,i,k)
-          mp_w(i,k,j)= air(5,i,k)
-          mp_t(i,k,j)= air(6,i,k)
-          mp_q(i,k,j)= air(7,i,k)
-          do n=1,ntrac-1
-           nn=n+7
-           mp_tr(i,k,n,j)= air(nn,i,k)
-          enddo
+          air_mpas(2,n,k)=sigini(i,j,k,1)      !integer-layer pressure in pasca              
+          air_mpas(3,n,k)=sigini(i,j,k,6)      !integer-layer zonal wind in m/s            
+          air_mpas(4,n,k)=sigini(i,j,k,7)      !integer-layer meridional wind in m/s            
+          air_mpas(5,n,k)=0.0                  !integer-layer vertical velocity in pa/s          
+          air_mpas(6,n,k)=sigini(i,j,k,3)      !integer-layer temperature in K           
+          air_mpas(7,n,k)=sigini(i,j,k,4)      !integer-layer specific humidity in kg/kg 
+          air_mpas(8,n,k)=sigini(i,j,k,10)     !integer-layer ozone mixing ratio in kg/kg 
+          air_mpas(9,n,k)=sigini(i,j,k,11)     !integer-layer cloud water mixing ratio in kg/kg 
          enddo
-        enddo
-        enddo
 
-!-----exchange surface state variables between MPAS and GFS
-        do j=1,lats_node_r
-        do i=1,lonr
-          nn=1
-         sfc_fld%tsea  (i,j) = sfc(i,nn)
-         do k=1,lsoil
-          nn=nn+1
-          sfc_fld%smc (i,j,k) = sfc(i,nn)
+!--surface variables 
+         m=1
+          sfc_mpas%tsea   (n,1) = sfcini(i,j,1)
+         do k=1,lsoil 
+          m=m+1
+          sfc_mpas%smc    (n,k,1) = sfcini(i,j,m)
          enddo
-          nn=nn+1
-         sfc_fld%sheleg (i,j) = sfc(i,nn)
-         do k=1,lsoil
-          nn=nn+1
-          sfc_fld%stc (i,j,k) = sfc(i,nn)
+          m=m+1
+          sfc_mpas%sheleg (n,1) = sfcini(i,j,m)
+         do k=1,lsoil 
+          m=m+1
+          sfc_mpas%stc    (n,k,1) = sfcini(i,j,m)
          enddo
-          nn=nn+1
-         sfc_fld%tg3    (i,j) = sfc(i,nn)
-          nn=nn+1
-         sfc_fld%zorl   (i,j) = sfc(i,nn)
-          nn=nn+1
-         sfc_fld%cv     (i,j) = sfc(i,nn)
-          nn=nn+1
-         sfc_fld%cvb    (i,j) = sfc(i,nn)
-          nn=nn+1
-         sfc_fld%cvt    (i,j) = sfc(i,nn)
-          nn=nn+1
-         sfc_fld%alvsf  (i,j) = sfc(i,nn)
-          nn=nn+1
-         sfc_fld%alvwf  (i,j) = sfc(i,nn)
-          nn=nn+1
-         sfc_fld%alnsf  (i,j) = sfc(i,nn)
-          nn=nn+1
-         sfc_fld%alnwf  (i,j) = sfc(i,nn)
-          nn=nn+1
-         sfc_fld%slmsk  (i,j) = sfc(i,nn)
-          nn=nn+1
-         sfc_fld%vfrac  (i,j) = sfc(i,nn)
-          nn=nn+1
-         sfc_fld%canopy (i,j) = sfc(i,nn)
-          nn=nn+1
-         sfc_fld%f10m   (i,j) = sfc(i,nn)
-          nn=nn+1
-         sfc_fld%vtype  (i,j) = sfc(i,nn)
-          nn=nn+1
-         sfc_fld%stype  (i,j) = sfc(i,nn)
-          nn=nn+1
-         sfc_fld%facsf  (i,j) = sfc(i,nn)
-          nn=nn+1
-         sfc_fld%facwf  (i,j) = sfc(i,nn)
-          nn=nn+1
-         sfc_fld%uustar (i,j) = sfc(i,nn)
-          nn=nn+1
-         sfc_fld%ffmm   (i,j) = sfc(i,nn)
-          nn=nn+1
-         sfc_fld%ffhh   (i,j) = sfc(i,nn)
-          nn=nn+1
-         sfc_fld%hice   (i,j) = sfc(i,nn)
-          nn=nn+1
-         sfc_fld%fice   (i,j) = sfc(i,nn)
-          nn=nn+1
-         sfc_fld%tprcp  (i,j) = sfc(i,nn)
-          nn=nn+1
-         sfc_fld%srflag (i,j) = sfc(i,nn)
-          nn=nn+1
-         sfc_fld%snwdph (i,j) = sfc(i,nn)
-         do k=1,lsoil
-          nn=nn+1
-          sfc_fld%slc (i,j,k) = sfc(i,nn)
+         m=m+1
+          sfc_mpas%tg3    (n,1) = sfcini(i,j,m)
+         m=m+1
+          sfc_mpas%zorl   (n,1) = sfcini(i,j,m)
+         m=m+1
+          sfc_mpas%cv     (n,1) = sfcini(i,j,m)
+         m=m+1
+          sfc_mpas%cvb    (n,1) = sfcini(i,j,m)
+         m=m+1
+          sfc_mpas%cvt    (n,1) = sfcini(i,j,m)
+         m=m+1
+          sfc_mpas%alvsf  (n,1) = sfcini(i,j,m)
+         m=m+1
+          sfc_mpas%alvwf  (n,1) = sfcini(i,j,m)
+         m=m+1
+          sfc_mpas%alnsf  (n,1) = sfcini(i,j,m)
+         m=m+1
+          sfc_mpas%alnwf  (n,1) = sfcini(i,j,m)
+         m=m+1
+          sfc_mpas%slmsk  (n,1) = sfcini(i,j,m)
+         m=m+1
+          sfc_mpas%vfrac  (n,1) = sfcini(i,j,m)
+         m=m+1
+          sfc_mpas%canopy (n,1) = sfcini(i,j,m)
+         m=m+1
+          sfc_mpas%f10m   (n,1) = sfcini(i,j,m)
+         m=m+1
+          sfc_mpas%vtype  (n,1) = sfcini(i,j,m)
+         m=m+1
+          sfc_mpas%stype  (n,1) = sfcini(i,j,m)
+         m=m+1
+          sfc_mpas%facsf  (n,1) = sfcini(i,j,m)
+         m=m+1
+          sfc_mpas%facwf  (n,1) = sfcini(i,j,m)
+         m=m+1
+          sfc_mpas%uustar (n,1) = sfcini(i,j,m)
+         m=m+1
+          sfc_mpas%ffmm   (n,1) = sfcini(i,j,m)
+         m=m+1
+          sfc_mpas%ffhh   (n,1) = sfcini(i,j,m)
+         m=m+1
+          sfc_mpas%hice   (n,1) = sfcini(i,j,m)
+         m=m+1
+          sfc_mpas%fice   (n,1) = sfcini(i,j,m)
+         m=m+1
+          sfc_mpas%tprcp  (n,1) = sfcini(i,j,m)
+         m=m+1
+          sfc_mpas%srflag (n,1) = sfcini(i,j,m)
+         m=m+1
+          sfc_mpas%snwdph (n,1) = sfcini(i,j,m)
+         do k=1,lsoil 
+         m=m+1
+          sfc_mpas%slc    (n,k,1) = sfcini(i,j,m)
          enddo
-          nn=nn+1
-         sfc_fld%shdmin (i,j) = sfc(i,nn)
-          nn=nn+1
-         sfc_fld%shdmax (i,j) = sfc(i,nn)
-          nn=nn+1
-         sfc_fld%slope  (i,j) = sfc(i,nn)
-          nn=nn+1
-         sfc_fld%snoalb (i,j) = sfc(i,nn)
-          nn=nn+1
-         sfc_fld%oro    (i,j) = sfc(i,nn)
-          nn=nn+1
-         sfc_fld%t2m    (i,j) = sfc(i,nn)
-          nn=nn+1
-         sfc_fld%q2m    (i,j) = sfc(i,nn)
-          nn=nn+1
-         sfc_fld%tisfc  (i,j) = sfc(i,nn)
-        enddo
-        enddo
-        if (nn.ne.nsfc) then
-          print*, &quot;GFS and MPAS surface vraibles do not match, quit&quot;
-          call abort
-        endif
+         m=m+1
+          sfc_mpas%shdmin (n,1) = sfcini(i,j,m)
+         m=m+1
+          sfc_mpas%shdmax (n,1) = sfcini(i,j,m)
+         m=m+1
+          sfc_mpas%slope  (n,1) = sfcini(i,j,m)
+         m=m+1
+          sfc_mpas%snoalb (n,1) = sfcini(i,j,m)
+         m=m+1
+          sfc_mpas%oro    (n,1) = sfcini(i,j,m)
+         m=m+1
+          sfc_mpas%t2m    (n,1) = sfcini(i,j,m)
+         m=m+1
+          sfc_mpas%q2m    (n,1) = sfcini(i,j,m)
+         m=m+1
+          sfc_mpas%tisfc  (n,1) = sfcini(i,j,m)
 
-!------------------------------------------------------------
+         print*, &quot;m=&quot;,m, &quot; nsfc=&quot;,nsfc
+         if(m.ne.nsfc) then
+           print*, &quot;m != nsfc, exit &quot;
+           call abort
+         endif
 
-!!        if(.not. adiab) then
-!!          if (nscyc &gt; 0 .and. mod(kdt,nscyc) == 1) then
-!!           CALL gcycle(me,LATS_NODE_R,LONSPERLAR,global_lats_r,
-!!   &amp;                  ipt_lats_node_r,idate,fhour,fhcyc,
-!!   &amp;                  XLON ,XLAT  , sfc_fld, ialb)
-!!          endif
-!
-!!          if (num_p3d  == 3) then  ! Ferrier Microphysics initialization
-!!            call init_micro(deltim,lonr,levs,num_p3d,lats_node_r,
-!!   &amp;                        phy_f3d(1,1,1,1),   fhour, me)
-!!          endif
-!!        endif
-!
+        enddo
+!---------------------------------------------

+!---------------------------------------------
+!---------------------------------------------
+!! call column model, integration over time
 
-          if (nst_fcst &gt; 1) then                         ! update TSEA
-            if (Coupler_id &lt; 0 .or. .not. mom4ice) then  ! Standalone mode
-              do j = 1, lats_node_r
-                do i = 1, lonr
-                  if (sfc_fld%slmsk(i,j) == 0 ) then
-                    dt_warm = (nst_fld%xt(i,j)+nst_fld%xt(i,j))
-     &amp;                      /  nst_fld%xz(i,j)
-                    sfc_fld%TSEA(i,j) = nst_fld%tref(i,j)
-     &amp;                                + dt_warm - nst_fld%dt_cool(i,j)
-     &amp;                                - sfc_fld%oro(i,j)*rlapse
-                  endif
-                enddo
-              enddo
-            else                                         ! Coupled to MOM4 OM
-              tem1 = 0.5 / omz1
-              do j = 1, lats_node_r
-                do i = 1, lonr
-                  if (sfc_fld%slmsk(i,j) == 0 ) then
-                    tem2 = 1.0 / nst_fld%xz(i,j)
-                    sfc_fld%tsea(i,j) = sfc_fld%tsea(i,j)
-     &amp;                                + sfc_fld%oro(i,j)*rlapse
-                    dt_warm = (nst_fld%xt(i,j)+nst_fld%xt(i,j)) * tem2
+!--GFS initial condition date, 1-hour,2-month,3-day,4-year
+        idate(1)=00              
+        idate(2)=05              
+        idate(3)=08              
+        idate(4)=2012            
 
-                    if ( nst_fld%xz(i,j) &gt; omz1) then
-                      nst_fld%tref(i,j) = sfc_fld%tsea(i,j)
-     &amp;                 - (1.0-0.5*omz1*tem2) * dt_warm
-     &amp;                 + nst_fld%z_c(i,j)*nst_fld%dt_cool(i,j)*tem1
-                    else
-                     nst_fld%tref(i,j) = sfc_fld%tsea(i,j)
-     &amp;                 - (nst_fld%xz(i,j)*dt_warm
-     &amp;                 -  nst_fld%z_c(i,j)*nst_fld%dt_cool(i,j))*tem1
-                    endif
-                    sfc_fld%TSEA(i,j) = nst_fld%tref(i,j)
-     &amp;                                + dt_warm - nst_fld%dt_cool(i,j)
-     &amp;                                - sfc_fld%oro(i,j)*rlapse
-                  endif
-                enddo
-              enddo
-            endif
-          endif
+       dt=120                   !time step in seconds
+       fhend=6                  !total forecast hours
+       nkdt=fhend*3600/dt
+       nodes=1
+       node0=1
+       nlunit=99                !unit for reading gfs_namelis
+       gfs_namelist=&quot;gfs_namelist_T574L64_Q2FY12&quot;

+       do 100 kdt=1,nkdt
+        fhour=(kdt-1)*dt/3600.0
 
-          if (lsswr .or. lslwr) then         ! Radiation Call!
-            if(.not. adiab) then
-             call gloopr
-!---input
-     &amp;       (phour,kdt,lonsperlar,global_lats_r,xlon,xlat,
-     &amp;        sfc_fld%slmsk,sfc_fld%sheleg, 
-     &amp;        sfc_fld%zorl, sfc_fld%tsea,
-     &amp;        sfc_fld%alvsf, sfc_fld%alnsf, sfc_fld%alvwf, 
-     &amp;        sfc_fld%alnwf, sfc_fld%facsf, sfc_fld%facwf,
-     &amp;        sfc_fld%cv, sfc_fld%cvt, sfc_fld%cvb, sfc_fld%FICE, 
-     &amp;        sfc_fld%tisfc, sfc_fld%sncovr, sfc_fld%snoalb,
-     &amp;        hprime,phy_f3d,
-     &amp;        mp_pi,mp_pl,mp_t,mp_q,mp_w,mp_tr,
-!--in and out
-     &amp;        fluxr,
-!--output
-     &amp;        swh,hlw,
-     &amp;        coszdg, flx_fld%coszen, flx_fld%sfcnsw, 
-     &amp;        flx_fld%sfcdlw, flx_fld%tsflw,
-     &amp;        flx_fld%sfcdsw, sfalb, flx_fld%sfcemis,
-     &amp;        slag,sdec,cdec)
-           endif
-          endif  !sswr .or. lslwr
+       call do_tstep_gfs(sfc_mpas,air_mpas,dt,
+     &amp;     kdt,fhour,idate,levs,
+     &amp;     ncell,nair,xlat,
+     &amp;     xlon,nodes,node0,nlunit,
+     &amp;     gfs_namelist)
+ 100   continue 
 
 
-          if(.not. adiab) then
-            call gloopb
-     &amp;        (phour,kdt,deltim,lonsperlar,global_lats_r,
-     &amp;         lsout,fscav,xlon,xlat,
-     &amp;         sfc_fld, flx_fld, nst_fld, sfalb,
-     &amp;         swh,hlw,hprime,slag,sdec,cdec,
-     &amp;         ozplin,jindx1,jindx2,ddy,
-     &amp;         phy_f3d, phy_f2d, 
-     &amp;         mp_pi,mp_pl,mp_t,mp_q,mp_u,
-     &amp;         mp_v,mp_w,mp_tr)
-          endif 
 
-!
-      IF (mod(kdt,nszer) == 0 .and. lsout) THEN
-        call flx_init(flx_fld,ierr)
-        zhour = fhour
-        FLUXR = 0.
-!
-        if (ldiag3d .or. lggfs3d) then
-          call d3d_zero(ldiag3d,lggfs3d)
-          if (fhour &gt;= fhgoc3d) lggfs3d = .false.
-        endif
-      ENDIF
-!
-
-      deallocate (mp_pi,mp_pl,mp_t,mp_u,mp_v,mp_w)
-      deallocate (mp_q,mp_tr)                          
-
-      RETURN
       END

Added: branches/atmos_physics_gfs/src/core_atmos_physics_gfs/gfsfix/nlat_points_T574GFS.txt
===================================================================
--- branches/atmos_physics_gfs/src/core_atmos_physics_gfs/gfsfix/nlat_points_T574GFS.txt                                (rev 0)
+++ branches/atmos_physics_gfs/src/core_atmos_physics_gfs/gfsfix/nlat_points_T574GFS.txt        2012-08-12 04:32:08 UTC (rev 2098)
@@ -0,0 +1,176 @@
+  -90.000000  -89.795370  -89.590261  -89.385788  -89.180995
+  -88.976071  -88.771399  -88.566596  -88.361828  -88.156975
+  -87.952251  -87.747446  -87.542657  -87.337878  -87.133104
+  -86.928332  -86.723560  -86.518784  -86.314004  -86.109217
+  -85.904422  -85.699664  -85.494891  -85.290103  -85.085339
+  -84.880555  -84.675752  -84.471000  -84.266223  -84.061420
+  -83.856656  -83.651863  -83.447100  -83.242334  -83.037533
+  -82.832754  -82.627992  -82.423217  -82.218428  -82.013648
+  -81.808873  -81.604101  -81.399306  -81.194532  -80.989753
+  -80.784989  -80.580214  -80.375427  -80.170646  -79.965869
+  -79.761092  -79.556314  -79.351531  -79.146759  -78.941978
+  -78.737202  -78.532430  -78.327641  -78.122867  -77.918088
+  -77.713303  -77.508539  -77.303748  -77.098974  -76.894197
+  -76.689417  -76.484645  -76.279864  -76.075086  -75.870307
+  -75.665527  -75.460755  -75.255976  -75.051199  -74.846411
+  -74.641634  -74.436865  -74.232077  -74.027304  -73.822519
+  -73.617744  -73.412965  -73.208190  -73.003417  -72.798632
+  -72.593856  -72.389073  -72.184294  -71.979526  -71.774745
+  -71.569970  -71.365187  -71.160406  -70.955633  -70.750855
+  -70.546071  -70.341298  -70.136513  -69.931743  -69.726957
+  -69.522180  -69.317402  -69.112628  -68.907847  -68.703075
+  -68.498290  -68.293518  -68.088739  -67.883957  -67.679181
+  -67.474397  -67.269623  -67.064845  -66.860071  -66.655288
+  -66.450512  -66.245732  -66.040953  -65.836172  -65.631396
+  -65.426622  -65.221838  -65.017060  -64.812283  -64.607506
+  -64.402726  -64.197948  -63.993170  -63.788396  -63.583617
+  -63.378837  -63.174061  -62.969280  -62.764506  -62.559728
+  -62.354945  -62.150167  -61.945393  -61.740613  -61.535831
+  -61.331059  -61.126281  -60.921500  -60.716721  -60.511941
+  -60.307166  -60.102384  -59.897608  -59.692828  -59.488055
+  -59.283273  -59.078499  -58.873717  -58.668938  -58.464160
+  -58.259386  -58.054607  -57.849827  -57.645050  -57.440274
+  -57.235495  -57.030717  -56.825938  -56.621161  -56.416378
+  -56.211605  -56.006826  -55.802045  -55.597266  -55.392491
+  -55.187713  -54.982935  -54.778153  -54.573379  -54.368596
+  -54.163820  -53.959042  -53.754266  -53.549484  -53.344709
+  -53.139929  -52.935151  -52.730373  -52.525592  -52.320818
+  -52.116041  -51.911260  -51.706482  -51.501706  -51.296928
+  -51.092145  -50.887368  -50.682591  -50.477814  -50.273038
+  -50.068256  -49.863481  -49.658699  -49.453920  -49.249145
+  -49.044367  -48.839588  -48.634811  -48.430033  -48.225251
+  -48.020474  -47.815698  -47.610917  -47.406141  -47.201365
+  -46.996585  -46.791808  -46.587028  -46.382251  -46.177469
+  -45.972691  -45.767913  -45.563138  -45.358358  -45.153581
+  -44.948803  -44.744023  -44.539246  -44.334466  -44.129690
+  -43.924910  -43.720134  -43.515358  -43.310580  -43.105801
+  -42.901021  -42.696244  -42.491464  -42.286688  -42.081908
+  -41.877131  -41.672350  -41.467576  -41.262796  -41.058018
+  -40.853239  -40.648461  -40.443681  -40.238906  -40.034128
+  -39.829350  -39.624572  -39.419794  -39.215015  -39.010235
+  -38.805458  -38.600678  -38.395902  -38.191121  -37.986343
+  -37.781569  -37.576787  -37.372012  -37.167234  -36.962453
+  -36.757676  -36.552896  -36.348119  -36.143341  -35.938561
+  -35.733785  -35.529009  -35.324227  -35.119453  -34.914671
+  -34.709893  -34.505115  -34.300338  -34.095560  -33.890783
+  -33.686004  -33.481225  -33.276446  -33.071670  -32.866889
+  -32.662114  -32.457333  -32.252556  -32.047777  -31.843001
+  -31.638221  -31.433442  -31.228667  -31.023888  -30.819111
+  -30.614329  -30.409552  -30.204776  -29.999996  -29.795219
+  -29.590441  -29.385663  -29.180883  -28.976105  -28.771327
+  -28.566549  -28.361771  -28.156993  -27.952215  -27.747436
+  -27.542659  -27.337880  -27.133101  -26.928323  -26.723545
+  -26.518768  -26.313989  -26.109211  -25.904433  -25.699655
+  -25.494876  -25.290099  -25.085320  -24.880543  -24.675764
+  -24.470987  -24.266207  -24.061429  -23.856651  -23.651873
+  -23.447094  -23.242318  -23.037539  -22.832761  -22.627983
+  -22.423205  -22.218425  -22.013648  -21.808870  -21.604091
+  -21.399314  -21.194535  -20.989758  -20.784978  -20.580200
+  -20.375422  -20.170644  -19.965866  -19.761088  -19.556310
+  -19.351532  -19.146753  -18.941975  -18.737196  -18.532418
+  -18.327641  -18.122863  -17.918084  -17.713306  -17.508527
+  -17.303750  -17.098973  -16.894193  -16.689416  -16.484638
+  -16.279859  -16.075082  -15.870302  -15.665525  -15.460747
+  -15.255968  -15.051190  -14.846412  -14.641634  -14.436856
+  -14.232078  -14.027299  -13.822521  -13.617743  -13.412965
+  -13.208187  -13.003408  -12.798630  -12.593852  -12.389074
+  -12.184296  -11.979517  -11.774740  -11.569961  -11.365183
+  -11.160405  -10.955627  -10.750849  -10.546070  -10.341292
+  -10.136514   -9.931736   -9.726958   -9.522179   -9.317401
+   -9.112623   -8.907845   -8.703066   -8.498288   -8.293510
+   -8.088733   -7.883954   -7.679176   -7.474398   -7.269620
+   -7.064841   -6.860063   -6.655285   -6.450507   -6.245729
+   -6.040951   -5.836172   -5.631394   -5.426616   -5.221838
+   -5.017060   -4.812282   -4.607504   -4.402725   -4.197947
+   -3.993169   -3.788391   -3.583613   -3.378834   -3.174056
+   -2.969278   -2.764500   -2.559722   -2.354944   -2.150165
+   -1.945387   -1.740609   -1.535831   -1.331053   -1.126274
+   -0.921496   -0.716718   -0.511940   -0.307162   -0.102384
+    0.102384    0.307162    0.511940    0.716718    0.921496
+    1.126274    1.331053    1.535831    1.740609    1.945387
+    2.150165    2.354944    2.559722    2.764500    2.969278
+    3.174056    3.378834    3.583613    3.788391    3.993169
+    4.197947    4.402725    4.607504    4.812282    5.017060
+    5.221838    5.426616    5.631394    5.836172    6.040951
+    6.245729    6.450507    6.655285    6.860063    7.064841
+    7.269620    7.474398    7.679176    7.883954    8.088733
+    8.293510    8.498288    8.703066    8.907845    9.112623
+    9.317401    9.522179    9.726958    9.931736   10.136514
+   10.341292   10.546070   10.750849   10.955627   11.160405
+   11.365183   11.569961   11.774740   11.979517   12.184296
+   12.389074   12.593852   12.798630   13.003408   13.208187
+   13.412965   13.617743   13.822521   14.027299   14.232078
+   14.436856   14.641634   14.846412   15.051190   15.255968
+   15.460747   15.665525   15.870302   16.075082   16.279859
+   16.484638   16.689416   16.894193   17.098973   17.303750
+   17.508527   17.713306   17.918084   18.122863   18.327641
+   18.532418   18.737196   18.941975   19.146753   19.351532
+   19.556310   19.761088   19.965866   20.170644   20.375422
+   20.580200   20.784978   20.989758   21.194535   21.399314
+   21.604091   21.808870   22.013648   22.218425   22.423205
+   22.627983   22.832761   23.037539   23.242318   23.447094
+   23.651873   23.856651   24.061429   24.266207   24.470987
+   24.675764   24.880543   25.085320   25.290099   25.494876
+   25.699655   25.904433   26.109211   26.313989   26.518768
+   26.723545   26.928323   27.133101   27.337880   27.542659
+   27.747436   27.952215   28.156993   28.361771   28.566549
+   28.771327   28.976105   29.180883   29.385663   29.590441
+   29.795219   29.999996   30.204776   30.409552   30.614329
+   30.819111   31.023888   31.228667   31.433442   31.638221
+   31.843001   32.047777   32.252556   32.457333   32.662114
+   32.866889   33.071670   33.276446   33.481225   33.686004
+   33.890783   34.095560   34.300338   34.505115   34.709893
+   34.914671   35.119453   35.324227   35.529009   35.733785
+   35.938561   36.143341   36.348119   36.552896   36.757676
+   36.962453   37.167234   37.372012   37.576787   37.781569
+   37.986343   38.191121   38.395902   38.600678   38.805458
+   39.010235   39.215015   39.419794   39.624572   39.829350
+   40.034128   40.238906   40.443681   40.648461   40.853239
+   41.058018   41.262796   41.467576   41.672350   41.877131
+   42.081908   42.286688   42.491464   42.696244   42.901021
+   43.105801   43.310580   43.515358   43.720134   43.924910
+   44.129690   44.334466   44.539246   44.744023   44.948803
+   45.153581   45.358358   45.563138   45.767913   45.972691
+   46.177469   46.382251   46.587028   46.791808   46.996585
+   47.201365   47.406141   47.610917   47.815698   48.020474
+   48.225251   48.430033   48.634811   48.839588   49.044367
+   49.249145   49.453920   49.658699   49.863481   50.068256
+   50.273038   50.477814   50.682591   50.887368   51.092145
+   51.296928   51.501706   51.706482   51.911260   52.116041
+   52.320818   52.525592   52.730373   52.935151   53.139929
+   53.344709   53.549484   53.754266   53.959042   54.163820
+   54.368596   54.573379   54.778153   54.982935   55.187713
+   55.392491   55.597266   55.802045   56.006826   56.211605
+   56.416378   56.621161   56.825938   57.030717   57.235495
+   57.440274   57.645050   57.849827   58.054607   58.259386
+   58.464160   58.668938   58.873717   59.078499   59.283273
+   59.488055   59.692828   59.897608   60.102384   60.307166
+   60.511941   60.716721   60.921500   61.126281   61.331059
+   61.535831   61.740613   61.945393   62.150167   62.354945
+   62.559728   62.764506   62.969280   63.174061   63.378837
+   63.583617   63.788396   63.993170   64.197948   64.402726
+   64.607506   64.812283   65.017060   65.221838   65.426622
+   65.631396   65.836172   66.040953   66.245732   66.450512
+   66.655288   66.860071   67.064845   67.269623   67.474397
+   67.679181   67.883957   68.088739   68.293518   68.498290
+   68.703075   68.907847   69.112628   69.317402   69.522180
+   69.726957   69.931743   70.136513   70.341298   70.546071
+   70.750855   70.955633   71.160406   71.365187   71.569970
+   71.774745   71.979526   72.184294   72.389073   72.593856
+   72.798632   73.003417   73.208190   73.412965   73.617744
+   73.822519   74.027304   74.232077   74.436865   74.641634
+   74.846411   75.051199   75.255976   75.460755   75.665527
+   75.870307   76.075086   76.279864   76.484645   76.689417
+   76.894197   77.098974   77.303748   77.508539   77.713303
+   77.918088   78.122867   78.327641   78.532430   78.737202
+   78.941978   79.146759   79.351531   79.556314   79.761092
+   79.965869   80.170646   80.375427   80.580214   80.784989
+   80.989753   81.194532   81.399306   81.604101   81.808873
+   82.013648   82.218428   82.423217   82.627992   82.832754
+   83.037533   83.242334   83.447100   83.651863   83.856656
+   84.061420   84.266223   84.471000   84.675752   84.880555
+   85.085339   85.290103   85.494891   85.699664   85.904422
+   86.109217   86.314004   86.518784   86.723560   86.928332
+   87.133104   87.337878   87.542657   87.747446   87.952251
+   88.156975   88.361828   88.566596   88.771399   88.976071
+   89.180995   89.385788   89.590261   89.795370   90.000000

</font>
</pre>