subroutine aoicpl_prep(deltim,delt_cpl,phour,fhour,idate,
     &                  aoi_fld,global_lats_r,lonsperlar)
!
! Feb 2014 Xingren Wu - Collect Fields for Atm/Ocn/Ice coupling
! Apr 2014 Xingren Wu - Modified: Add SW fluxes for Nir/uv+vis
! Jun 2014 Xingren Wu - Modified: Revise Net SW heat fluxes
! Jul 2014 Xingren Wu - Modified: Add Sea/Land mask
!
      use resol_def,               ONLY: latr, lonr
      use layout1,                 ONLY: me, nodes, lats_node_r,
     &                                   nodes_comp
      use namelist_physics_def,    ONLY: ens_nam,ngrid_a2oi,
     &                                   sfcio_out
      use mpi_def,                 ONLY: mpi_comm_all, 
     &                                   mc_comp, mpi_comm_null
      use gfs_physics_aoi_var_mod, ONLY: AOI_Var_Data
      USE machine,                 ONLY: kind_evod
      implicit none
!!
      TYPE(AOI_Var_Data) :: aoi_fld

      integer              idate(4)
      real(kind=kind_evod) deltim,delt_cpl,phour,fhour

      INTEGER              GLOBAL_LATS_R(LATR),   lonsperlar(LATR)
!!
      integer      noa2oi
      integer      ierr
!!
!!
      integer   IOPROC
!!
!-------------------------------------------------------------------------
!     print *,' in aoicpl_prep me=',me
      call mpi_barrier(mpi_comm_all,ierr)
      if(nodes_comp < 1 .or. nodes_comp > nodes) then
        print *, '  NODES_COMP UNDEFINED, CANNOT DO I.O '
        call mpi_finalize()
         stop 333
      endif
!
      ioproc = nodes_comp-1
       
      call MPI_BARRIER(mpi_comm_all,ierr)
! 
!!   Data for Atm/Ocn/Ice coupling (average and instantaneous)
!      print *,'---- start aoi_fld collection section -----'
      if(mc_comp /= MPI_COMM_NULL) then
        if(sfcio_out) then
           call cplflx_collect(IOPROC,noa2oi,ngrid_a2oi,
     &                         deltim,delt_cpl,FHOUR,IDATE,
     &                         aoi_fld,global_lats_r,lonsperlar)
        endif
      endif                 ! comp node

      return
      end
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

      SUBROUTINE cplflx_collect(IOPROC,noa2oi,ngrid_a2oi,
     &                          deltim,delt_cpl,FHOUR,IDATE,
     &                          aoi_fld,global_lats_r,lonsperlar)
!!
!
      use resol_def,               ONLY: lonr, latr
      use layout1,                 ONLY: me, lats_node_r,lats_node_r_max
      use gfs_physics_aoi_var_mod, ONLY: AOI_Var_Data
      USE machine,             ONLY: kind_evod, kind_io8, kind_io4
      use namelist_physics_def,    ONLY: a2oi_out,fhout
      use module_CPLFIELDS,        ONLY: fillExportFields
      implicit none
!!
      TYPE(AOI_Var_Data)        :: aoi_fld
      INTEGER              GLOBAL_LATS_R(LATR)
      INTEGER              lonsperlar(LATR)
      integer   IOPROC
      real(kind=kind_io8) slmsk(LONR,LATS_NODE_R)
!!
      integer j,i,k,noa2oi,ngrid2d,ngrid_a2oi
       real (kind=kind_io8) rtimer,rtime,cpl_hr
       real (kind=kind_io8) fhour
       real (kind=kind_evod) deltim,delt_cpl
