Parent Directory
|
Revision Log
|
Revision Graph
|
Patch
--- MITgcm_contrib/plumes/plume2dyn.F 2004/05/25 23:12:50 1.3
+++ MITgcm_contrib/plumes/plume2dyn.F 2004/05/26 03:10:27 1.4
@@ -1,5 +1,5 @@
subroutine plume2dyn(qplume,Nxplume,Lmplume,uref,vref,flag,
- . idim1,idim2,jdim1,jdim2,Lmout,Nsx,Nsy,bi,bj,qdyn1,qdyn2)
+ . idim1,idim2,jdim1,jdim2,i1,i2,j1,j2,Nsx,Nsy,bi,bj,qdyn1,qdyn2)
C***********************************************************************
C Purpose:
C To interpolate an arbitrary quantity from higher resolution plume
@@ -11,22 +11,23 @@
C
C Input:
C qplume... [idim2,jdim2,im,Lmplume,bi] Quantity on Input Grid
-C idimin... Longitude Dimension of Input
+C Nxplume . Longitude Dimension of Input
C Lmplume.. Vertical Dimension of Input
-C uref .... [im,jm,Lmout,bi,bj] Reference u-component of velocity
-C vref .... [im,jm,Lmout,bi,bj] Reference v-component of velocity
+C uref .... [im,jm,Lmplume,bi,bj] Reference u-component of velocity
+C vref .... [im,jm,plume,bi,bj] Reference v-component of velocity
C flag .... Flag to indicate vector (1) or scalar (0) interpolation
-C idim1,2.. Beginning and ending i-values of output grid
-C jdim1,2.. Beginning and ending j-values of output grid
-C Lmout.... Vertical Dimension of Output
+C idim1,2.. Beginning and ending dimension of output grid
+C jdim1,2.. Beginning and ending dimension of output grid
+C i1,2..... Beginning and ending x-direction span
+C j1,2..... Beginning and ending y-direction span
C Nsx...... Number of processes in x-direction
C Nsy...... Number of processes in y-direction
C bi....... Index of process number in x-direction
C bj....... Index of process number in x-direction
C
C Output:
-C qdyn1..... [im,jm,Lmout,bi,bj] Field at output grid (dynamics)
-C qdyn2..... [im,jm,Lmout,bi,bj] Field at output grid (dynamics)
+C qdyn1..... [im,jm,plume,bi,bj] Field at output grid (dynamics)
+C qdyn2..... [im,jm,plume,bi,bj] Field at output grid (dynamics)
C
C Notes:
C 1) Assume (for now) that the number of vertical levels is the
@@ -35,21 +36,22 @@
implicit none
#include "CPP_OPTIONS.h"
- integer Nxplume, Lmplume, Lmout, Nsx, Nsy
- integer idim1, idim2, jdim1, jdim2, bi, bj, flag
- _RL qplume(idim2,jdim2,Nxplume,Lmplume,Nsx)
- _RL uref(idim1:idim2,jdim1:jdim2,Lmout,Nsx,Nsy)
- _RL vref(idim1:idim2,jdim1:jdim2,Lmout,Nsx,Nsy)
- _RL qdyn1(idim1:idim2,jdim1:jdim2,Lmout,Nsx,Nsy)
- _RL qdyn2(idim1:idim2,jdim1:jdim2,Lmout,Nsx,Nsy)
+ integer Nxplume, Lmplume, Nsx, Nsy
+ integer idim1, idim2, jdim1, jdim2, i1, i2, j1, j2
+ integer bi, bj, flag
+ _RL qplume(i2,j2,Nxplume,Lmplume,Nsx)
+ _RL uref(idim1:idim2,jdim1:jdim2,Lmplume,Nsx,Nsy)
+ _RL vref(idim1:idim2,jdim1:jdim2,Lmplume,Nsx,Nsy)
+ _RL qdyn1(idim1:idim2,jdim1:jdim2,Lmplume,Nsx,Nsy)
+ _RL qdyn2(idim1:idim2,jdim1:jdim2,Lmplume,Nsx,Nsy)
integer i,j,L,iplume
- _RL qplumeav(idim1,jdim2,Lmplume)
+ _RL qplumeav(i1,j2,Lmplume)
_RL sqrtarg
C First step - compute the average of qplume over Nxplume
- do j = jdim1,jdim2
- do i = idim1,idim2
+ do j = j1,j2
+ do i = i1,i2
do L = 1,Lmplume
qplumeav(i,j,L) = 0.
do iplume = 1,Nxplume
@@ -65,16 +67,16 @@
C the angle given by uref and vref
if (flag.eq.0) then
- do j = jdim1,jdim2
- do i = idim1,idim2
+ do j = j1,j2
+ do i = i1,i2
do L = 1,Lmplume
qdyn1(i,j,L,bi,bj) = qplumeav(i,j,L)
enddo
enddo
enddo
elseif (flag.eq.1) then
- do j = jdim1,jdim2
- do i = idim1,idim2
+ do j = j1,j2
+ do i = i1,i2
do L = 1,Lmplume
if(vref(i,j,L,bi,bj).ne.0.) then
sqrtarg = (qplumeav(i,j,L)*qplumeav(i,j,L)) /
| ViewVC Help | |
| Powered by ViewVC 1.1.22 |