Back to home page

MITgcm

 
 

    


File indexing completed on 2022-03-25 05:10:01 UTC

view on githubraw file Latest commit 64811cb0 on 2022-03-25 02:40:24 UTC
0dc94a8572 Patr*0001 #include "MYPACKAGE_OPTIONS.h"
                0002 
3d0c17158b Ed H*0003 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
64811cb024 Jean*0004 CBOP
3d0c17158b Ed H*0005 C !ROUTINE: MYPACKAGE_INIT_VARIA
                0006 
                0007 C !INTERFACE:
0dc94a8572 Patr*0008       SUBROUTINE MYPACKAGE_INIT_VARIA( myThid )
                0009 
3d0c17158b Ed H*0010 C     !DESCRIPTION:
                0011 C     Initialize MYPACKAGE variables
                0012 
0dc94a8572 Patr*0013 C     !USES:
                0014       IMPLICIT NONE
64811cb024 Jean*0015 C     == Global variables ===
0dc94a8572 Patr*0016 #include "SIZE.h"
                0017 #include "EEPARAMS.h"
                0018 #include "PARAMS.h"
                0019 #include "GRID.h"
                0020 #include "MYPACKAGE.h"
                0021 
                0022 C     !INPUT/OUTPUT PARAMETERS:
                0023 C     myThid ::  my Thread Id number
                0024       INTEGER myThid
                0025 CEOP
                0026 
                0027 C     !LOCAL VARIABLES:
                0028       INTEGER i,j,k,bi,bj
                0029 
                0030       DO bj = myByLo(myThid), myByHi(myThid)
                0031        DO bi = myBxLo(myThid), myBxHi(myThid)
                0032 
                0033 C     Initialize arrays in common blocks :
                0034 C     3-dim.
                0035         DO k=1,Nr
64811cb024 Jean*0036          DO j=1-OLy,sNy+OLy
                0037           DO i=1-OLx,sNx+OLx
5b141690f8 Jean*0038 #ifdef MYPACKAGE_3D_STATE
                0039            myPa_StatScal1(i,j,k,bi,bj) = 0. _d 0
                0040            myPa_StatScal2(i,j,k,bi,bj) = 0. _d 0
                0041            myPa_StatVelU (i,j,k,bi,bj) = 0. _d 0
                0042            myPa_StatVelV (i,j,k,bi,bj) = 0. _d 0
                0043 #endif /* MYPACKAGE_3D_STATE */
                0044 #ifdef MYPACKAGE_TENDENCY
                0045            myPa_TendScal1(i,j,k,bi,bj) = 0. _d 0
                0046            myPa_TendScal2(i,j,k,bi,bj) = 0. _d 0
                0047            myPa_TendVelU (i,j,k,bi,bj) = 0. _d 0
                0048            myPa_TendVelV (i,j,k,bi,bj) = 0. _d 0
                0049 #endif /* MYPACKAGE_TENDENCY */
0dc94a8572 Patr*0050           ENDDO
                0051          ENDDO
                0052         ENDDO
                0053 
                0054 C     2-dim.
5b141690f8 Jean*0055 #ifdef MYPACKAGE_2D_STATE
64811cb024 Jean*0056         DO j=1-OLy,sNy+OLy
                0057          DO i=1-OLx,sNx+OLx
5b141690f8 Jean*0058           myPa_Surf1(i,j,bi,bj) = 0. _d 0
                0059           myPa_Surf2(i,j,bi,bj) = 0. _d 0
0dc94a8572 Patr*0060          ENDDO
                0061         ENDDO
5b141690f8 Jean*0062 #endif /* MYPACKAGE_2D_STATE */
0dc94a8572 Patr*0063 
                0064 C- end bi,bj loops
                0065        ENDDO
                0066       ENDDO
                0067 
5b187c067b Jean*0068       IF ( startTime.EQ.baseTime .AND. nIter0.EQ.0
                0069      &                           .AND. pickupSuff.EQ.' ' ) THEN
0dc94a8572 Patr*0070 
5b141690f8 Jean*0071 C     Prevent loading of new data before everyone has finished initialisation
89d087bc2b Jean*0072 C     this is done within IO routines => no longer needed
                0073 c      _BARRIER
5b141690f8 Jean*0074 
                0075 #ifdef MYPACKAGE_3D_STATE
                0076        IF ( myPa_Scal1File .NE. ' ' ) THEN
                0077          CALL READ_FLD_XYZ_RL( myPa_Scal1File, ' ',
                0078      &                         myPa_StatScal1, 0, myThid )
                0079          CALL EXCH_3D_RL( myPa_StatScal1, Nr, myThid )
                0080        ENDIF
                0081        IF ( myPa_Scal2File .NE. ' ' ) THEN
                0082          CALL READ_FLD_XYZ_RL( myPa_Scal2File, ' ',
                0083      &                         myPa_StatScal2, 0, myThid )
                0084          CALL EXCH_3D_RL( myPa_StatScal2, Nr, myThid )
                0085        ENDIF
                0086 
                0087        IF ( myPa_VelUFile .NE. ' ' ) THEN
                0088          CALL READ_FLD_XYZ_RL( myPa_VelUFile, ' ',
                0089      &                         myPa_StatVelU, 0, myThid )
                0090        ENDIF
                0091        IF ( myPa_VelVFile .NE. ' ' ) THEN
                0092          CALL READ_FLD_XYZ_RL( myPa_VelVFile, ' ',
                0093      &                         myPa_StatVelV, 0, myThid )
                0094        ENDIF
                0095        IF ( myPa_VelUFile .NE. ' ' .OR.
                0096      &      myPa_VelVFile .NE. ' ' ) THEN
                0097         IF ( myPa_StaV_Cgrid ) THEN
                0098          CALL EXCH_UV_3D_RL( myPa_StatVelU, myPa_StatVelV,
                0099      &                       .TRUE., Nr, myThid )
                0100         ELSE
                0101 C-      Assume Agrid position:
                0102          CALL EXCH_UV_AGRID_3D_RL( myPa_StatVelU, myPa_StatVelV,
                0103      &                       .TRUE., Nr, myThid )
                0104         ENDIF
                0105        ENDIF
                0106 #endif /* MYPACKAGE_3D_STATE */
                0107 
                0108 #ifdef MYPACKAGE_2D_STATE
                0109        IF ( myPa_Surf1File .NE. ' ' ) THEN
                0110          CALL READ_FLD_XY_RL( myPa_Surf1File,' ',
                0111      &                        myPa_Surf1, 0, myThid )
                0112          CALL EXCH_XY_RL( myPa_Surf1, myThid )
                0113        ENDIF
                0114        IF ( myPa_Surf2File .NE. ' ' ) THEN
                0115          CALL READ_FLD_XY_RL( myPa_Surf2File,' ',
                0116      &                        myPa_Surf2, 0, myThid )
                0117          CALL EXCH_XY_RL( myPa_Surf2, myThid )
                0118        ENDIF
                0119 #endif /* MYPACKAGE_2D_STATE */
0dc94a8572 Patr*0120 
5b141690f8 Jean*0121       ELSE
                0122 C--   restart from a pickup:
                0123          CALL MYPACKAGE_READ_PICKUP( nIter0, myThid )
0dc94a8572 Patr*0124 
5b141690f8 Jean*0125 C--   end start-from-iter-zero if/else block
0dc94a8572 Patr*0126       ENDIF
                0127 
                0128       RETURN
                0129       END