!
      INTEGER     IDATE(4)
      real (kind=kind_io8)   glolal(lonr,LATS_NODE_R)
      real (kind=kind_io8)   buffo(lonr,LATS_NODE_R)
      real (kind=kind_io8)   buffol(lonr,latr)
      real (kind=kind_io8)   data4iceocn(lonr,latr,41) ! this will merge with ngrid_a2oi and be deleted
      real (kind=kind_io8)   data2cpl(lonr,latr,ngrid_a2oi)
      logical     chk_cplflx
!..................................................................
      integer, dimension(lonr,lats_node_r_max) ::  kmsk, kmsk0
      integer iyr,imo,ida,ihr,ithr,ndig
      character*8 s
      character*40 a2oifname,cithr,cform

!
      if(me.eq.ioproc) print *,'begin cplflx_collect'
!
      IYR     = IDATE(4)
      IMO     = IDATE(2)
      IDA     = IDATE(3)
      IHR     = IDATE(1)
      ITHR    = NINT(FHOUR)
      NDIG    = MAX(log10(ITHR+0.5)+1.,2.)
!!
      kmsk0    = 0
!     delt_cpl=3600.*fhout
      RTIME  = deltim/delt_cpl     ! temporary - need change
!     write(0,*)' rtimer=',rtimer
!..........................................................
!
!     ngrid2d=1
!     MEAN Zonal compt of momentum flux (N/m**2)
!
      glolal  = aoi_fld%DUSFC*RTIME
      ngrid2d = 1
      CALL uninterpred(1,kmsk0,buffo,glolal,global_lats_r,lonsperlar)
      call unsplit2d_phys_r(ioproc,buffol,buffo,global_lats_r)
      data4iceocn(:,:,ngrid2d)=buffol(:,:)
!..........................................................
!
!     ngrid2d=2
!     MEAN Merid compt of momentum flux (N/m**2)
!
      glolal  = aoi_fld%DVSFC*RTIME
      ngrid2d = ngrid2d+1
      CALL uninterpred(1,kmsk0,buffo,glolal,global_lats_r,lonsperlar)
      call unsplit2d_phys_r(ioproc,buffol,buffo,global_lats_r)
      data4iceocn(:,:,ngrid2d)=buffol(:,:)
!..........................................................
!
!     ngrid2d=3
!     MEAN Sensible heat flux (W/m**2)
!
      glolal  = aoi_fld%DTSFC*RTIME
      ngrid2d = ngrid2d+1
      CALL uninterpred(1,kmsk0,buffo,glolal,global_lats_r,lonsperlar)
      call unsplit2d_phys_r(ioproc,buffol,buffo,global_lats_r)
      data4iceocn(:,:,ngrid2d)=buffol(:,:)
!..........................................................
!
!     ngrid2d=4
!     MEAN Latent heat flux (W/m**2)
!
      glolal  = aoi_fld%DQSFC*RTIME
      ngrid2d = ngrid2d+1
      CALL uninterpred(1,kmsk0,buffo,glolal,global_lats_r,lonsperlar)
      call unsplit2d_phys_r(ioproc,buffol,buffo,global_lats_r)
      data4iceocn(:,:,ngrid2d)=buffol(:,:)
!..........................................................
!
!     ngrid2d=5
!     MEAN Downward long wave radiation flux (W/m**2)
!
      glolal  = aoi_fld%DLWSFC*RTIME
      ngrid2d = ngrid2d+1
      CALL uninterpred(1,kmsk0,buffo,glolal,global_lats_r,lonsperlar)
      call unsplit2d_phys_r(ioproc,buffol,buffo,global_lats_r)
      data4iceocn(:,:,ngrid2d)=buffol(:,:)
!..........................................................
!
!     ngrid2d=6
!     MEAN Downward solar radiation flux (W/m**2)
!
      glolal  = aoi_fld%DSWSFC*RTIME
      ngrid2d = ngrid2d+1
      CALL uninterpred(1,kmsk0,buffo,glolal,global_lats_r,lonsperlar)
      call unsplit2d_phys_r(ioproc,buffol,buffo,global_lats_r)
      data4iceocn(:,:,ngrid2d)=buffol(:,:)
