subroutine do_plumes(uplume,vplume,thplume, . idim,jdim,Nr,Nsx,Nsy,bi,bj,nxperdyn,nyperdyn, . duplume,dvplume,dthplume) c----------------------------------------------------------------------- c Dummy routine to calculate plumes increments - here set them to whatever c c----------------------------------------------------------------------- implicit none #include "CPP_OPTIONS.h" integer idim,jdim,Nr,Nsx,Nsy,bi,bj,nxperdyn,nyperdyn _RL uplume(idim,jdim,Nr,Nsx,Nsy) _RL vplume(idim,jdim,Nr,Nsx,Nsy) _RL thplume(idim,jdim,Nr,Nsx,Nsy) _RL splume(idim,jdim,Nr,Nsx,Nsy) _RL duplume(idim,jdim,Nr,Nsx,Nsy) _RL dvplume(idim,jdim,Nr,Nsx,Nsy) _RL dthplume(idim,jdim,Nr,Nsx,Nsy) _RL dsplume(idim,jdim,Nr,Nsx,Nsy) c _RL upergrid(nxperdyn,nyperdyn,nr) _RL vpergrid(nxperdyn,nyperdyn,nr) _RL tpergrid(nxperdyn,nyperdyn,nr) _RL spergrid(nxperdyn,nyperdyn,nr) _RL dupergrid(nxperdyn,nyperdyn,nr) _RL dvpergrid(nxperdyn,nyperdyn,nr) _RL dtpergrid(nxperdyn,nyperdyn,nr) _RL dspergrid(nxperdyn,nyperdyn,nr) integer i,j,L,ig,jg,iindex,jindex,nxgrids,nygrids nxgrids = idim/nxperdyn nygrids = jdim/nyperdyn c Large do-loop, do a plume model at each grid point do jg = 1,nygrids do ig = 1,nxgrids c Extract per grid point info from large arrays do L = 1,Nr do j = 1,nyperdyn do i = 1,nxperdyn iindex = (i-1)*nxgrids + i jindex = (j-1)*nygrids + j upergrid(i,j,L) = uplume(iindex,jindex,L,bi,bj) vpergrid(i,j,L) = vplume(iindex,jindex,L,bi,bj) tpergrid(i,j,L) = thplume(iindex,jindex,L,bi,bj) spergrid(i,j,L) = splume(iindex,jindex,L,bi,bj) enddo enddo enddo c Now call plume model to get tendencies call plume( ) c Put tendencies into large arrays do L = 1,Nr do j = 1,nyperdyn do i = 1,nxperdyn iindex = (i-1)*nxgrids + i jindex = (j-1)*nygrids + j duplume(iindex,jindex,L,bi,bj) = dupergrid(i,j,L) dvplume(iindex,jindex,L,bi,bj) = dvpergrid(i,j,L) dthplume(iindex,jindex,L,bi,bj) = dtpergrid(i,j,L) dsplume(iindex,jindex,L,bi,bj) = dspergrid(i,j,L) enddo enddo enddo return end