<p><b>fanglin.yang@noaa.gov</b> 2012-10-22 22:36:40 -0600 (Mon, 22 Oct 2012)</p><p>update for Linux version<br>
</p><hr noshade><pre><font color="gray">Added: branches/atmos_physics_gfs/src/core_atmos_physics_gfs/core_atmos_physics_gfs/driver_gfscolumn.f_ccs
===================================================================
--- branches/atmos_physics_gfs/src/core_atmos_physics_gfs/core_atmos_physics_gfs/driver_gfscolumn.f_ccs         (rev 0)
+++ branches/atmos_physics_gfs/src/core_atmos_physics_gfs/core_atmos_physics_gfs/driver_gfscolumn.f_ccs        2012-10-23 04:36:40 UTC (rev 2258)
@@ -0,0 +1,513 @@
+!--This driver prepares atmospheric and surface initial conditions and
+! runs NCEP/GFS physics at selected points as single column models.
+! May 2012, Fanglin Yang
+!
+!===============================
+ PROGRAM driver_gfscolumn
+!===============================
+
+ use machine
+ use Sfc_Flx_ESMFMod
+ use Nst_Var_ESMFMod
+ implicit none
+ include 'mpif.h'
+
+!----------------------------------------------------------
+!--gfs initial condition dimensions
+! integer, parameter :: nlat=880, nlon=1760, levs=64 !T574
+! integer, parameter :: nlat=94, nlon=192, levs=64 !T62
+ integer, parameter :: levs=64
+ integer, parameter :: lsoil=4, nmtvr=14
+ integer, parameter :: nsfc=47, nsig=11
+
+!--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)
+! DP 64 99 delta pressure (Pa)
+! T 64 99 temperature (K)
+! Q 64 99 specific humidity (kg/kg)
+! RH 64 99 relative humidity (%)
+! U 64 99 zonal wind (m/s)
+! V 64 99 meridional wind (m/s)
+! DIV 64 99 divergence (m/s**2)
+! 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_io4), allocatable :: hs(:,:), ps(:,:)
+ real(kind=kind_io4), allocatable :: sigini(:,:,:,:)
+
+!--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_io4), allocatable :: sfcini(:,:,:)
+!
+!--mountain variance and orientation etc
+ real(kind=kind_io4), allocatable :: hprime0(:,:,:)
+!
+ real(kind=kind_phys),allocatable :: latgfs(:),longfs(:)
+!-------------------------------------------------------------
+
+!--column model parameters and arrays
+
+! integer, parameter :: ncell=10, nair=9
+ integer, parameter :: nair=9
+ TYPE(Sfc_Var_Data) :: sfc_mpas
+ TYPE(Flx_Var_Data) :: flx_mpas
+ TYPE(Nst_Var_Data) :: nst_mpas
+
+ 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), allocatable :: xlat(:) !in radian
+ real(kind=kind_phys), allocatable :: xlon(:) !in radian
+ real(kind=kind_phys), allocatable :: air_mpas(:,:,:)
+ real(kind=kind_io4), allocatable :: hprim_mpas(:,:)
+
+ real(kind=kind_phys) :: pi
+ integer :: i,j,k,m,n, ierr, nkdt,irec
+ logical :: lprnt
+ integer :: numtasks,taskid
+
+!-------------------------------------------------------------
+ integer :: iargc
+ external :: iargc
+ integer :: nargs ! number of command-line arguments
+ character*70 :: argument ! space for command-line argument
+ integer :: jcap, cdate, ncell ,nlat, nlon
+
+ nargs = iargc() ! iargc() - number of argument after .exe
+ if (nargs.lt.4) then
+ write(*,*)'usage : gfscolumn.exe jcap cdate, ncell, fhend'
+ call abort
+ endif
+ call getarg(1,argument); read(argument,*) jcap
+ call getarg(2,argument); read(argument,*) cdate
+ call getarg(3,argument); read(argument,*) ncell
+ call getarg(4,argument); read(argument,*) fhend !forecast hours
+
+ if (jcap.eq.574) then
+ nlon=1760; nlat=880
+ elseif (jcap.eq.382) then
+ nlon=1152; nlat=576
+ elseif (jcap.eq.126) then
+ nlon=384; nlat=190
+ elseif (jcap.eq.62) then
+ nlon=192; nlat=94
+ else
+ write(*,*) "JCAP is not valid. stop"
+ call abort
+ endif
+
+ allocate ( hs(nlon,nlat), ps(nlon,nlat) )
+ allocate ( sigini(nlon,nlat,levs,nsig) )
+ allocate ( sfcini(nlon,nlat,nsfc) )
+ allocate ( hprime0(nlon,nlat,nmtvr) )
+ allocate ( latgfs(nlat),longfs(nlon) )
+
+ allocate ( xlat(ncell), xlon(ncell) )
+ allocate ( air_mpas(nair,ncell,levs) )
+ allocate ( hprim_mpas(ncell,nmtvr) )
+
+
+!--GFS initial condition date, 1-hour,2-month,3-day,4-year
+ idate(4)=cdate/1000000
+ idate(2)=mod(cdate,1000000)/10000
+ idate(3)=mod(cdate,10000)/100
+ idate(1)=mod(cdate,100)
+ print*,"cdate: ",cdate
+ print*,"yyyy mm dd hh:",idate(4),idate(2),idate(3),idate(1)
+
+!-------------------------------------------------------------
+
+ call MPI_INIT( ierr )
+ call MPI_COMM_RANK( MPI_COMM_WORLD, taskid, ierr )
+ call MPI_COMM_SIZE( MPI_COMM_WORLD, numtasks, ierr )
+ print *, 'task ID= ',taskid, 'numtasks=',numtasks
+ if (taskid.eq.0) then
+
+ pi=4.0*atan(1.0)
+ lprnt=.false.
+
+!-------------------------------------------
+!! read in air and surface initial conditions
+ open(11,file="sig_ini",form="unformatted",status="unknown",
+ & access="direct",recl=nlat*nlon*4)
+ open(12,file="sfc_ini",form="unformatted",status="unknown")
+ print*, "open sig_ini and sfc_ini"
+
+ irec=1
+ read(11,rec=irec) (( hs(i,j),i=1,nlon),j=1,nlat)
+ irec=irec+1
+ read(11,rec=irec) (( ps(i,j),i=1,nlon),j=1,nlat)
+ do n=1,nsig
+ do k=1,levs
+ irec=irec+1
+ read(11,rec=irec) (( 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
+
+!--mountain variance etc
+ read(24) hprime0
+
+!! GFS latidue and longitude grids
+ open(13,file="nlat_points.txt",
+ & form="formatted",status="unknown")
+ read(13,'(5f12.6)') (latgfs(j),j=nlat,1,-1)
+ do i=1,nlon
+ longfs(i)=360.0/nlon*(i-1)
+ enddo
+
+! if(lprnt) print*, "latgfs= ",latgfs
+! if(lprnt) print*, "longfs= ",longfs
+!---------------------------------------------
+!! pick selected points from GFS global initial
+!! conditions and pass them to the column model
+
+!-- define and allocate space for sfc_mpas and flx_mpas for column model
+ call sfcvar_aldata(ncell,1,lsoil,sfc_mpas,ierr)
+ call flxvar_aldata(ncell,1,flx_mpas,ierr)
+ call flx_init(flx_mpas,ierr)
+
+!-- define and allocate space for nst_mpas for column model (not used)
+ call nstvar_aldata(ncell,1,nst_mpas,ierr)
+ call nst_init(nst_mpas,ierr)
+
+ do n=1,ncell
+ i=min(1.0*nlon,nlon/2+0.5*nlon/ncell*(n-1))
+ j=min(1.0*nlat,nlat/4+0.5*nlat/ncell*(n-1))
+
+ xlat(n)=latgfs(j)/180*pi
+ xlon(n)=longfs(i)/180*pi
+ print*, "lat,lon: ",latgfs(j),longfs(i)
+
+!--mountain variance etc
+ do k=1,nmtvr
+ hprim_mpas(n,k)=hprime0(i,j,k)
+ enddo
+
+!--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
+ 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
+
+ if(lprnt) then
+ print*, "n,i,j",n,i,j, " xlat,xlon ",xlat(ncell), xlon(ncell)
+ print*, "pi: ",(air_mpas(1,n,k),k=1,levs)
+ print*, "pl: ",(air_mpas(2,n,k),k=1,levs)
+ print*, air_mpas(3,n,1), air_mpas(4,n,1),
+ & air_mpas(5,n,1), air_mpas(6,n,1), air_mpas(7,n,1),
+ & air_mpas(8,n,1), air_mpas(9,n,1)
+ print*, "hprim: ",(hprim_mpas(n,k),k=1,nmtvr)
+ endif
+
+!--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
+ 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
+ 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
+ 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*, "m=",m, " nsfc=",nsfc
+ if(m.ne.nsfc) then
+ print*, "m != nsfc, exit "
+ call abort
+ endif
+
+ enddo
+!---------------------------------------------
+
+!---------------------------------------------
+!---------------------------------------------
+!! call column model, integration over time
+
+ dt=120 !time step in seconds
+ nkdt=fhend*3600/dt+1
+ nodes=1
+ node0=taskid
+ nlunit=99 !unit for reading gfs_namelis
+ gfs_namelist="gfs_namelist"
+
+ do 100 kdt=1,nkdt
+ fhour=(kdt-1)*dt/3600.0
+
+ print*
+ print*, "-------------------------------------"
+ print*, "kdt=",kdt, " dt=",dt, " fhour=",fhour
+ print*, "-------------------------------------"
+
+
+!--column model output
+ call column_wrt(nair,levs,ncell,air_mpas,sfc_mpas,flx_mpas)
+
+ call do_tstep_gfs(hprim_mpas,
+ & flx_mpas,nst_mpas,sfc_mpas,air_mpas,
+ & dt,kdt,fhour,idate,levs,
+ & ncell,nair,xlat,
+ & xlon,nodes,node0,nlunit,
+ & gfs_namelist)
+ 100 continue
+
+
+ endif
+ call MPI_FINALIZE(ierr)
+
+
+ deallocate ( hs,ps,sigini,sfcini,hprime0,latgfs,longfs )
+ deallocate ( xlat,xlon,air_mpas,hprim_mpas)
+ END
+
+
+!-----------------------------------------------------------------------
+!-----------------------------------------------------------------------
+!write column output in real*4 binary format
+ subroutine column_wrt(nair,levs,ncell,air_mpas,sfc_mpas,flx_mpas)
+
+ use machine, only : kind_phys
+ use Sfc_Flx_ESMFMod
+
+ IMPLICIT NONE
+ TYPE(Sfc_Var_Data) :: sfc_mpas
+ TYPE(Flx_Var_Data) :: flx_mpas
+
+ integer, parameter :: lsoil=4
+ integer :: i,j,k,ncell,nair,levs
+ real(kind=kind_phys) :: air_mpas(nair,ncell,levs)
+ real*4 :: buff4(ncell)
+ logical :: first
+ data first /.true./
+ save first
+
+ if(first) then
+ open(191,file="gfscolumn_air.bin",
+ & form="unformatted",status="unknown")
+ open(192,file="gfscolumn_sfc.bin",
+ & form="unformatted",status="unknown")
+ open(193,file="gfscolumn_flx.bin",
+ & form="unformatted",status="unknown")
+ first=.false.
+ endif
+
+!--upper air variables
+ do j=1,nair
+ do k=1,levs
+ buff4(:)=air_mpas(j,:,k); write(191) buff4
+ enddo
+ enddo
+
+
+!--surface variables
+ buff4(:)=sfc_mpas%tsea(:,1); write(192)buff4
+ do k=1,lsoil
+ buff4(:)=sfc_mpas%smc(:,k,1); write(192)buff4
+ enddo
+ buff4(:)=sfc_mpas%sheleg(:,1); write(192)buff4
+ do k=1,lsoil
+ buff4(:)=sfc_mpas%stc(:,k,1); write(192)buff4
+ enddo
+ buff4(:)=sfc_mpas%tg3(:,1); write(192)buff4
+ buff4(:)=sfc_mpas%zorl (:,1); write(192)buff4
+ buff4(:)=sfc_mpas%cv (:,1); write(192)buff4
+ buff4(:)=sfc_mpas%cvb (:,1); write(192)buff4
+ buff4(:)=sfc_mpas%cvt (:,1); write(192)buff4
+ buff4(:)=sfc_mpas%alvsf (:,1); write(192)buff4
+ buff4(:)=sfc_mpas%alvwf (:,1); write(192)buff4
+ buff4(:)=sfc_mpas%alnsf (:,1); write(192)buff4
+ buff4(:)=sfc_mpas%alnwf (:,1); write(192)buff4
+ buff4(:)=sfc_mpas%slmsk (:,1); write(192)buff4
+ buff4(:)=sfc_mpas%vfrac (:,1); write(192)buff4
+ buff4(:)=sfc_mpas%canopy (:,1); write(192)buff4
+ buff4(:)=sfc_mpas%f10m (:,1); write(192)buff4
+ buff4(:)=sfc_mpas%vtype (:,1); write(192)buff4
+ buff4(:)=sfc_mpas%stype (:,1); write(192)buff4
+ buff4(:)=sfc_mpas%facsf (:,1); write(192)buff4
+ buff4(:)=sfc_mpas%facwf (:,1); write(192)buff4
+ buff4(:)=sfc_mpas%uustar (:,1); write(192)buff4
+ buff4(:)=sfc_mpas%ffmm (:,1); write(192)buff4
+ buff4(:)=sfc_mpas%ffhh (:,1); write(192)buff4
+ buff4(:)=sfc_mpas%hice (:,1); write(192)buff4
+ buff4(:)=sfc_mpas%fice (:,1); write(192)buff4
+ buff4(:)=sfc_mpas%tprcp (:,1); write(192)buff4
+ buff4(:)=sfc_mpas%srflag (:,1); write(192)buff4
+ buff4(:)=sfc_mpas%snwdph (:,1); write(192)buff4
+ do k=1,lsoil
+ buff4(:)=sfc_mpas%slc(:,k,1); write(192)buff4
+ enddo
+ buff4(:)=sfc_mpas%shdmin (:,1); write(192)buff4
+ buff4(:)=sfc_mpas%shdmax (:,1); write(192)buff4
+ buff4(:)=sfc_mpas%slope (:,1); write(192)buff4
+ buff4(:)=sfc_mpas%snoalb (:,1); write(192)buff4
+ buff4(:)=sfc_mpas%oro (:,1); write(192)buff4
+ buff4(:)=sfc_mpas%t2m (:,1); write(192)buff4
+ buff4(:)=sfc_mpas%q2m (:,1); write(192)buff4
+ buff4(:)=sfc_mpas%tisfc (:,1); write(192)buff4
+
+
+!--flux variables
+ buff4(:)=flx_mpas%SFCDSW (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%COSZEN (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%PWAT (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%TMPMIN (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%TMPMAX (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%SPFHMIN (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%SPFHMAX (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%DUSFC (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%DVSFC (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%DTSFC (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%DQSFC (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%DLWSFC (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%ULWSFC (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%GFLUX (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%RUNOFF (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%EP (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%CLDWRK (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%DUGWD (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%DVGWD (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%PSMEAN (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%GESHEM (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%BENGSH (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%SFCNSW (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%SFCDLW (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%TSFLW (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%PSURF (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%U10M (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%V10M (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%HPBL (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%CHH (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%CMM (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%EPI (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%DLWSFCI (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%ULWSFCI (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%USWSFCI (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%DSWSFCI (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%DTSFCI (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%DQSFCI (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%GFLUXI (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%SRUNOFF (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%T1 (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%Q1 (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%U1 (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%V1 (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%ZLVL (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%EVBSA (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%EVCWA (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%TRANSA (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%SBSNOA (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%SNOWCA (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%SOILM (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%SNOHFA (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%SMCWLT2 (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%SMCREF2 (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%suntim (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%sfcemis (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%gsoil (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%gtmp2m (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%gustar (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%gpblh (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%gu10m (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%gv10m (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%gzorl (:,1) ;write(193)buff4
+ buff4(:)=flx_mpas%goro (:,1) ;write(193)buff4
+
+
+ end subroutine column_wrt
</font>
</pre>