/[lmdze]/trunk/libf/dyn3d/dynredem1.f90
ViewVC logotype

Annotation of /trunk/libf/dyn3d/dynredem1.f90

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3 - (hide annotations)
Wed Feb 27 13:16:39 2008 UTC (16 years, 2 months ago) by guez
File size: 3266 byte(s)
Initial import
1 guez 3 SUBROUTINE dynredem1(fichnom,time, vcov,ucov,teta,q,nq,masse,ps)
2    
3     ! From dyn3d/dynredem.F,v 1.2 2004/06/22 11:45:30
4    
5     ! Ecriture du fichier de redémarrage au format NetCDF
6    
7     use dimens_m
8     use paramet_m
9     use comgeom
10     use temps
11     use abort_gcm_m, only: abort_gcm
12     use advtrac_m, only: tname
13    
14     IMPLICIT NONE
15     include "netcdf.inc"
16    
17     INTEGER nq
18     REAL, intent(in):: vcov(ip1jm,llm),ucov(ip1jmp1,llm)
19     REAL teta(ip1jmp1,llm)
20     REAL, intent(in):: ps(ip1jmp1)
21     real masse(ip1jmp1,llm)
22     REAL, intent(in):: q(ip1jmp1,llm,nq)
23     CHARACTER(len=*) fichnom
24    
25     REAL time
26     INTEGER nid, nvarid
27     INTEGER ierr
28     INTEGER iq
29     INTEGER length
30     PARAMETER (length = 100)
31     REAL tab_cntrl(length) ! tableau des parametres du run
32     character(len=20) modname
33     character(len=80) abort_message
34    
35     INTEGER nb
36     SAVE nb
37     DATA nb / 0 /
38    
39     !---------------------------------------------------------
40    
41     print *, "Call sequence information: dynredem1"
42    
43     modname = 'dynredem1'
44     ierr = NF_OPEN(fichnom, NF_WRITE, nid)
45     IF (ierr .NE. NF_NOERR) THEN
46     PRINT*, "Pb. d ouverture "//fichnom
47     stop 1
48     ENDIF
49    
50     ! Ecriture/extension de la coordonnee temps
51    
52     nb = nb + 1
53     ierr = NF_INQ_VARID(nid, "temps", nvarid)
54     IF (ierr .NE. NF_NOERR) THEN
55     print *, NF_STRERROR(ierr)
56     abort_message='Variable temps n est pas definie'
57     CALL abort_gcm(modname,abort_message,ierr)
58     ENDIF
59     ierr = NF_PUT_VAR1_REAL (nid,nvarid,nb,time)
60     PRINT*, "Enregistrement pour ", nb, time
61    
62     !
63     ! Re-ecriture du tableau de controle, itaufin n'est plus defini quand
64     ! on passe dans dynredem0
65     ierr = NF_INQ_VARID (nid, "controle", nvarid)
66     IF (ierr .NE. NF_NOERR) THEN
67     abort_message="dynredem1: Le champ <controle> est absent"
68     ierr = 1
69     CALL abort_gcm(modname,abort_message,ierr)
70     ENDIF
71     ierr = NF_GET_VAR_REAL(nid, nvarid, tab_cntrl)
72     tab_cntrl(31) = REAL(itau_dyn + itaufin)
73     ierr = NF_PUT_VAR_REAL (nid,nvarid,tab_cntrl)
74    
75     ! Ecriture des champs
76     !
77     ierr = NF_INQ_VARID(nid, "ucov", nvarid)
78     IF (ierr .NE. NF_NOERR) THEN
79     PRINT*, "Variable ucov n est pas definie"
80     stop 1
81     ENDIF
82     ierr = NF_PUT_VAR_REAL (nid,nvarid,ucov)
83    
84     ierr = NF_INQ_VARID(nid, "vcov", nvarid)
85     IF (ierr .NE. NF_NOERR) THEN
86     PRINT*, "Variable vcov n est pas definie"
87     stop 1
88     ENDIF
89     ierr = NF_PUT_VAR_REAL (nid,nvarid,vcov)
90    
91     ierr = NF_INQ_VARID(nid, "teta", nvarid)
92     IF (ierr .NE. NF_NOERR) THEN
93     PRINT*, "Variable teta n est pas definie"
94     stop 1
95     ENDIF
96     ierr = NF_PUT_VAR_REAL (nid,nvarid,teta)
97    
98     IF(nq.GE.1) THEN
99     do iq=1,nq
100     ierr = NF_INQ_VARID(nid, tname(iq), nvarid)
101     IF (ierr .NE. NF_NOERR) THEN
102     PRINT*, "Variable ", tname(iq), "n'est pas définie"
103     stop 1
104     ENDIF
105     ierr = NF_PUT_VAR_REAL (nid,nvarid,q(1,1,iq))
106     ENDDO
107     ENDIF
108     !
109     ierr = NF_INQ_VARID(nid, "masse", nvarid)
110     IF (ierr .NE. NF_NOERR) THEN
111     PRINT*, "Variable masse n est pas definie"
112     stop 1
113     ENDIF
114     ierr = NF_PUT_VAR_REAL (nid,nvarid,masse)
115     !
116     ierr = NF_INQ_VARID(nid, "ps", nvarid)
117     IF (ierr .NE. NF_NOERR) THEN
118     PRINT*, "Variable ps n est pas definie"
119     stop 1
120     ENDIF
121     ierr = NF_PUT_VAR_REAL (nid,nvarid,ps)
122    
123     ierr = NF_CLOSE(nid)
124    
125     END SUBROUTINE dynredem1

  ViewVC Help
Powered by ViewVC 1.1.21