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

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

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


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

  ViewVC Help
Powered by ViewVC 1.1.22