!..........................................................
!
!     ngrid2d=7
!     MEAN Precipitation rate (kg/m**2/s)
!
!     glolal = aoi_fld%GESHEM*1.E3*RTIME
      glolal = aoi_fld%rain*1.E3*RTIME/deltim
      ngrid2d = ngrid2d+1
      CALL uninterpred(1,kmsk0,buffo,glolal,global_lats_r,lonsperlar)
      call unsplit2d_phys_r(ioproc,buffol,buffo,global_lats_r)
      data4iceocn(:,:,ngrid2d)=buffol(:,:)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!..........................................................
!
!     ngrid2d=8
!     Instataneous Zonal compt of momentum flux (N/m**2)
!
      glolal  = aoi_fld%DUSFCI
      ngrid2d = ngrid2d+1
      CALL uninterpred(1,kmsk0,buffo,glolal,global_lats_r,lonsperlar)
      call unsplit2d_phys_r(ioproc,buffol,buffo,global_lats_r)
      data4iceocn(:,:,ngrid2d)=buffol(:,:)
!..........................................................
!
!     ngrid2d=9
!     Instataneous Merid compt of momentum flux (N/m**2)
!
      glolal  = aoi_fld%DVSFCI
      ngrid2d = ngrid2d+1
      CALL uninterpred(1,kmsk0,buffo,glolal,global_lats_r,lonsperlar)
      call unsplit2d_phys_r(ioproc,buffol,buffo,global_lats_r)
      data4iceocn(:,:,ngrid2d)=buffol(:,:)
!..........................................................
!
!     ngrid2d=10
!     Instataneous Sensible heat flux (W/m**2)
!
      glolal = aoi_fld%DTSFCI
      ngrid2d = ngrid2d+1
      CALL uninterpred(1,kmsk0,buffo,glolal,global_lats_r,lonsperlar)
      call unsplit2d_phys_r(ioproc,buffol,buffo,global_lats_r)
      data4iceocn(:,:,ngrid2d)=buffol(:,:)
!..........................................................
!
!     ngrid2d=11
!     Instataneous Latent heat flux (W/m**2)
!
      glolal = aoi_fld%DQSFCI
      ngrid2d = ngrid2d+1
      CALL uninterpred(1,kmsk0,buffo,glolal,global_lats_r,lonsperlar)
      call unsplit2d_phys_r(ioproc,buffol,buffo,global_lats_r)
      data4iceocn(:,:,ngrid2d)=buffol(:,:)
!..........................................................
!
!     ngrid2d=12
!     Instataneous Downward long wave radiation flux (W/m**2)
!
      glolal = aoi_fld%DLWSFCI
      ngrid2d = ngrid2d+1
      CALL uninterpred(1,kmsk0,buffo,glolal,global_lats_r,lonsperlar)
      call unsplit2d_phys_r(ioproc,buffol,buffo,global_lats_r)
      data4iceocn(:,:,ngrid2d)=buffol(:,:)
!..........................................................
!
!     ngrid2d=13
!     Instataneous Downward solar radiation flux (W/m**2)
!
      glolal = aoi_fld%DSWSFCI
      ngrid2d = ngrid2d+1
      CALL uninterpred(1,kmsk0,buffo,glolal,global_lats_r,lonsperlar)
      call unsplit2d_phys_r(ioproc,buffol,buffo,global_lats_r)
      data4iceocn(:,:,ngrid2d)=buffol(:,:)
!..........................................................
!
!     ngrid2d=14
!     Instataneous Temperature (K) 2 m above ground
!
      glolal = aoi_fld%t2mi
      ngrid2d = ngrid2d+1
      CALL uninterpred(1,kmsk0,buffo,glolal,global_lats_r,lonsperlar)
      call unsplit2d_phys_r(ioproc,buffol,buffo,global_lats_r)
      data4iceocn(:,:,ngrid2d)=buffol(:,:)
