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

Contents 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 - (show 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 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