13 include
"dimensions.h"
22 REAL,
DIMENSION(iip1,jjp1),
INTENT(IN) :: masque
23 REAL,
DIMENSION(iip1,jjp1),
INTENT(IN) :: phis
25 REAL temp(
iim+1,jjm+1)
27 INTEGER ncid_out,rcode_out
28 INTEGER out_lonuid,out_lonvid,out_latuid,out_latvid,out_levid
30 INTEGER out_lonudim,out_lonvdim
31 INTEGER out_latudim,out_latvdim,out_dim(3)
34 INTEGER start(4),COUNT(4)
37 REAL rlatudeg(
jjp1),rlatvdeg(jjm),rlevdeg(
llm)
38 REAL rlonudeg(iip1),rlonvdeg(iip1)
40 REAL dlon1(iip1),dlon2(iip1),dlat1(
jjp1),dlat2(
jjp1)
41 REAL acoslat,dxkm,dykm,resol(iip1,
jjp1)
42 REAL,
DIMENSION(iip1,jjp1) :: phis_loc
43 INTEGER masque_int(iip1,
jjp1)
47 INTEGER :: presnivs_id
71 rlonudeg(i)=
rlonu(i)*180./
pi + 360.
72 rlonvdeg(i)=
rlonv(i)*180./
pi + 360.
80 status=nf_create(
'grilles_gcm.nc',nf_clobber,ncid_out)
82 status=nf_def_dim(ncid_out,
'lonu',
iim+1,out_lonudim)
84 status=nf_def_dim(ncid_out,
'lonv',
iim+1,out_lonvdim)
86 status=nf_def_dim(ncid_out,
'latu',jjm+1,out_latudim)
88 status=nf_def_dim(ncid_out,
'latv',jjm,out_latvdim)
93 status=nf_def_var(ncid_out,
'lonu',nf_float,1,out_lonudim, out_lonuid)
95 status=nf_put_att_text(ncid_out,out_lonuid,
'units', 12,
'degrees_east')
96 status=nf_put_att_text(ncid_out,out_lonuid,
'long_name',9,
'Longitude en u')
99 status=nf_def_var(ncid_out,
'lonv',nf_float,1,out_lonvdim, out_lonvid)
101 status=nf_put_att_text(ncid_out,out_lonvid,
'units', 12,
'degrees_east')
102 status=nf_put_att_text(ncid_out,out_lonvid,
'long_name', 9,
'Longitude en v')
105 status=nf_def_var(ncid_out,
'latu',nf_float,1,out_latudim, out_latuid)
107 status=nf_put_att_text(ncid_out,out_latuid,
'units', 13,
'degrees_north')
108 status=nf_put_att_text(ncid_out,out_latuid,
'long_name', 8,
'Latitude en u')
111 status=nf_def_var(ncid_out,
'latv',nf_float,1,out_latvdim, out_latvid)
113 status=nf_put_att_text(ncid_out,out_latvid,
'units', 13,
'degrees_north')
114 status=nf_put_att_text(ncid_out,out_latvid,
'long_name', 8,
'Latitude en v')
117 out_dim(1)=out_lonudim
118 out_dim(2)=out_latudim
119 status=nf_def_var(ncid_out,
'grille_u',nf_float,2,out_dim, out_varid)
121 status=nf_put_att_text(ncid_out,out_varid,
'units', 6,
'Kelvin')
122 status=nf_put_att_text(ncid_out,out_varid,
'long_name', 16,
'Grille aux point u')
125 out_dim(1)=out_lonvdim
126 out_dim(2)=out_latvdim
127 status=nf_def_var(ncid_out,
'grille_v',nf_float,2,out_dim, out_varid)
129 status=nf_put_att_text(ncid_out,out_varid,
'units', 6,
'Kelvin')
130 status=nf_put_att_text(ncid_out,out_varid,
'long_name', 16,
'Grille aux point v')
133 out_dim(1)=out_lonvdim
134 out_dim(2)=out_latudim
135 status=nf_def_var(ncid_out,
'grille_s',nf_float,2,out_dim, out_varid)
137 status=nf_put_att_text(ncid_out,out_varid,
'units', 6,
'Kelvin')
138 status=nf_put_att_text(ncid_out,out_varid,
'long_name',16,
'Grille aux point u')
140 status=nf_enddef(ncid_out)
141 write(*,*)
"COUCOU 6"
149 status=nf_put_vara_double(ncid_out,out_lonuid,1,
iim+1,rlonudeg)
151 status=nf_put_vara_double(ncid_out,out_lonvid,1,
iim+1,rlonvdeg)
153 status=nf_put_vara_double(ncid_out,out_latuid,1,jjm+1,rlatudeg)
155 status=nf_put_vara_double(ncid_out,out_latvid,1,jjm,rlatvdeg)
158 status=nf_put_vara_real(ncid_out,out_lonuid,1,
iim+1,rlonudeg)
160 status=nf_put_vara_real(ncid_out,out_lonvid,1,
iim+1,rlonvdeg)
162 status=nf_put_vara_real(ncid_out,out_latuid,1,jjm+1,rlatudeg)
164 status=nf_put_vara_real(ncid_out,out_latvid,1,jjm,rlatvdeg)
180 temp(i,j)=mod(i,2)+mod(j,2)
185 status=nf_put_vara_double(ncid_out,out_varid,start, count,temp)
188 status=nf_put_vara_real(ncid_out,out_varid,start, count,temp)
196 phis_loc(:,:) = phis(:,:)/
g
199 status = nf_redef(ncid_out)
201 status=nf_def_dim(ncid_out,
'lev',
llm,out_levdim)
203 status=nf_def_var(ncid_out,
'presnivs',nf_float,1,out_levdim,&
208 out_dim(1)=out_lonvdim
209 out_dim(2)=out_latudim
211 status = nf_def_var(ncid_out,
'phis',nf_float,2,out_dim,phis_id)
213 status = nf_def_var(ncid_out,
'aire',nf_float,2,out_dim,area_id)
215 status = nf_def_var(ncid_out,
'mask',nf_int ,2,out_dim,mask_id)
218 status=nf_enddef(ncid_out)
223 status=nf_put_vara_double(ncid_out,presnivs_id,1,
llm,rlevdeg)
226 status=nf_put_vara_real(ncid_out,out_levid,1,
llm,rlevdeg)
239 status = nf_put_vara_double(ncid_out, phis_id,start,count, phis_loc)
241 status = nf_put_vara_double(ncid_out, area_id,start,count,
aire)
243 masque_int(:,:) = nint(masque(:,:))
244 status = nf_put_vara_int(ncid_out, mask_id,start,count,masque_int)
248 CALL ncclos(ncid_out,rcode_out)
258 IF (status.NE.nf_noerr)
THEN
259 print *,nf_strerror(status)
260 CALL abort_gcm(
'grilles_gcm_netcdf',
'netcdf error',1)
subroutine handle_err(status)
!$Id mode_top_bound COMMON comconstr g
subroutine grilles_gcm_netcdf_sub(masque, phis)
!$Id mode_top_bound COMMON comconstr kappa
subroutine abort_gcm(modname, message, ierr)
!$Id Turb_fcg_gcssold get_uvd hqturb_gcssold endif!large scale llm day day1 day day1 *dt_toga endif!time annee_ref dt_toga u_toga vq_toga w_prof vq_prof llm day day1 day day1 *dt_dice endif!time annee_ref dt_dice swup_dice vg_dice omega_dice tg_prof vg_profd w_profd omega_profd!do llm!print llm l llm
!$Id mode_top_bound COMMON comconstr && pi
!$Header!CDK comgeom COMMON comgeom aire
!$Header!CDK comgeom COMMON comgeom rlatu
!$Id mode_top_bound COMMON comconstr rad
!$Id mode_top_bound COMMON comconstr cpp
!$Id mode_top_bound COMMON comconstr daysec
subroutine conf_gcm(tapedef, etatinit)
!$Header!CDK comgeom COMMON comgeom rlonu
!$Header!CDK comgeom COMMON comgeom rlatv
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL ulevSTD CALL &zphi philevSTD CALL &zx_rh rhlevSTD!DO klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon du jour ou toutes les read_climoz CALL true
c c zjulian c cym CALL iim cym klev iim
!$Header!CDK comgeom COMMON comgeom rlonv