!..........................................................
!
!     ngrid2d=15
!     Instataneous Specific humidity (kg/kg) 2 m above ground
!
      glolal = aoi_fld%q2mi
      ngrid2d = ngrid2d+1
      CALL uninterpred(1,kmsk0,buffo,glolal,global_lats_r,lonsperlar)
      call unsplit2d_phys_r(ioproc,buffol,buffo,global_lats_r)
      data4iceocn(:,:,ngrid2d)=buffol(:,:)
!..........................................................
!
!     ngrid2d=16
!     Instataneous u wind (m/s) 10 m above ground
!
      glolal = aoi_fld%u10mi
      ngrid2d = ngrid2d+1
      CALL uninterpred(1,kmsk0,buffo,glolal,global_lats_r,lonsperlar)
      call unsplit2d_phys_r(ioproc,buffol,buffo,global_lats_r)
      data4iceocn(:,:,ngrid2d)=buffol(:,:)
!..........................................................
!
!     ngrid2d=17
!     Instataneous v wind (m/s) 10 m above ground
!
      glolal = aoi_fld%v10mi
      ngrid2d = ngrid2d+1
      CALL uninterpred(1,kmsk0,buffo,glolal,global_lats_r,lonsperlar)
      call unsplit2d_phys_r(ioproc,buffol,buffo,global_lats_r)
      data4iceocn(:,:,ngrid2d)=buffol(:,:)

!..........................................................
!
!     ngrid2d=18
!     Instataneous Temperature (K) at surface
!
      glolal  = aoi_fld%tseai
      ngrid2d = ngrid2d+1
      CALL uninterpred(1,kmsk0,buffo,glolal,global_lats_r,lonsperlar)
      call unsplit2d_phys_r(ioproc,buffol,buffo,global_lats_r)
      data4iceocn(:,:,ngrid2d)=buffol(:,:)
!..........................................................
!
!     ngrid2d=19
!     Instataneous Pressure (Pa) land and sea surface
!
      glolal  = aoi_fld%PSURFI
      ngrid2d = ngrid2d+1
      CALL uninterpred(1,kmsk0,buffo,glolal,global_lats_r,lonsperlar)
      call unsplit2d_phys_r(ioproc,buffol,buffo,global_lats_r)
      data4iceocn(:,:,ngrid2d)=buffol(:,:)
!..........................................................
!
!     ngrid2d=20
!     Instataneous Surface height (m)
!
      glolal = aoi_fld%oro
      ngrid2d = ngrid2d+1
      CALL uninterpred(1,kmsk0,buffo,glolal,global_lats_r,lonsperlar)
      call unsplit2d_phys_r(ioproc,buffol,buffo,global_lats_r)
      data4iceocn(:,:,ngrid2d)=buffol(:,:)
!..........................................................
!
!     ngrid2d=21
!     MEAN NET long wave radiation flux (W/m**2)
!
      glolal  = aoi_fld%NLWSFC*RTIME
      ngrid2d = ngrid2d+1
      CALL uninterpred(1,kmsk0,buffo,glolal,global_lats_r,lonsperlar)
      call unsplit2d_phys_r(ioproc,buffol,buffo,global_lats_r)
      data4iceocn(:,:,ngrid2d)=buffol(:,:)
!..........................................................
!
!     ngrid2d=22
!     MEAN NET solar radiation flux over the ocean (W/m**2)
!
      glolal  = aoi_fld%NSWSFC*RTIME
      ngrid2d = ngrid2d+1
      CALL uninterpred(1,kmsk0,buffo,glolal,global_lats_r,lonsperlar)
      call unsplit2d_phys_r(ioproc,buffol,buffo,global_lats_r)
      data4iceocn(:,:,ngrid2d)=buffol(:,:)
