524 |
C myThid - Thread number calling this routine |
C myThid - Thread number calling this routine |
525 |
CHARACTER*(*) pref |
CHARACTER*(*) pref |
526 |
CHARACTER*(*) suff |
CHARACTER*(*) suff |
527 |
_RL fld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nZ,nSx,nSy) |
_RL fld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) |
528 |
INTEGER myIter |
INTEGER myIter |
529 |
INTEGER myThid |
INTEGER myThid |
530 |
|
|
590 |
C-- Set local and global data extents |
C-- Set local and global data extents |
591 |
nXP=sNx*nSx |
nXP=sNx*nSx |
592 |
nYP=sNy*nSy |
nYP=sNy*nSy |
593 |
lFilled = sNx*nSx*nPx * sNy*nSy*nPy * nZ |
lFilled = sNx*nSx*nPx * sNy*nSy*nPy * Nr |
594 |
dimList(1) = nXP*nPx |
dimList(1) = nXP*nPx |
595 |
dimList(2) = myXGlobalLo |
dimList(2) = myXGlobalLo |
596 |
dimList(3) = myXGlobalLo+nXP-1 |
dimList(3) = myXGlobalLo+nXP-1 |
597 |
dimList(4) = nYP*nPy |
dimList(4) = nYP*nPy |
598 |
dimList(5) = myYGlobalLo |
dimList(5) = myYGlobalLo |
599 |
dimList(6) = myYGlobalLo+nYP-1 |
dimList(6) = myYGlobalLo+nYP-1 |
600 |
dimList(7) = nZ |
dimList(7) = Nr |
601 |
dimList(8) = 1 |
dimList(8) = 1 |
602 |
dimList(9) = nZ |
dimList(9) = Nr |
603 |
|
|
604 |
C-- Read data |
C-- Read data |
605 |
IF ( readBinaryPrec .EQ. precFloat32 ) THEN |
IF ( readBinaryPrec .EQ. precFloat32 ) THEN |
615 |
IF ( readBinaryPrec .EQ. precFloat32 ) THEN |
IF ( readBinaryPrec .EQ. precFloat32 ) THEN |
616 |
DO bj=1,nSy |
DO bj=1,nSy |
617 |
DO bi=1,nSx |
DO bi=1,nSx |
618 |
DO K=1,nZ |
DO K=1,Nr |
619 |
DO j=1,sNy |
DO j=1,sNy |
620 |
DO i=1,sNx |
DO i=1,sNx |
621 |
iP = (bi-1)*sNx+i |
iP = (bi-1)*sNx+i |
633 |
ELSE |
ELSE |
634 |
DO bj=1,nSy |
DO bj=1,nSy |
635 |
DO bi=1,nSx |
DO bi=1,nSx |
636 |
DO K=1,nZ |
DO K=1,Nr |
637 |
DO j=1,sNy |
DO j=1,sNy |
638 |
DO i=1,sNx |
DO i=1,sNx |
639 |
iP = (bi-1)*sNx+i |
iP = (bi-1)*sNx+i |
701 |
C myThid - Thread number calling this routine |
C myThid - Thread number calling this routine |
702 |
CHARACTER*(*) pref |
CHARACTER*(*) pref |
703 |
CHARACTER*(*) suff |
CHARACTER*(*) suff |
704 |
_RS fld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nZ,nSx,nSy) |
_RS fld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) |
705 |
INTEGER myIter |
INTEGER myIter |
706 |
INTEGER myThid |
INTEGER myThid |
707 |
|
|
767 |
C-- Set local and global data extents |
C-- Set local and global data extents |
768 |
nXP=sNx*nSx |
nXP=sNx*nSx |
769 |
nYP=sNy*nSy |
nYP=sNy*nSy |
770 |
lFilled = sNx*nSx*nPx * sNy*nSy*nPy * nZ |
lFilled = sNx*nSx*nPx * sNy*nSy*nPy * Nr |
771 |
dimList(1) = nXP*nPx |
dimList(1) = nXP*nPx |
772 |
dimList(2) = myXGlobalLo |
dimList(2) = myXGlobalLo |
773 |
dimList(3) = myXGlobalLo+nXP-1 |
dimList(3) = myXGlobalLo+nXP-1 |
774 |
dimList(4) = nYP*nPy |
dimList(4) = nYP*nPy |
775 |
dimList(5) = myYGlobalLo |
dimList(5) = myYGlobalLo |
776 |
dimList(6) = myYGlobalLo+nYP-1 |
dimList(6) = myYGlobalLo+nYP-1 |
777 |
dimList(7) = nZ |
dimList(7) = Nr |
778 |
dimList(8) = 1 |
dimList(8) = 1 |
779 |
dimList(9) = nZ |
dimList(9) = Nr |
780 |
|
|
781 |
C-- Read data |
C-- Read data |
782 |
IF ( readBinaryPrec .EQ. precFloat32 ) THEN |
IF ( readBinaryPrec .EQ. precFloat32 ) THEN |
792 |
IF ( readBinaryPrec .EQ. precFloat32 ) THEN |
IF ( readBinaryPrec .EQ. precFloat32 ) THEN |
793 |
DO bj=1,nSy |
DO bj=1,nSy |
794 |
DO bi=1,nSx |
DO bi=1,nSx |
795 |
DO K=1,nZ |
DO K=1,Nr |
796 |
DO j=1,sNy |
DO j=1,sNy |
797 |
DO i=1,sNx |
DO i=1,sNx |
798 |
iP = (bi-1)*sNx+i |
iP = (bi-1)*sNx+i |
810 |
ELSE |
ELSE |
811 |
DO bj=1,nSy |
DO bj=1,nSy |
812 |
DO bi=1,nSx |
DO bi=1,nSx |
813 |
DO K=1,nZ |
DO K=1,Nr |
814 |
DO j=1,sNy |
DO j=1,sNy |
815 |
DO i=1,sNx |
DO i=1,sNx |
816 |
iP = (bi-1)*sNx+i |
iP = (bi-1)*sNx+i |
1160 |
C myThid - Thread number calling this routine |
C myThid - Thread number calling this routine |
1161 |
CHARACTER*(*) pref |
CHARACTER*(*) pref |
1162 |
CHARACTER*(*) suff |
CHARACTER*(*) suff |
1163 |
_RL fld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nz,nSx,nSy) |
_RL fld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) |
1164 |
INTEGER myThid |
INTEGER myThid |
1165 |
INTEGER myIter |
INTEGER myIter |
1166 |
|
|
1217 |
C Also regrid it to i,j,k indexing. |
C Also regrid it to i,j,k indexing. |
1218 |
nXP=sNx*nSx |
nXP=sNx*nSx |
1219 |
nYP=sNy*nSy |
nYP=sNy*nSy |
1220 |
lFilled = sNx*nSx * sNy*nSy * Nz |
lFilled = sNx*nSx * sNy*nSy * Nr |
1221 |
IF ( writeBinaryPrec .EQ. precFloat32 ) THEN |
IF ( writeBinaryPrec .EQ. precFloat32 ) THEN |
1222 |
DO bj=1,nSy |
DO bj=1,nSy |
1223 |
DO bi=1,nSx |
DO bi=1,nSx |
1224 |
DO k=1,Nz |
DO k=1,Nr |
1225 |
DO j=1,sNy |
DO j=1,sNy |
1226 |
DO i=1,sNx |
DO i=1,sNx |
1227 |
iP = (bi-1)*sNx+i |
iP = (bi-1)*sNx+i |
1237 |
ELSE |
ELSE |
1238 |
DO bj=1,nSy |
DO bj=1,nSy |
1239 |
DO bi=1,nSx |
DO bi=1,nSx |
1240 |
DO k=1,Nz |
DO k=1,Nr |
1241 |
DO j=1,sNy |
DO j=1,sNy |
1242 |
DO i=1,sNx |
DO i=1,sNx |
1243 |
iP = (bi-1)*sNx+i |
iP = (bi-1)*sNx+i |
1259 |
dimList(4) = nYP*nPy |
dimList(4) = nYP*nPy |
1260 |
dimList(5) = myYGlobalLo |
dimList(5) = myYGlobalLo |
1261 |
dimList(6) = myYGlobalLo+nYP-1 |
dimList(6) = myYGlobalLo+nYP-1 |
1262 |
dimList(7) = nZ |
dimList(7) = Nr |
1263 |
dimList(8) = 1 |
dimList(8) = 1 |
1264 |
dimList(9) = nZ |
dimList(9) = Nr |
1265 |
|
|
1266 |
C-- Write data |
C-- Write data |
1267 |
IF ( writeBinaryPrec .EQ. precFloat32 ) THEN |
IF ( writeBinaryPrec .EQ. precFloat32 ) THEN |