/[MITgcm]/MITgcm/model/src/do_the_model_io.F
ViewVC logotype

Annotation of /MITgcm/model/src/do_the_model_io.F

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


Revision 1.19 - (hide annotations) (download)
Tue Mar 6 16:51:02 2001 UTC (23 years, 2 months ago) by jmc
Branch: MAIN
CVS Tags: c37_adj, checkpoint37
Branch point for: pre38
Changes since 1.18: +5 -6 lines
separate the state variable "eta" from the 2D solver solution cg2d_x

1 jmc 1.19 C $Header: /u/gcmpack/models/MITgcmUV/model/src/do_the_model_io.F,v 1.18 2001/02/04 14:38:46 cnh Exp $
2     C $Name: $
3 cnh 1.1
4 cnh 1.11 #include "CPP_OPTIONS.h"
5 cnh 1.1
6 adcroft 1.15 SUBROUTINE DO_THE_MODEL_IO(
7     I forceOutput, myCurrentTime, myIter, myThid)
8 cnh 1.1 C /==========================================================\
9     C | SUBROUTINE DO_THE_MODEL_IO |
10     C | o Controlling routine for IO in model main time-stepping |
11     C | loop. |
12     C |==========================================================|
13     C | Many systems do not have thread safe IO so it is easier |
14     C | to lump everything together and do dumping of fields |
15     C | and updating of forcing terms in a single place. |
16     C | The approach to IO used here is that writes are only |
17     C | performed by thread 1 and that a process only writes out |
18 cnh 1.10 C | its data ( it does not know about anyone elses data!) |
19 cnh 1.1 C | Reading on the other hand is assumed to be from a file |
20     C | containing all the data for all the processes. Only the |
21     C | portion of data of interest to this process is actually |
22     C | loaded. To work well this assumes the existence of some |
23     C | reliable tool to join datasets together at the end of a |
24 cnh 1.10 C | run - see joinds.p |
25 cnh 1.1 C \==========================================================/
26 adcroft 1.12 IMPLICIT NONE
27 cnh 1.1
28     C == Global variables ===
29     #include "SIZE.h"
30     #include "EEPARAMS.h"
31     #include "PARAMS.h"
32     #include "DYNVARS.h"
33    
34 cnh 1.3 LOGICAL DIFFERENT_MULTIPLE
35     EXTERNAL DIFFERENT_MULTIPLE
36    
37 cnh 1.1 C == Routine arguments ==
38 adcroft 1.15 C forceOutput - If .TRUE. then force I/O, indepenent of other tests
39 cnh 1.1 C myThid - Thread number for this instance of the routine.
40     C myIter - Iteration number
41 cnh 1.3 C myCurrentTime - Current time of simulation ( s )
42 adcroft 1.15 LOGICAL forceOutput
43 cnh 1.1 INTEGER myThid
44     INTEGER myIter
45 adcroft 1.13 _RL myCurrentTime
46 cnh 1.1
47     C == Local variables ==
48    
49 cnh 1.10 C-- Generaly only thread 1 does IO here. It can not start until
50     C-- all threads fields are ready.
51 cnh 1.6 IF (
52 cnh 1.10 & DIFFERENT_MULTIPLE(dumpFreq,myCurrentTime,
53     & myCurrentTime-deltaTClock)
54 cnh 1.6 & ) THEN
55    
56 cnh 1.3 _BARRIER
57 cnh 1.1
58 cnh 1.3 C-- Write "text-plots" of certain fields
59 cnh 1.10 CALL PLOT_FIELD_XYZRL( uVel , 'Current uVel ' ,
60     & Nr, myIter, myThid )
61     CALL PLOT_FIELD_XYZRL( vVel , 'Current vVel ' ,
62     & Nr, myIter, myThid )
63     CALL PLOT_FIELD_XYZRL( theta, 'Current theta ' ,
64     & Nr, myIter, myThid )
65 jmc 1.19 CALL PLOT_FIELD_XYRL( etaN , 'Current etaN ' ,
66 cnh 1.10 & myIter, myThid )
67 adcroft 1.13
68 cnh 1.3 ENDIF
69    
70     C-- Write model state to binary file
71 adcroft 1.15 CALL WRITE_STATE( forceOutput, myCurrentTime, myIter, myThid )
72 cnh 1.5
73 jmc 1.19 #ifdef ALLOW_TIMEAVE
74 adcroft 1.16 C-- Do time averages
75     IF (taveFreq.GT.0.) THEN
76 jmc 1.19 CALL TIMEAVE_STATV_WRITE( myCurrentTime, myIter, myThid )
77 adcroft 1.16 ENDIF
78     #endif
79    
80     #ifdef ALLOW_GMREDI
81     C-- Do KPP diagnostics.
82 heimbach 1.17 IF (useGMRedi)
83 adcroft 1.16 & CALL GMREDI_DIAGS( myCurrentTime, myIter, myThid )
84     #endif
85    
86     #ifdef ALLOW_KPP
87     C-- Do KPP diagnostics.
88 heimbach 1.17 IF (useKPP)
89 adcroft 1.16 & CALL KPP_DO_DIAGS( myCurrentTime, myIter, myThid )
90     #endif
91    
92 cnh 1.1 RETURN
93     END
94    

  ViewVC Help
Powered by ViewVC 1.1.22