!..........................................................
!
!     ngrid2d=23
!     Instataneous NET long wave radiation flux (W/m**2)
!
      glolal = aoi_fld%NLWSFCI
      ngrid2d = ngrid2d+1
      CALL uninterpred(1,kmsk0,buffo,glolal,global_lats_r,lonsperlar)
      call unsplit2d_phys_r(ioproc,buffol,buffo,global_lats_r)
      data4iceocn(:,:,ngrid2d)=buffol(:,:)
!..........................................................
!
!     ngrid2d=24
!     Instataneous NET solar radiation flux over the ocean (W/m**2)
!
      glolal = aoi_fld%NSWSFCI
      ngrid2d = ngrid2d+1
      CALL uninterpred(1,kmsk0,buffo,glolal,global_lats_r,lonsperlar)
      call unsplit2d_phys_r(ioproc,buffol,buffo,global_lats_r)
      data4iceocn(:,:,ngrid2d)=buffol(:,:)
!..........................................................
!
!     ngrid2d=25
!     MEAN sfc downward nir direct flux (W/m**2)
!
      glolal = aoi_fld%dnirbm*rtime
      ngrid2d = ngrid2d+1
      CALL uninterpred(1,kmsk0,buffo,glolal,global_lats_r,lonsperlar)
      call unsplit2d_phys_r(ioproc,buffol,buffo,global_lats_r)
      data4iceocn(:,:,ngrid2d)=buffol(:,:)
!..........................................................
!
!     ngrid2d=26
!     MEAN sfc downward nir diffused flux (W/m**2)
!
      glolal = aoi_fld%dnirdf*rtime
      ngrid2d = ngrid2d+1
      CALL uninterpred(1,kmsk0,buffo,glolal,global_lats_r,lonsperlar)
      call unsplit2d_phys_r(ioproc,buffol,buffo,global_lats_r)
      data4iceocn(:,:,ngrid2d)=buffol(:,:)
!..........................................................
!
!     ngrid2d=27
!     MEAN sfc downward uv+vis direct flux (W/m**2)
!
      glolal = aoi_fld%dvisbm*rtime
      ngrid2d = ngrid2d+1
      CALL uninterpred(1,kmsk0,buffo,glolal,global_lats_r,lonsperlar)
      call unsplit2d_phys_r(ioproc,buffol,buffo,global_lats_r)
      data4iceocn(:,:,ngrid2d)=buffol(:,:)
!..........................................................
!
!     ngrid2d=28
!     MEAN sfc downward uv+vis diffused flux (W/m**2)
!
      glolal = aoi_fld%dvisdf*rtime
      ngrid2d = ngrid2d+1
      CALL uninterpred(1,kmsk0,buffo,glolal,global_lats_r,lonsperlar)
      call unsplit2d_phys_r(ioproc,buffol,buffo,global_lats_r)
      data4iceocn(:,:,ngrid2d)=buffol(:,:)
!..........................................................
!
!     ngrid2d=29
!     Instataneous sfc downward nir direct flux (W/m**2)
!
      glolal = aoi_fld%dnirbmi
      ngrid2d = ngrid2d+1
      CALL uninterpred(1,kmsk0,buffo,glolal,global_lats_r,lonsperlar)
      call unsplit2d_phys_r(ioproc,buffol,buffo,global_lats_r)
      data4iceocn(:,:,ngrid2d)=buffol(:,:)
!..........................................................
!
!     ngrid2d=30
!     Instataneous sfc downward nir diffused flux (W/m**2)
!
      glolal = aoi_fld%dnirdfi
      ngrid2d = ngrid2d+1
      CALL uninterpred(1,kmsk0,buffo,glolal,global_lats_r,lonsperlar)
      call unsplit2d_phys_r(ioproc,buffol,buffo,global_lats_r)
      data4iceocn(:,:,ngrid2d)=buffol(:,:)
