/[MITgcm]/MITgcm/pkg/dic/dic_read_pickup.F
ViewVC logotype

Diff of /MITgcm/pkg/dic/dic_read_pickup.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.2 by dfer, Fri Apr 4 21:37:06 2008 UTC revision 1.3 by jmc, Sun Apr 6 03:26:01 2008 UTC
# Line 4  C $Name$ Line 4  C $Name$
4  #include "GCHEM_OPTIONS.h"  #include "GCHEM_OPTIONS.h"
5  #include "DIC_OPTIONS.h"  #include "DIC_OPTIONS.h"
6    
7        SUBROUTINE DIC_READ_PICKUP( myIter, myThid )        SUBROUTINE DIC_READ_PICKUP(
8         O                            pH_isLoaded,
9         I                            myIter, myThid )
10    
11        IMPLICIT NONE        IMPLICIT NONE
12  C     === Global variables ===  C     === Global variables ===
# Line 14  C     === Global variables === Line 16  C     === Global variables ===
16  #include "DIC_VARS.h"  #include "DIC_VARS.h"
17    
18  C     == Routine arguments ==  C     == Routine arguments ==
19  C     myThid -  Number of this instance of DIC_READ_CHECKPOINT  C     myThid  :: my Thread Id number
20          LOGICAL ph_isLoaded
21        INTEGER myIter        INTEGER myIter
22        INTEGER myThid        INTEGER myThid
23    
24  #ifdef ALLOW_DIC  #ifdef ALLOW_DIC
25  #ifdef DIC_BIOTIC  #ifdef DIC_BIOTIC
26    
27    C     !FUNCTIONS
28          INTEGER  IFNBLNK, ILNBLNK
29          EXTERNAL IFNBLNK, ILNBLNK
30    
31  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
32  C     == Local variables ==  C     == Local variables ==
33        CHARACTER*(MAX_LEN_FNAM) fn        CHARACTER*(MAX_LEN_FNAM) fn, dFileName
34        CHARACTER*(10) suff        CHARACTER*(MAX_LEN_MBUF) msgBuf
35        INTEGER prec        LOGICAL fileExist, shareExist
36          INTEGER fp, iL, i, ioUnit
37    
38          COMMON / LOCAL_DIC_PICKUP / shareExist
39  CEOP  CEOP
40    
41  C--   Suffix for pickup files        ph_isLoaded =.FALSE.
42          ioUnit = errorMessageUnit
43    
44    C--   pickup file name :
45        IF (pickupSuff.EQ.' ') THEN        IF (pickupSuff.EQ.' ') THEN
46           WRITE(suff,'(I10.10)') myIter          WRITE(fn,'(A,I10.10)') 'pickup_dic.', myIter
47        ELSE        ELSE
48           WRITE(suff,'(A10)') pickupSuff          WRITE(fn,'(A,A10)') 'pickup_dic.', pickupSuff
49        ENDIF        ENDIF
50          fp = precFloat64
51    
52        _BARRIER        _BARRIER
53          _BEGIN_MASTER( myThid )
54    
55        prec = precFloat64  C--   First check if pickup file exist
56          fileExist = .FALSE.
57          iL = ILNBLNK(fn)
58          IF ( .NOT.fileExist ) THEN
59    C-    look for file = {fn}
60            WRITE(dFileName,'(A)') fn(1:iL)
61            i = iL
62            INQUIRE( FILE=dFileName, EXIST=fileExist )
63          ENDIF
64          IF ( .NOT.fileExist ) THEN
65    C-    look for file = {fn}'.data'
66            WRITE(dFileName,'(2A)') fn(1:iL), '.data'
67            i = iL + 5
68            INQUIRE( FILE=dFileName, EXIST=fileExist )
69          ENDIF
70          IF ( .NOT.fileExist ) THEN
71    C-    look for file = {fn}'.001.001.data'
72            WRITE(dFileName,'(2A)') fn(1:iL), '.001.001.data'
73            i = iL + 5 + 8
74            INQUIRE( FILE=dFileName, EXIST=fileExist )
75          ENDIF
76          shareExist = fileExist
77    
78        WRITE(fn,'(A,A10)') 'pickup_dic.',suff        IF ( .NOT.fileExist ) THEN
79        CALL READ_REC_3D_RL( fn, prec, 1, pH, 1, myIter, myThid )          WRITE(msgBuf,'(4A)') 'WARNING >> DIC_READ_PICKUP: file: ',
80         &          fn(1:iL), ' , .data , ', dFileName(1:i)
81            CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
82            WRITE(msgBuf,'(A)')
83         &           'WARNING >> DIC_READ_PICKUP: Files DO not exist'
84            CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
85          ENDIF
86    
87        _EXCH_XY_R8( pH, myThid )        _END_MASTER( myThid )
88          _BARRIER
89    
90          IF ( shareExist ) THEN
91    C--   Read pickup file
92            CALL READ_REC_3D_RL( fn, fp, 1, pH, 1, myIter, myThid )
93            pH_isLoaded = .TRUE.
94    
95            _EXCH_XY_R8( pH, myThid )
96          ELSE
97            pH_isLoaded = .FALSE.
98            IF ( pickupStrictlyMatch ) THEN
99              WRITE(msgBuf,'(4A)') 'DIC_READ_PICKUP: ',
100         &      'try with " pickupStrictlyMatch=.FALSE.,"',
101         &      ' in file: "data", NameList: "PARM03"'
102              CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
103              STOP 'ABNORMAL END: S/R DIC_READ_PICKUP'
104            ELSE
105              WRITE(msgBuf,'(4A)') 'DIC_READ_PICKUP: ',
106         &      'will restart from approximated pH'
107              CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
108            ENDIF
109          ENDIF
110    
111  #endif /*  DIC_BIOTIC  */  #endif /*  DIC_BIOTIC  */
112  #endif /*  ALLOW_DIC  */  #endif /*  ALLOW_DIC  */
113    
114        RETURN        RETURN
115        END        END
   

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

  ViewVC Help
Powered by ViewVC 1.1.22