/[MITgcm]/MITgcm/pkg/longstep/longstep_readparms.F
ViewVC logotype

Contents of /MITgcm/pkg/longstep/longstep_readparms.F

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


Revision 1.1 - (show annotations) (download)
Fri Jun 26 23:10:10 2009 UTC (14 years, 10 months ago) by jahn
Branch: MAIN
CVS Tags: checkpoint62, checkpoint61v, checkpoint61w, checkpoint61t, checkpoint61u, checkpoint61s, checkpoint61z, checkpoint61x, checkpoint61y
add package longstep

1 C $Header$
2 C $Name$
3
4 #include "LONGSTEP_OPTIONS.h"
5
6 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
7 CBOP
8 C !ROUTINE: LONGSTEP_READPARMS
9
10 C !INTERFACE:
11 SUBROUTINE LONGSTEP_READPARMS( myThid )
12
13 C !DESCRIPTION:
14 C Initialize longstep parameters, read in data.longstep
15
16 C !USES:
17 IMPLICIT NONE
18 #include "SIZE.h"
19 #include "EEPARAMS.h"
20 #include "LONGSTEP_PARAMS.h"
21 #include "PARAMS.h"
22
23 C !INPUT PARAMETERS:
24 INTEGER myThid
25 CEOP
26
27 #ifdef ALLOW_LONGSTEP
28
29 C !LOCAL VARIABLES:
30 C k :: loop index
31 C iUnit :: unit number for I/O
32 C msgBuf :: message buffer
33 INTEGER k,iUnit
34 CHARACTER*(MAX_LEN_MBUF) msgBuf
35
36 C LS_nIter :: number of dynamics time steps between ptracer steps
37 C LS_afterTS :: use T,S at end of time step (after thermodynamics)
38 C LS_staggerTimeStep :: use U,V,W,T,S at end of time step
39 NAMELIST /LONGSTEP_PARM01/
40 & LS_nIter, LS_staggerTimeStep, LS_afterTS
41
42 _BEGIN_MASTER(myThid)
43
44 C Set defaults values for parameters in LONGSTEP_PARAMS.h
45 LS_nIter = 1
46 LS_staggerTimeStep = .FALSE.
47 LS_afterTS = .FALSE.
48
49 C Open and read the data.longstep file
50 WRITE(msgBuf,'(A)') ' LONGSTEP_READPARMS: opening data.longstep'
51 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
52 & SQUEEZE_RIGHT , myThid )
53 CALL OPEN_COPY_DATA_FILE(
54 I 'data.longstep', 'LONGSTEP_READPARMS',
55 O iUnit,
56 I myThid )
57 READ(UNIT=iUnit,NML=LONGSTEP_PARM01)
58 WRITE(msgBuf,'(A)')
59 & ' LONGSTEP_READPARMS: finished reading data.longstep'
60 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
61 & SQUEEZE_RIGHT , myThid )
62
63 C Close the open data file
64 CLOSE(iUnit)
65
66 C Now set-up any remaining parameters that result from the input
67 C parameters
68
69 C can only do LS_staggerTimeStep if staggerTimeStep
70 IF ( LS_staggerTimeStep .AND. .NOT.staggerTimeStep ) THEN
71 WRITE(msgBuf,'(2A)')
72 & ' LONGSTEP_READPARMS: LS_staggerTimeStep requires',
73 & ' staggerTimeStep.'
74 CALL PRINT_ERROR( msgBuf, myThid )
75 STOP 'ABNORMAL END: S/R LONGSTEP_READPARMS'
76 ENDIF
77
78 C-- Print a summary of longstep parameter values:
79 iUnit = standardMessageUnit
80 WRITE(msgBuf,'(A)') '// ==================================='
81 CALL PRINT_MESSAGE( msgBuf, iUnit, SQUEEZE_RIGHT , myThid )
82 WRITE(msgBuf,'(A)') '// longstep parameters '
83 CALL PRINT_MESSAGE( msgBuf, iUnit, SQUEEZE_RIGHT , myThid )
84 WRITE(msgBuf,'(A)') '// ==================================='
85 CALL PRINT_MESSAGE( msgBuf, iUnit, SQUEEZE_RIGHT , myThid )
86 CALL WRITE_0D_I( LS_nIter, INDEX_NONE,
87 & 'LS_nIter =',
88 & ' /* number of dynamics steps between ptracer steps */')
89 CALL WRITE_0D_L( LS_staggerTimeStep, INDEX_NONE,
90 & 'LS_staggerTimeStep =',
91 & ' /* average U,V,W,T,S at end of time step */')
92 CALL WRITE_0D_L( LS_afterTS, INDEX_NONE,
93 & 'LS_afterTS =',
94 & ' /* average T,S at end of time step */')
95 WRITE(msgBuf,'(A)') ' -----------------------------------'
96 CALL PRINT_MESSAGE( msgBuf, iUnit, SQUEEZE_RIGHT, myThid )
97
98 _END_MASTER(myThid)
99 C Everyone else must wait for the parameters to be loaded
100 _BARRIER
101
102 #endif /* ALLOW_LONGSTEP */
103
104 RETURN
105 END
106

  ViewVC Help
Powered by ViewVC 1.1.22