| 4 | c        with plumes driver. | c        with plumes driver. | 
| 5 | c        1) Set up "bi, bj loop"  and some timers and clocks. | c        1) Set up "bi, bj loop"  and some timers and clocks. | 
| 6 | c        2) Call do_plumes - driver for plumes which computes tendencies | c        2) Call do_plumes - driver for plumes which computes tendencies | 
| 7 | c        3) Interpolate tendencies to dynamics grid in vertical | c        3) Interpolate tendencies to dynamics grid | 
| 8 | c        4) Convert u,v tendencies to C-Grid | c        4) Convert u,v tendencies to C-Grid | 
| 9 | c | c | 
| 10 | c Calls: do_plumes (get u,v,t,s tend, step tke, etc and tc, etc. forward) | c Calls: do_plumes (get u,v,t,s tend, step tke, etc and tc, etc. forward) | 
| 18 | #include "plumes_SIZE.h" | #include "plumes_SIZE.h" | 
| 19 | #include "DYNVARS.h" | #include "DYNVARS.h" | 
| 20 | #include "plumes_coms.h" | #include "plumes_coms.h" | 
|  | #include "gridalt_mapping.h" |  | 
| 21 | #include "EEPARAMS.h" | #include "EEPARAMS.h" | 
| 22 |  |  | 
| 23 | integer myTime, myIter, myThid | integer myTime, myIter, myThid | 
| 32 |  |  | 
| 33 | c Compute plumes increments | c Compute plumes increments | 
| 34 | CALL TIMER_START ('DO_PLUMES         [PLUME_WRAPPER]',mythid) | CALL TIMER_START ('DO_PLUMES         [PLUME_WRAPPER]',mythid) | 
|  | do bj = myByLo(myThid), myByHi(myThid) |  | 
| 35 | do bi = myBxLo(myThid), myBxHi(myThid) | do bi = myBxLo(myThid), myBxHi(myThid) | 
| 36 | call do_plumes(uplume,vplume,thplume,splume,Nxplumes,Nyplumes, | call do_plumes(uplume,thplume,Nxplume,Nrplume,Nsx,bi, | 
| 37 | .           Nr,Nsx,Nsy,bi,bj,duplume,dvplume,dthplume,dsplume) | .                                              duplume,dthplume) | 
|  | enddo |  | 
| 38 | enddo | enddo | 
| 39 | CALL TIMER_STOP ('DO_PLUMES         [PLUME_WRAPPER]',mythid) | CALL TIMER_STOP ('DO_PLUMES         [PLUME_WRAPPER]',mythid) | 
| 40 |  |  | 
| 42 | do bj = myByLo(myThid), myByHi(myThid) | do bj = myByLo(myThid), myByHi(myThid) | 
| 43 | do bi = myBxLo(myThid), myBxHi(myThid) | do bi = myBxLo(myThid), myBxHi(myThid) | 
| 44 |  |  | 
| 45 | call plume2dyn(duplume,Nxplumes,Nyplumes,Nr,Nsx,Nsy, | call plume2dyn(duplume,Nxplume,Nrplume,Nsx,Nsy,idim1,idim2, | 
| 46 | .    idim1,idim2,jdim1,jdim2,Nr,Nsx,Nsy,1,sNx,1,sNy,bi,bj,guplume) | .    jdim1,jdim2,Nr,Nsx,Nsy,1,sNx,1,sNy,bi,bj,guplume,gvplume) | 
| 47 | call plume2dyn(dvplume,Nxplumes,Nyplumes,Nr,Nsx,Nsy, | call plume2dyn(dthplume,Nxplume,Nrplume,Nsx,Nsy,idim1,idim2, | 
| 48 | .    idim1,idim2,jdim1,jdim2,Nr,Nsx,Nsy,1,sNx,1,sNy,bi,bj,gvplume) | .    jdim1,jdim2,Nr,Nsx,Nsy,1,sNx,1,sNy,bi,bj,gthplume) | 
|  | call plume2dyn(dthplume,Nxplumes,Nyplumes,Nr,Nsx,Nsy, |  | 
|  | .    idim1,idim2,jdim1,jdim2,Nr,Nsx,Nsy,1,sNx,1,sNy,bi,bj,gthplume) |  | 
|  | call plume2dyn(dsplume,Nxplumes,Nyplumes,Nr,Nsx,Nsy, |  | 
|  | .    idim1,idim2,jdim1,jdim2,Nr,Nsx,Nsy,1,sNx,1,sNy,bi,bj,gsplume) |  | 
| 49 |  |  | 
| 50 | enddo | enddo | 
| 51 | enddo | enddo | 
| 63 | c Call the a-grid exchange routine to fill in the halo regions (dth,ds) | c Call the a-grid exchange routine to fill in the halo regions (dth,ds) | 
| 64 | call exch_RL_cube(gthplume,OLx, OLx, OLy, OLy, Nr,OLx, OLy, | call exch_RL_cube(gthplume,OLx, OLx, OLy, OLy, Nr,OLx, OLy, | 
| 65 | .            FORWARD_SIMULATION, EXCH_UPDATE_CORNERS, myThid ) | .            FORWARD_SIMULATION, EXCH_UPDATE_CORNERS, myThid ) | 
|  | call exch_RL_cube(gsplume,OLx, OLx, OLy, OLy, Nr,OLx, OLy, |  | 
|  | .            FORWARD_SIMULATION, EXCH_UPDATE_CORNERS, myThid ) |  | 
| 66 | CALL TIMER_STOP ('EXCHANGES         [PLUME_WRAPPER]',mythid) | CALL TIMER_STOP ('EXCHANGES         [PLUME_WRAPPER]',mythid) | 
| 67 |  |  | 
| 68 | return | return |