      subroutine get_bulknetcdf_names(bvar)
      implicit none
      integer*4  LLm,Lm,MMm,Mm,N, LLm0,MMm0
      parameter (LLm0=41,   MMm0=42,   N=32)
      parameter (LLm=LLm0,  MMm=MMm0)
      integer*4 Lmmpi,Mmmpi,iminmpi,imaxmpi,jminmpi,jmaxmpi
      common /comm_setup_mpi1/ Lmmpi,Mmmpi
      common /comm_setup_mpi2/ iminmpi,imaxmpi,jminmpi,jmaxmpi
      integer*4 NSUB_X, NSUB_E, NPP
      integer*4 NP_XI, NP_ETA, NNODES
      parameter (NP_XI=2,  NP_ETA=2,  NNODES=NP_XI*NP_ETA)
      parameter (NPP=1)
      parameter (NSUB_X=1, NSUB_E=1)
      integer*4 NWEIGHT
      parameter (NWEIGHT=1000)
      integer*4 stdout, Np, padd_X,padd_E
      parameter (stdout=6)
      parameter (Np=N+1)
      parameter (Lm=(LLm+NP_XI-1)/NP_XI, Mm=(MMm+NP_ETA-1)/NP_ETA)
      parameter (padd_X=(Lm+2)/2-(Lm+1)/2)
      parameter (padd_E=(Mm+2)/2-(Mm+1)/2)
      integer*4 NSA, N2d,N3d, size_XI,size_ETA
      integer*4 se,sse, sz,ssz
      parameter (NSA=28)
      parameter (size_XI=7+(Lm+NSUB_X-1)/NSUB_X)
      parameter (size_ETA=7+(Mm+NSUB_E-1)/NSUB_E)
      parameter (sse=size_ETA/Np, ssz=Np/size_ETA)
      parameter (se=sse/(sse+ssz), sz=1-se)
      parameter (N2d=size_XI*(se*size_ETA+sz*Np))
      parameter (N3d=size_XI*size_ETA*Np)
      real Vtransform
      parameter (Vtransform=2)
      integer*4   NT, itemp
      integer*4   ntrc_salt, ntrc_pas, ntrc_bio, ntrc_sed
      parameter (itemp=1)
      parameter (ntrc_salt=1)
      parameter (ntrc_pas=0)
      parameter (ntrc_bio=0)
      parameter (ntrc_sed=0)
      parameter (NT=itemp+ntrc_salt+ntrc_pas+ntrc_bio+ntrc_sed)
      integer*4   ntrc_diats, ntrc_diauv, ntrc_diabio
      integer*4   ntrc_diavrt, ntrc_diaek, ntrc_diapv
      integer*4   ntrc_diaeddy, ntrc_surf
     &          , isalt
      parameter (isalt=itemp+1)
      parameter (ntrc_diabio=0)
      parameter (ntrc_diats=0)
      parameter (ntrc_diauv=0)
      parameter (ntrc_diavrt=0)
      parameter (ntrc_diaek=0)
      parameter (ntrc_diapv=0)
      parameter (ntrc_diaeddy=0)
      parameter (ntrc_surf=0)
      integer*4 nblkvrs
      parameter(nblkvrs=9)
      character*250 pathbulk, bulkfilename(nblkvrs),
     &              blk_vname(4, nblkvrs)
      real    dum_array(-1:Lm+2+padd_X,-1:Mm+2+padd_E,2,nblkvrs)
      integer*4 itbulkO(nblkvrs), bulk_varid(nblkvrs),
     &        ncidbulkO(nblkvrs)
      integer*4 bulkyearnum(nblkvrs), bulkmonthnum(nblkvrs),
     &        yearnum, monthnum, yearend, monthend,
     &        recordsperday
      integer*4 bulk_recO(nblkvrs), bulk_ncycleO(nblkvrs),
     &        bulk_tidO(nblkvrs), ntbulkO(nblkvrs)
      real    bulk_timeO(2,nblkvrs), bulk_cycleO(nblkvrs)
      logical newbulk(nblkvrs)
      integer*4 NX0(nblkvrs), NY0(nblkvrs)
      common /bulkonline_real/
     &        dum_array,
     &        bulk_timeO, bulk_cycleO
      common /bulkonline_integer/
     &        itbulkO, bulk_varid, ncidbulkO,
     &        bulkyearnum, bulkmonthnum, yearnum, monthnum,
     &        yearend, monthend, recordsperday,
     &        bulk_recO, bulk_ncycleO, bulk_tidO, ntbulkO,
     &        NX0, NY0
      common /bulkonline_character/
     &        pathbulk, bulkfilename, blk_vname
      common /bulkonline_logical/
     &        newbulk
      integer*4, intent(in) :: bvar
      character bulkyear*4, bulkmonth1*1, bulkmonth2*2
      integer*4 lenstr
      if(itbulkO(bvar).eq.0) then
        bulkyearnum(bvar)=yearnum
        bulkmonthnum(bvar)=monthnum
      endif
      write(unit=bulkyear,fmt='(I4)') bulkyearnum(bvar)
      if(bulkmonthnum(bvar).lt.10) then
        write(unit=bulkmonth1,fmt='(I1)') bulkmonthnum(bvar)
        bulkfilename(bvar)=pathbulk(1:lenstr(pathbulk))//
     &  blk_vname(1,bvar)(1:lenstr(blk_vname(1,bvar)))//
     &  '_Y'//bulkyear//'M'//bulkmonth1//'.nc'
      else
        write(unit=bulkmonth2,fmt='(I2)') bulkmonthnum(bvar)
        bulkfilename(bvar)=pathbulk(1:lenstr(pathbulk))//
     &  blk_vname(1,bvar)(1:lenstr(blk_vname(1,bvar)))//
     &  '_Y'//bulkyear//'M'//bulkmonth2//'.nc'
      endif
      return
      end
      subroutine get_bulkvar_names
      implicit none
      integer*4  LLm,Lm,MMm,Mm,N, LLm0,MMm0
      parameter (LLm0=41,   MMm0=42,   N=32)
      parameter (LLm=LLm0,  MMm=MMm0)
      integer*4 Lmmpi,Mmmpi,iminmpi,imaxmpi,jminmpi,jmaxmpi
      common /comm_setup_mpi1/ Lmmpi,Mmmpi
      common /comm_setup_mpi2/ iminmpi,imaxmpi,jminmpi,jmaxmpi
      integer*4 NSUB_X, NSUB_E, NPP
      integer*4 NP_XI, NP_ETA, NNODES
      parameter (NP_XI=2,  NP_ETA=2,  NNODES=NP_XI*NP_ETA)
      parameter (NPP=1)
      parameter (NSUB_X=1, NSUB_E=1)
      integer*4 NWEIGHT
      parameter (NWEIGHT=1000)
      integer*4 stdout, Np, padd_X,padd_E
      parameter (stdout=6)
      parameter (Np=N+1)
      parameter (Lm=(LLm+NP_XI-1)/NP_XI, Mm=(MMm+NP_ETA-1)/NP_ETA)
      parameter (padd_X=(Lm+2)/2-(Lm+1)/2)
      parameter (padd_E=(Mm+2)/2-(Mm+1)/2)
      integer*4 NSA, N2d,N3d, size_XI,size_ETA
      integer*4 se,sse, sz,ssz
      parameter (NSA=28)
      parameter (size_XI=7+(Lm+NSUB_X-1)/NSUB_X)
      parameter (size_ETA=7+(Mm+NSUB_E-1)/NSUB_E)
      parameter (sse=size_ETA/Np, ssz=Np/size_ETA)
      parameter (se=sse/(sse+ssz), sz=1-se)
      parameter (N2d=size_XI*(se*size_ETA+sz*Np))
      parameter (N3d=size_XI*size_ETA*Np)
      real Vtransform
      parameter (Vtransform=2)
      integer*4   NT, itemp
      integer*4   ntrc_salt, ntrc_pas, ntrc_bio, ntrc_sed
      parameter (itemp=1)
      parameter (ntrc_salt=1)
      parameter (ntrc_pas=0)
      parameter (ntrc_bio=0)
      parameter (ntrc_sed=0)
      parameter (NT=itemp+ntrc_salt+ntrc_pas+ntrc_bio+ntrc_sed)
      integer*4   ntrc_diats, ntrc_diauv, ntrc_diabio
      integer*4   ntrc_diavrt, ntrc_diaek, ntrc_diapv
      integer*4   ntrc_diaeddy, ntrc_surf
     &          , isalt
      parameter (isalt=itemp+1)
      parameter (ntrc_diabio=0)
      parameter (ntrc_diats=0)
      parameter (ntrc_diauv=0)
      parameter (ntrc_diavrt=0)
      parameter (ntrc_diaek=0)
      parameter (ntrc_diapv=0)
      parameter (ntrc_diaeddy=0)
      parameter (ntrc_surf=0)
      integer*4 nblkvrs
      parameter(nblkvrs=9)
      character*250 pathbulk, bulkfilename(nblkvrs),
     &              blk_vname(4, nblkvrs)
      real    dum_array(-1:Lm+2+padd_X,-1:Mm+2+padd_E,2,nblkvrs)
      integer*4 itbulkO(nblkvrs), bulk_varid(nblkvrs),
     &        ncidbulkO(nblkvrs)
      integer*4 bulkyearnum(nblkvrs), bulkmonthnum(nblkvrs),
     &        yearnum, monthnum, yearend, monthend,
     &        recordsperday
      integer*4 bulk_recO(nblkvrs), bulk_ncycleO(nblkvrs),
     &        bulk_tidO(nblkvrs), ntbulkO(nblkvrs)
      real    bulk_timeO(2,nblkvrs), bulk_cycleO(nblkvrs)
      logical newbulk(nblkvrs)
      integer*4 NX0(nblkvrs), NY0(nblkvrs)
      common /bulkonline_real/
     &        dum_array,
     &        bulk_timeO, bulk_cycleO
      common /bulkonline_integer/
     &        itbulkO, bulk_varid, ncidbulkO,
     &        bulkyearnum, bulkmonthnum, yearnum, monthnum,
     &        yearend, monthend, recordsperday,
     &        bulk_recO, bulk_ncycleO, bulk_tidO, ntbulkO,
     &        NX0, NY0
      common /bulkonline_character/
     &        pathbulk, bulkfilename, blk_vname
      common /bulkonline_logical/
     &        newbulk
      blk_vname(1,1)='Temperature_height_above_ground          '
      blk_vname(2,1)='??????                                   '
      blk_vname(3,1)='??????                                   '
      blk_vname(4,1)='??????                                   '
      blk_vname(1,2)='Specific_humidity                        '
      blk_vname(2,2)='Specific Humidity at surface             '
      blk_vname(3,2)='Kg/Kg                                    '
      blk_vname(4,2)='??????                                   '
      blk_vname(1,3)='Precipitation_rate                       '
      blk_vname(2,3)='??????                                   '
      blk_vname(3,3)='kg/m^2/s                                 '
      blk_vname(4,3)='??????                                   '
      blk_vname(1,4)='Downward_Short-Wave_Rad_Flux_surface     '
      blk_vname(2,4)='??????                                   '
      blk_vname(3,4)='W/m^2                                    '
      blk_vname(4,4)='??????                                   '
      blk_vname(1,5)='Upward_Short-Wave_Rad_Flux_surface       '
      blk_vname(2,5)='??????                                   '
      blk_vname(3,5)='W/m^2                                    '
      blk_vname(4,5)='??????                                   '
      blk_vname(1,6)='Downward_Long-Wave_Rad_Flux              '
      blk_vname(2,6)='??????                                   '
      blk_vname(3,6)='W/m^2                                    '
      blk_vname(4,6)='??????                                   '
      blk_vname(1,7)='Upward_Long-Wave_Rad_Flux_surface        '
      blk_vname(2,7)='??????                                   '
      blk_vname(3,7)='W/m^2                                    '
      blk_vname(4,7)='??????                                   '
      blk_vname(1,8)='U-component_of_wind                      '
      blk_vname(2,8)='??????                                   '
      blk_vname(3,8)='m/s                                      '
      blk_vname(4,8)='??????                                   '
      blk_vname(1,9)='V-component_of_wind                      '
      blk_vname(2,9)='??????                                   '
      blk_vname(3,9)='m/s                                      '
      blk_vname(4,9)='??????                                   '
      return
      end