!..........................................................
!
!     ngrid2d=31
!     Instataneous sfc downward uv+vis direct flux (W/m**2)
!
      glolal = aoi_fld%dvisbmi
      ngrid2d = ngrid2d+1
      CALL uninterpred(1,kmsk0,buffo,glolal,global_lats_r,lonsperlar)
      call unsplit2d_phys_r(ioproc,buffol,buffo,global_lats_r)
      data4iceocn(:,:,ngrid2d)=buffol(:,:)
!..........................................................
!
!     ngrid2d=32
!     Instataneous sfc downward uv+vis diffused flux (W/m**2)
!
      glolal = aoi_fld%dvisdfi
      ngrid2d = ngrid2d+1
      CALL uninterpred(1,kmsk0,buffo,glolal,global_lats_r,lonsperlar)
      call unsplit2d_phys_r(ioproc,buffol,buffo,global_lats_r)
      data4iceocn(:,:,ngrid2d)=buffol(:,:)
!..........................................................
!
!     ngrid2d=33
!     MEAN NET downward nir direct flux over the ocean (W/m**2)
!
      glolal = aoi_fld%nnirbm*rtime
      ngrid2d = ngrid2d+1
      CALL uninterpred(1,kmsk0,buffo,glolal,global_lats_r,lonsperlar)
      call unsplit2d_phys_r(ioproc,buffol,buffo,global_lats_r)
      data4iceocn(:,:,ngrid2d)=buffol(:,:)
!..........................................................
!
!     ngrid2d=34
!     MEAN NET downward nir diffused flux over the ocean (W/m**2)
!
      glolal = aoi_fld%nnirdf*rtime
      ngrid2d = ngrid2d+1
      CALL uninterpred(1,kmsk0,buffo,glolal,global_lats_r,lonsperlar)
      call unsplit2d_phys_r(ioproc,buffol,buffo,global_lats_r)
      data4iceocn(:,:,ngrid2d)=buffol(:,:)
!..........................................................
!
!     ngrid2d=35
!     MEAN NET downward uv+vis direct flux over the ocean (W/m**2)
!
      glolal = aoi_fld%nvisbm*rtime
      ngrid2d = ngrid2d+1
      CALL uninterpred(1,kmsk0,buffo,glolal,global_lats_r,lonsperlar)
      call unsplit2d_phys_r(ioproc,buffol,buffo,global_lats_r)
      data4iceocn(:,:,ngrid2d)=buffol(:,:)
!..........................................................
!
!     ngrid2d=36
!     MEAN NET downward uv+vis diffused flux over the ocean (W/m**2)
!
      glolal = aoi_fld%nvisdf*rtime
      ngrid2d = ngrid2d+1
      CALL uninterpred(1,kmsk0,buffo,glolal,global_lats_r,lonsperlar)
      call unsplit2d_phys_r(ioproc,buffol,buffo,global_lats_r)
      data4iceocn(:,:,ngrid2d)=buffol(:,:)
!..........................................................
!
!     ngrid2d=37
!     Instataneous NET downward nir direct flux over the ocean (W/m**2)
!
      glolal = aoi_fld%nnirbmi
      ngrid2d = ngrid2d+1
      CALL uninterpred(1,kmsk0,buffo,glolal,global_lats_r,lonsperlar)
      call unsplit2d_phys_r(ioproc,buffol,buffo,global_lats_r)
      data4iceocn(:,:,ngrid2d)=buffol(:,:)
!..........................................................
!
!     ngrid2d=38
!     Instataneous NET downward nir diffused flux over the ocean (W/m**2)
!
      glolal = aoi_fld%nnirdfi
      ngrid2d = ngrid2d+1
      CALL uninterpred(1,kmsk0,buffo,glolal,global_lats_r,lonsperlar)
      call unsplit2d_phys_r(ioproc,buffol,buffo,global_lats_r)
      data4iceocn(:,:,ngrid2d)=buffol(:,:)
