3 |
|
|
4 |
#include "CD_CODE_OPTIONS.h" |
#include "CD_CODE_OPTIONS.h" |
5 |
|
|
6 |
SUBROUTINE CD_CODE_INIT_VARS( myIter, myThid ) |
SUBROUTINE CD_CODE_INI_VARS( myThid ) |
7 |
|
|
8 |
IMPLICIT NONE |
IMPLICIT NONE |
9 |
C === Global variables === |
C === Global variables === |
13 |
#include "CD_CODE_VARS.h" |
#include "CD_CODE_VARS.h" |
14 |
|
|
15 |
C == Routine arguments == |
C == Routine arguments == |
16 |
C myThid - Number of this instance of INI_UVEL |
C myThid :: my Thread Id number |
|
INTEGER myIter |
|
17 |
INTEGER myThid |
INTEGER myThid |
18 |
|
|
19 |
C !LOCAL VARIABLES: |
C !LOCAL VARIABLES: |
21 |
C bi,bj - Loop counters |
C bi,bj - Loop counters |
22 |
C I,J,K |
C I,J,K |
23 |
INTEGER bi, bj |
INTEGER bi, bj |
24 |
INTEGER I, J, K |
INTEGER I, J, K |
|
CHARACTER*(MAX_LEN_FNAM) fn |
|
|
CHARACTER*(10) suff |
|
|
INTEGER prec |
|
25 |
CEOP |
CEOP |
26 |
|
|
27 |
#ifdef ALLOW_CD_CODE |
#ifdef ALLOW_CD_CODE |
34 |
DO K=1,Nr |
DO K=1,Nr |
35 |
DO J=1-Oly,sNy+Oly |
DO J=1-Oly,sNy+Oly |
36 |
DO I=1-Olx,sNx+Olx |
DO I=1-Olx,sNx+Olx |
|
|
|
37 |
uNM1(I,J,K,bi,bj)=0. _d 0 |
uNM1(I,J,K,bi,bj)=0. _d 0 |
38 |
vNM1(I,J,K,bi,bj)=0. _d 0 |
vNM1(I,J,K,bi,bj)=0. _d 0 |
39 |
uVeld(I,J,K,bi,bj)=0. _d 0 |
uVeld(I,J,K,bi,bj)=0. _d 0 |
40 |
vVeld(I,J,K,bi,bj)=0. _d 0 |
vVeld(I,J,K,bi,bj)=0. _d 0 |
|
|
|
41 |
ENDDO |
ENDDO |
42 |
ENDDO |
ENDDO |
43 |
ENDDO |
ENDDO |
45 |
C- 2D arrays |
C- 2D arrays |
46 |
DO J=1-Oly,sNy+Oly |
DO J=1-Oly,sNy+Oly |
47 |
DO I=1-Olx,sNx+Olx |
DO I=1-Olx,sNx+Olx |
|
|
|
48 |
etaNm1(I,J,bi,bj)=0. _d 0 |
etaNm1(I,J,bi,bj)=0. _d 0 |
|
|
|
49 |
ENDDO |
ENDDO |
50 |
ENDDO |
ENDDO |
51 |
|
|
52 |
ENDDO |
ENDDO |
53 |
ENDDO |
ENDDO |
54 |
|
|
55 |
IF ( startTime.NE.0. .OR. nIter0.NE.0 ) THEN |
IF ( nIter0.NE.0 ) THEN |
56 |
|
CALL CD_CODE_READ_PICKUP( nIter0, myThid ) |
|
C-- Suffix for pickup files |
|
|
IF (pickupSuff.EQ.' ') THEN |
|
|
WRITE(suff,'(I10.10)') myIter |
|
|
ELSE |
|
|
WRITE(suff,'(A10)') pickupSuff |
|
|
ENDIF |
|
|
|
|
|
_BARRIER |
|
|
_BEGIN_MASTER( myThid ) |
|
|
|
|
|
prec = precFloat64 |
|
|
|
|
|
WRITE(fn,'(A,A10)') 'pickup_cd.',suff |
|
|
CALL MDSREADFIELD(fn,prec,'RL',Nr,uVelD, 1,myThid) |
|
|
CALL MDSREADFIELD(fn,prec,'RL',Nr,vVelD, 2,myThid) |
|
|
CALL MDSREADFIELD(fn,prec,'RL',Nr,uNM1, 3,myThid) |
|
|
CALL MDSREADFIELD(fn,prec,'RL',Nr,vNM1, 4,myThid) |
|
|
CALL MDSREADFIELD(fn,prec,'RL', 1,etaNm1,6*Nr+1,myThid) |
|
|
|
|
|
_EXCH_XYZ_R8( uVelD, myThid ) |
|
|
_EXCH_XYZ_R8( vVelD, myThid ) |
|
|
CALL EXCH_UV_XYZ_RL(uNM1,vNM1,.TRUE.,myThid) |
|
|
_EXCH_XY_R8( etaNm1, myThid ) |
|
|
|
|
|
_END_MASTER( myThid ) |
|
|
_BARRIER |
|
|
|
|
57 |
ENDIF |
ENDIF |
58 |
|
|
59 |
#endif /* ALLOW_CD_CODE */ |
#endif /* ALLOW_CD_CODE */ |