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

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

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


Revision 1.3 - (hide annotations) (download)
Sun Apr 6 03:26:01 2008 UTC (16 years, 2 months ago) by jmc
Branch: MAIN
Changes since 1.2: +77 -14 lines
test for "pickup_dic" file when restarting ; if no pickup-file, restart
 with a re-initialised pH (same as it did before)

1 jmc 1.3 C $Header: /u/gcmpack/MITgcm/pkg/dic/dic_read_pickup.F,v 1.2 2008/04/04 21:37:06 dfer Exp $
2 dfer 1.1 C $Name: $
3    
4     #include "GCHEM_OPTIONS.h"
5     #include "DIC_OPTIONS.h"
6    
7 jmc 1.3 SUBROUTINE DIC_READ_PICKUP(
8     O pH_isLoaded,
9     I myIter, myThid )
10 dfer 1.1
11     IMPLICIT NONE
12     C === Global variables ===
13     #include "SIZE.h"
14     #include "EEPARAMS.h"
15     #include "PARAMS.h"
16 dfer 1.2 #include "DIC_VARS.h"
17 dfer 1.1
18     C == Routine arguments ==
19 jmc 1.3 C myThid :: my Thread Id number
20     LOGICAL ph_isLoaded
21 dfer 1.1 INTEGER myIter
22     INTEGER myThid
23    
24     #ifdef ALLOW_DIC
25     #ifdef DIC_BIOTIC
26    
27 jmc 1.3 C !FUNCTIONS
28     INTEGER IFNBLNK, ILNBLNK
29     EXTERNAL IFNBLNK, ILNBLNK
30    
31 dfer 1.1 C !LOCAL VARIABLES:
32     C == Local variables ==
33 jmc 1.3 CHARACTER*(MAX_LEN_FNAM) fn, dFileName
34     CHARACTER*(MAX_LEN_MBUF) msgBuf
35     LOGICAL fileExist, shareExist
36     INTEGER fp, iL, i, ioUnit
37    
38     COMMON / LOCAL_DIC_PICKUP / shareExist
39 dfer 1.1 CEOP
40    
41 jmc 1.3 ph_isLoaded =.FALSE.
42     ioUnit = errorMessageUnit
43    
44     C-- pickup file name :
45 dfer 1.1 IF (pickupSuff.EQ.' ') THEN
46 jmc 1.3 WRITE(fn,'(A,I10.10)') 'pickup_dic.', myIter
47 dfer 1.1 ELSE
48 jmc 1.3 WRITE(fn,'(A,A10)') 'pickup_dic.', pickupSuff
49 dfer 1.1 ENDIF
50 jmc 1.3 fp = precFloat64
51 dfer 1.1
52     _BARRIER
53 jmc 1.3 _BEGIN_MASTER( myThid )
54 dfer 1.1
55 jmc 1.3 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 dfer 1.1
78 jmc 1.3 IF ( .NOT.fileExist ) THEN
79     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 dfer 1.1
87 jmc 1.3 _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 dfer 1.1
111     #endif /* DIC_BIOTIC */
112     #endif /* ALLOW_DIC */
113    
114     RETURN
115     END

  ViewVC Help
Powered by ViewVC 1.1.22