!..........................................................
!
!     ngrid2d=39
!     Instataneous NET downward uv+vis direct flux over the ocean (W/m**2)
!
      glolal = aoi_fld%nvisbmi
      ngrid2d = ngrid2d+1
      CALL uninterpred(1,kmsk0,buffo,glolal,global_lats_r,lonsperlar)
      call unsplit2d_phys_r(ioproc,buffol,buffo,global_lats_r)
      data4iceocn(:,:,ngrid2d)=buffol(:,:)
!..........................................................
!
!     ngrid2d=40
!     Instataneous NET downward uv+vis diffused flux over the ocean (W/m**2)
!
      glolal = aoi_fld%nvisdfi
      ngrid2d = ngrid2d+1
      CALL uninterpred(1,kmsk0,buffo,glolal,global_lats_r,lonsperlar)
      call unsplit2d_phys_r(ioproc,buffol,buffo,global_lats_r)
      data4iceocn(:,:,ngrid2d)=buffol(:,:)
!..........................................................
!
!     ngrid2d=41
!     Land-Sea Mask
!
      glolal = aoi_fld%slimsk
      ngrid2d = ngrid2d+1
      kmsk = nint(glolal)
      CALL uninterpred(1,kmsk,slmsk,glolal,global_lats_r,lonsperlar)
      buffo = mod(slmsk,2._kind_io8)
      call unsplit2d_phys_r(ioproc,buffol,buffo,global_lats_r)
      data4iceocn(:,:,ngrid2d)=buffol(:,:)
!..........................................................
      if(me.eq.ioproc) then
         print *,'ioproc,ngrid2d,global_lats_r,rtimer',
     &            ioproc,ngrid2d,global_lats_r,rtimer
         if (a2oi_out) then
           write(s,'(i4,i2.2,i2.2)'),iyr,imo,ida
           write(cform,'("(i",i1,".",i1,")")') ndig,ndig
           write(cithr,cform) ithr
           a2oifname='A2OIf.'//trim(s)//'.'//trim(cithr)
           open(noa2oi,file=a2oifname,form='unformatted',
     &          status='unknown')
           do k=1,ngrid2d
              write(noa2oi) data4iceocn(:,:,k)
           enddo
           close(noa2oi)
           PRINT *,'chk_cplflx,FHOUR,DELTIM,DELT_CPL',
     &              FHOUR,DELTIM,DELT_CPL
        endif
      endif
!!
!..........................................................
! Fill the export Fields for ESMF/NUOPC style coupling
      if (ngrid2d .LT. ngrid_a2oi) then
         print *,
     & 'WARNING: fields required from coupler is more than available'
         stop
      endif
      do k=1,ngrid_a2oi
         data2cpl(:,:,k)=data4iceocn(:,:,k)
      enddo
      call fillExportFields(data2cpl, lonr, latr, rootPet=ioproc)
!     call fillExportFields(data4iceocn, lonr, latr, rootPet=ioproc)
!..........................................................
!!
      aoi_fld%dusfc    = 0.
      aoi_fld%dvsfc    = 0.
      aoi_fld%dtsfc    = 0.
      aoi_fld%dqsfc    = 0.
      aoi_fld%dlwsfc   = 0.
      aoi_fld%dswsfc   = 0.
      aoi_fld%dnirbm   = 0.
      aoi_fld%dnirdf   = 0.
      aoi_fld%dvisbm   = 0.
      aoi_fld%dvisdf   = 0.
      aoi_fld%nlwsfc   = 0.
      aoi_fld%nswsfc   = 0.
      aoi_fld%nnirbm   = 0.
      aoi_fld%nnirdf   = 0.
      aoi_fld%nvisbm   = 0.
      aoi_fld%nvisdf   = 0.
      aoi_fld%rain     = 0.

      if(me.eq.ioproc) PRINT *,'cplflx_collect completed'
      RETURN
      END