1 |
C $Header$ |
C $Header$ |
2 |
C $Name$ |
C $Name$ |
3 |
|
|
4 |
|
#include "PACKAGES_CONFIG.h" |
5 |
#include "CPP_OPTIONS.h" |
#include "CPP_OPTIONS.h" |
6 |
|
|
7 |
C-- File read_write.F: Routines to handle mid-level I/O interface. |
C-- File read_write.F: Routines to handle mid-level I/O interface. |
98 |
CALL READ_REC_XYZ_RL( 'gsNm1', gSNm1, 1,myIter, myThid) |
CALL READ_REC_XYZ_RL( 'gsNm1', gSNm1, 1,myIter, myThid) |
99 |
CALL READ_REC_XY_RL ('etaN', etaN, 1,myIter, myThid) |
CALL READ_REC_XY_RL ('etaN', etaN, 1,myIter, myThid) |
100 |
#ifdef INCLUDE_CD_CODE |
#ifdef INCLUDE_CD_CODE |
101 |
|
IF (useCDscheme) THEN |
102 |
CALL READ_REC_XY_RL ('etaNm1', etaNm1, 1,myIter, myThid) |
CALL READ_REC_XY_RL ('etaNm1', etaNm1, 1,myIter, myThid) |
103 |
CALL READ_REC_XYZ_RL( 'uVelD', uVelD, 1,myIter, myThid) |
CALL READ_REC_XYZ_RL( 'uVelD', uVelD, 1,myIter, myThid) |
104 |
CALL READ_REC_XYZ_RL( 'vVelD', vVelD, 1,myIter, myThid) |
CALL READ_REC_XYZ_RL( 'vVelD', vVelD, 1,myIter, myThid) |
106 |
CALL READ_REC_XYZ_RL( 'vNm1', vNM1, 1,myIter, myThid) |
CALL READ_REC_XYZ_RL( 'vNm1', vNM1, 1,myIter, myThid) |
107 |
c CALL READ_REC_XYZ_RL( 'guCD', guCD, 1,myIter, myThid) |
c CALL READ_REC_XYZ_RL( 'guCD', guCD, 1,myIter, myThid) |
108 |
c CALL READ_REC_XYZ_RL( 'gvCD', gvCD, 1,myIter, myThid) |
c CALL READ_REC_XYZ_RL( 'gvCD', gvCD, 1,myIter, myThid) |
109 |
|
ENDIF |
110 |
#endif |
#endif |
111 |
|
|
112 |
#ifdef ALLOW_NONHYDROSTATIC |
#ifdef ALLOW_NONHYDROSTATIC |
143 |
CALL MDSREADFIELD(fn,prec,'RL',Nr,gSnm1, 12,myThid) |
CALL MDSREADFIELD(fn,prec,'RL',Nr,gSnm1, 12,myThid) |
144 |
CALL MDSREADFIELD(fn,prec,'RL', 1,etaN,12*Nr+1,myThid) |
CALL MDSREADFIELD(fn,prec,'RL', 1,etaN,12*Nr+1,myThid) |
145 |
#ifdef NONLIN_FRSURF |
#ifdef NONLIN_FRSURF |
146 |
IF ( nonlinFreeSurf.GE.0) |
IF ( nonlinFreeSurf.GT.0) |
147 |
& CALL MDSREADFIELD(fn,prec,'RL',1,etaH,12*Nr+2,myThid) |
& CALL MDSREADFIELD(fn,prec,'RL',1,etaH,12*Nr+2,myThid) |
148 |
#endif |
#endif |
149 |
|
|
153 |
ENDIF |
ENDIF |
154 |
|
|
155 |
#ifdef INCLUDE_CD_CODE |
#ifdef INCLUDE_CD_CODE |
156 |
|
IF (useCDscheme) THEN |
157 |
WRITE(fn,'(A,A10)') 'pickup_cd.',suff |
WRITE(fn,'(A,A10)') 'pickup_cd.',suff |
158 |
CALL MDSREADFIELD(fn,prec,'RL',Nr,uVelD, 1,myThid) |
CALL MDSREADFIELD(fn,prec,'RL',Nr,uVelD, 1,myThid) |
159 |
CALL MDSREADFIELD(fn,prec,'RL',Nr,vVelD, 2,myThid) |
CALL MDSREADFIELD(fn,prec,'RL',Nr,vVelD, 2,myThid) |
162 |
c CALL MDSREADFIELD(fn,prec,'RL',Nr,guCD, 5,myThid) |
c CALL MDSREADFIELD(fn,prec,'RL',Nr,guCD, 5,myThid) |
163 |
c CALL MDSREADFIELD(fn,prec,'RL',Nr,gvCD, 6,myThid) |
c CALL MDSREADFIELD(fn,prec,'RL',Nr,gvCD, 6,myThid) |
164 |
CALL MDSREADFIELD(fn,prec,'RL', 1,etaNm1,6*Nr+1,myThid) |
CALL MDSREADFIELD(fn,prec,'RL', 1,etaNm1,6*Nr+1,myThid) |
165 |
|
ENDIF |
166 |
#endif /* INCLUDE_CD_CODE */ |
#endif /* INCLUDE_CD_CODE */ |
167 |
|
|
168 |
#ifdef ALLOW_NONHYDROSTATIC |
#ifdef ALLOW_NONHYDROSTATIC |
221 |
& _EXCH_XYZ_RL( totPhiHyd, myThid ) |
& _EXCH_XYZ_RL( totPhiHyd, myThid ) |
222 |
|
|
223 |
#ifdef INCLUDE_CD_CODE |
#ifdef INCLUDE_CD_CODE |
224 |
|
IF (useCDscheme) THEN |
225 |
c**** CALL EXCH_DUV_XYZ_RL(uVelD,vVelD,.TRUE.,myThid) |
c**** CALL EXCH_DUV_XYZ_RL(uVelD,vVelD,.TRUE.,myThid) |
226 |
c**** CALL EXCH_DUV_XYZ_RL(guCD,gvCD,.TRUE.,myThid) |
c**** CALL EXCH_DUV_XYZ_RL(guCD,gvCD,.TRUE.,myThid) |
227 |
_EXCH_XYZ_R8( uVelD, myThid ) |
_EXCH_XYZ_R8( uVelD, myThid ) |
232 |
c _EXCH_XYZ_R8( guCD, myThid ) |
c _EXCH_XYZ_R8( guCD, myThid ) |
233 |
c _EXCH_XYZ_R8( gvCD, myThid ) |
c _EXCH_XYZ_R8( gvCD, myThid ) |
234 |
_EXCH_XY_R8( etaNm1, myThid ) |
_EXCH_XY_R8( etaNm1, myThid ) |
235 |
#endif |
ENDIF |
236 |
|
#endif /* INCLUDE_CD_CODE */ |
237 |
#ifdef ALLOW_NONHYDROSTATIC |
#ifdef ALLOW_NONHYDROSTATIC |
238 |
IF ( nonHydrostatic ) THEN |
IF ( nonHydrostatic ) THEN |
239 |
_EXCH_XYZ_R8(phi_nh, myThid ) |
_EXCH_XYZ_R8(phi_nh, myThid ) |
365 |
CALL WRITE_REC_XYZ_RL( 'gSNm1', gSNm1, 1,myIter, myThid) |
CALL WRITE_REC_XYZ_RL( 'gSNm1', gSNm1, 1,myIter, myThid) |
366 |
CALL WRITE_REC_XY_RL ('etaN', etaN, 1,myIter, myThid) |
CALL WRITE_REC_XY_RL ('etaN', etaN, 1,myIter, myThid) |
367 |
#ifdef INCLUDE_CD_CODE |
#ifdef INCLUDE_CD_CODE |
368 |
|
IF (useCDscheme) THEN |
369 |
CALL WRITE_REC_XY_RL |
CALL WRITE_REC_XY_RL |
370 |
& ( 'etaNm1', etaNm1, 1,myIter, myThid) |
& ( 'etaNm1', etaNm1, 1,myIter, myThid) |
371 |
CALL WRITE_REC_XYZ_RL( 'uVelD', uVelD, 1,myIter, myThid) |
CALL WRITE_REC_XYZ_RL( 'uVelD', uVelD, 1,myIter, myThid) |
374 |
CALL WRITE_REC_XYZ_RL( 'vNM1', vNM1, 1,myIter, myThid) |
CALL WRITE_REC_XYZ_RL( 'vNM1', vNM1, 1,myIter, myThid) |
375 |
c CALL WRITE_REC_XYZ_RL( 'guCD', guCD, 1,myIter, myThid) |
c CALL WRITE_REC_XYZ_RL( 'guCD', guCD, 1,myIter, myThid) |
376 |
c CALL WRITE_REC_XYZ_RL( 'gvCD', gvCD, 1,myIter, myThid) |
c CALL WRITE_REC_XYZ_RL( 'gvCD', gvCD, 1,myIter, myThid) |
377 |
#endif |
ENDIF |
378 |
|
#endif /* INCLUDE_CD_CODE */ |
379 |
|
|
380 |
|
|
381 |
#ifdef ALLOW_NONHYDROSTATIC |
#ifdef ALLOW_NONHYDROSTATIC |
426 |
& 1,myIter,myThid) |
& 1,myIter,myThid) |
427 |
ENDIF |
ENDIF |
428 |
#ifdef INCLUDE_CD_CODE |
#ifdef INCLUDE_CD_CODE |
429 |
|
IF (useCDscheme) THEN |
430 |
IF ( permCheckPoint ) THEN |
IF ( permCheckPoint ) THEN |
431 |
WRITE(fn,'(A,I10.10)') 'pickup_cd.',myIter |
WRITE(fn,'(A,I10.10)') 'pickup_cd.',myIter |
432 |
ELSE |
ELSE |
444 |
CALL MDSWRITEFIELD(fn,prec,lgf,'RL',Nr,vNM1, 6,myIter,myThid) |
CALL MDSWRITEFIELD(fn,prec,lgf,'RL',Nr,vNM1, 6,myIter,myThid) |
445 |
CALL MDSWRITEFIELD(fn,prec,lgf,'RL', 1,etaNm1,6*Nr+1, |
CALL MDSWRITEFIELD(fn,prec,lgf,'RL', 1,etaNm1,6*Nr+1, |
446 |
& myIter,myThid) |
& myIter,myThid) |
447 |
|
ENDIF |
448 |
#endif /* INCLUDE_CD_CODE */ |
#endif /* INCLUDE_CD_CODE */ |
449 |
#ifdef ALLOW_NONHYDROSTATIC |
#ifdef ALLOW_NONHYDROSTATIC |
450 |
IF ( nonHydrostatic ) THEN |
IF ( nonHydrostatic ) THEN |