12 #include "dimensions.h"
23 integer*4 ncid_out,rcode_out
24 integer*4 out_lonuid,out_lonvid,out_latuid,out_latvid
26 integer*4 out_lonudim,out_lonvdim
27 integer*4 out_latudim,out_latvdim,out_dim(3)
31 REAL clesphy0( longcles )
33 integer start(4),count(4)
36 real rlatudeg(
jjp1),rlatvdeg(jjm)
37 real rlonudeg(iip1),rlonvdeg(iip1)
39 real dlon1(iip1),dlon2(iip1),dlat1(
jjp1),dlat2(
jjp1)
40 real acoslat,dxkm,dykm,resol(iip1,
jjp1)
61 CALL
conf_gcm( 99, .true. , clesphy0 )
85 fich_out=
'grilles_gcm.nc'
87 status=nf_create(fich_out,nf_noclobber,ncid_out)
88 status=nf_def_dim(ncid_out,
'lonu',
iim+1,out_lonudim)
89 status=nf_def_dim(ncid_out,
'lonv',
iim+1,out_lonvdim)
90 status=nf_def_dim(ncid_out,
'latu',jjm+1,out_latudim)
91 status=nf_def_dim(ncid_out,
'latv',jjm,out_latvdim)
96 print *,
'OUTID: ',ncid_out
97 status=nf_def_var(ncid_out,
'lonu',nf_float,1,out_lonudim,
100 status=nf_put_att_text(ncid_out,out_lonuid,
'units',
102 status=nf_put_att_text(ncid_out,out_lonuid,
'long_name',
103 % 9,
'Longitude en u')
106 print *,
'OUTID: ',ncid_out
107 status=nf_def_var(ncid_out,
'lonv',nf_float,1,out_lonvdim,
110 status=nf_put_att_text(ncid_out,out_lonvid,
'units',
112 status=nf_put_att_text(ncid_out,out_lonvid,
'long_name',
113 % 9,
'Longitude en v')
116 status=nf_def_var(ncid_out,
'latu',nf_float,1,out_latudim,
119 status=nf_put_att_text(ncid_out,out_latuid,
'units',
120 % 13,
'degrees_north')
121 status=nf_put_att_text(ncid_out,out_latuid,
'long_name',
125 status=nf_def_var(ncid_out,
'latv',nf_float,1,out_latvdim,
128 status=nf_put_att_text(ncid_out,out_latvid,
'units',
129 % 13,
'degrees_north')
130 status=nf_put_att_text(ncid_out,out_latvid,
'long_name',
134 out_dim(1)=out_lonudim
135 out_dim(2)=out_latudim
136 status=nf_def_var(ncid_out,
'grille_u',nf_float,2,out_dim,
139 status=nf_put_att_text(ncid_out,out_varid,
'units',
141 status=nf_put_att_text(ncid_out,out_varid,
'long_name',
142 % 16,
'Grille aux point u')
145 out_dim(1)=out_lonvdim
146 out_dim(2)=out_latvdim
147 status=nf_def_var(ncid_out,
'grille_v',nf_float,2,out_dim,
150 status=nf_put_att_text(ncid_out,out_varid,
'units',
152 status=nf_put_att_text(ncid_out,out_varid,
'long_name',
153 % 16,
'Grille aux point v')
156 out_dim(1)=out_lonvdim
157 out_dim(2)=out_latudim
158 status=nf_def_var(ncid_out,
'grille_s',nf_float,2,out_dim,
161 status=nf_put_att_text(ncid_out,out_varid,
'units',
163 status=nf_put_att_text(ncid_out,out_varid,
'long_name',
164 % 16,
'Grille aux point u')
168 status=nf_enddef(ncid_out)
175 status=nf_put_vara_double(ncid_out,out_lonuid,1,
iim+1,rlonudeg)
176 status=nf_put_vara_double(ncid_out,out_lonvid,1,
iim+1,rlonvdeg)
177 status=nf_put_vara_double(ncid_out,out_latuid,1,jjm+1,rlatudeg)
178 status=nf_put_vara_double(ncid_out,out_latvid,1,jjm,rlatvdeg)
180 status=nf_put_vara_real(ncid_out,out_lonuid,1,
iim+1,rlonudeg)
181 status=nf_put_vara_real(ncid_out,out_lonvid,1,
iim+1,rlonvdeg)
182 status=nf_put_vara_real(ncid_out,out_latuid,1,jjm+1,rlatudeg)
183 status=nf_put_vara_real(ncid_out,out_latvid,1,jjm,rlatvdeg)
203 status=nf_put_vara_double(ncid_out,out_varid,start,
206 status=nf_put_vara_real(ncid_out,out_varid,start,
212 call ncclos(ncid_out,rcode_out)
213 write(*,*)
'Fermeture: ',fich_out
218 open (20,file=
'grille.dat',form=
'unformatted',access=
'direct'
220 write(20,rec=1) ((
REAL(mod(i,2)+mod(j,2)),
i=1,iip1),
j=1,
jjp1)
221 write(20,rec=2) ((
REAL(mod(i,2)*mod(j,2)),
i=1,iip1),
j=1,
jjp1)
232 acoslat=6400.*cos(
rlatu(
j))
235 resol(
i,
j)=sqrt(dykm*dykm+dxkm*dxkm)
237 resol(1,
j)=resol(iip1,
j)
239 write(20,rec=3) resol
242 write(20,rec=4) ((dlon1(
i),
i=1,iip1),
j=1,
jjp1)
243 write(20,rec=5) ((dlon1(
i)*
pi/180.*0.001*
245 write(20,rec=6) ((dlon2(
i),
i=1,iip1),
j=1,
jjp1)
246 write(20,rec=7) ((dlat1(
j),
i=1,iip1),
j=1,
jjp1)
247 write(20,rec=8) ((dlat1(
j)*
pi/180.*
rad*0.001,
i=1,iip1),
j=1,
jjp1)
248 write(20,rec=9) ((dlat2(
j),
i=1,iip1),
j=1,
jjp1)
250 print*,
'I, LON, DX (km)'
255 print*,
'J, LAT, DY (km)'
260 open (21,file=
'grille.ctl',form=
'formatted')
263 write(21,
'(a5,1x,a40)')
264 &
'DSET ',
'^grille.dat'
266 write(21,
'(a12)')
'UNDEF 1.0E30'
267 write(21,
'(a5,1x,a40)')
'TITLE ',
'grille'
271 write(21,
'(a4,i10,a30)')
272 &
'TDEF ',1,
' LINEAR 23OCT1994 3hr '
273 write(21,
'(a4,2x,i5)')
'VARS',9
274 write(21,
'(a18)')
'grille 0 99 grille'
275 write(21,
'(a18)')
'gril 0 99 gril '
276 write(21,
'(a29)')
'resol 0 99 resolution (km) '
277 write(21,
'(a18)')
'dlon1 0 99 dlon1 '
278 write(21,
'(a20)')
'dx 0 99 dx (km) '
279 write(21,
'(a18)')
'dlon2 0 99 dlon2 '
280 write(21,
'(a18)')
'dlat1 0 99 dlat1 '
281 write(21,
'(a20)')
'dy 0 99 dy (km) '
282 write(21,
'(a18)')
'dlat2 0 99 dlat2 '
283 write(21,
'(a7)')
'ENDVARS'
295 #include "netcdf.inc"
299 print *,
'handle code err: ',nf_noerr
300 IF (status.NE.nf_noerr)
THEN
301 print *,nf_strerror(status)