/[MITgcm]/MITgcm/pkg/generic_advdiff/gad_write_pickup.F
ViewVC logotype

Annotation of /MITgcm/pkg/generic_advdiff/gad_write_pickup.F

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


Revision 1.1 - (hide annotations) (download)
Tue Jan 16 04:38:35 2007 UTC (17 years, 4 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint58w_post, checkpoint58x_post, checkpoint59e, checkpoint59d, checkpoint59g, checkpoint59f, checkpoint59a, checkpoint59c, checkpoint59b, checkpoint59m, checkpoint59l, checkpoint59n, checkpoint59i, checkpoint59h, checkpoint59k, checkpoint59j, checkpoint59, checkpoint58y_post, checkpoint58v_post
2nd-Order Moment Advection Scheme (Prather, 1986): first check-in
 - enable by setting #define GAD_ALLOW_SOM_ADVECT (in GAD_OPTIONS.h)
 - used without limiter (AdvScheme=80) or with Prather limiter (AdvScheme=81)
 - still needs work (not working with some options ; efficiency to improve)
   and serious testing.

1 jmc 1.1 C $Header: /u/gcmpack/MITgcm/pkg/ptracers/ptracers_write_pickup.F,v 1.3 2007/01/09 22:26:04 jmc Exp $
2     C $Name: $
3    
4     #include "GAD_OPTIONS.h"
5    
6     CBOP
7     C !ROUTINE: GAD_WRITE_PICKUP
8    
9     C !INTERFACE: ==========================================================
10     SUBROUTINE GAD_WRITE_PICKUP( suff,
11     I myTime, myIter, myThid )
12    
13     C !DESCRIPTION:
14     C Writes current state of 2nd.Order moments to a pickup file
15    
16     C !USES: ===============================================================
17     IMPLICIT NONE
18     #include "SIZE.h"
19     #include "EEPARAMS.h"
20     #include "PARAMS.h"
21     #include "GAD.h"
22     #include "GAD_SOM_VARS.h"
23     #ifdef ALLOW_MNC
24     #include "MNC_PARAMS.h"
25     #endif
26    
27     C !INPUT PARAMETERS: ===================================================
28     C suff :: suffix for pickup file (eg. ckptA or 0000000010)
29     C myTime :: model time
30     C myIter :: time-step number
31     C myThid :: thread number
32     CHARACTER*(*) suff
33     _RL myTime
34     INTEGER myIter
35     INTEGER myThid
36    
37     C !OUTPUT PARAMETERS: ==================================================
38     C none
39    
40     #ifdef GAD_ALLOW_SOM_ADVECT
41     C === Functions ====
42     INTEGER ILNBLNK
43     EXTERNAL ILNBLNK
44    
45     C !LOCAL VARIABLES: ====================================================
46     C n :: 2nd.O. moment loop index
47     C iRec :: record number
48     C fn :: character buffer for creating filename
49     C prec :: precision of pickup files
50     C msgBuf :: Informational/error meesage buffer
51     INTEGER n,prec,iRec,lChar
52     CHARACTER*(MAX_LEN_FNAM) fn
53     CHARACTER*(MAX_LEN_MBUF) msgBuf
54     CEOP
55    
56     #ifdef ALLOW_MNC
57     IF ( useMNC .AND. pickup_write_mnc ) THEN
58     IF ( tempSOM_Advection .OR. saltSOM_Advection ) THEN
59     WRITE(msgBuf,'(A)') 'GAD_WRITE_PICKUP: MNC not yet coded',
60     & ' => write bin file instead'
61     CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
62     & SQUEEZE_RIGHT, myThid)
63     ENDIF
64     ENDIF
65     #endif /* ALLOW_MNC */
66    
67     c IF ( pickup_write_mdsio ) THEN
68     IF ( .TRUE. ) THEN
69     lChar = ILNBLNK(suff)
70    
71     IF ( tempSOM_Advection ) THEN
72     C-- Pot. Temp. 2nd.Order moments
73     IF ( lChar.EQ.0 ) THEN
74     WRITE(fn,'(2A)') 'pickup_somT'
75     ELSE
76     WRITE(fn,'(2A)') 'pickup_somT.',suff(1:lChar)
77     ENDIF
78     prec = precFloat64
79     C Write 2nd Order moments as consecutive records
80     DO n=1,nSOM
81     iRec = n
82     CALL WRITE_REC_3D_RL( fn, prec, Nr,
83     I som_T(1-Olx,1-Oly,1,1,1,n),
84     I iRec, myIter, myThid )
85     ENDDO
86     ENDIF
87    
88     IF ( saltSOM_Advection ) THEN
89     C-- Salinity 2nd.Order moments
90     IF ( lChar.EQ.0 ) THEN
91     WRITE(fn,'(2A)') 'pickup_somS'
92     ELSE
93     WRITE(fn,'(2A)') 'pickup_somS.',suff(1:lChar)
94     ENDIF
95     prec = precFloat64
96     C Write 2nd Order moments as consecutive records
97     DO n=1,nSOM
98     iRec = n
99     CALL WRITE_REC_3D_RL( fn, prec, Nr,
100     I som_S(1-Olx,1-Oly,1,1,1,n),
101     I iRec, myIter, myThid )
102     ENDDO
103     ENDIF
104    
105     ENDIF
106    
107     #endif /* GAD_ALLOW_SOM_ADVECT */
108    
109     RETURN
110     END

  ViewVC Help
Powered by ViewVC 1.1.22