Changeset 1694 for LMDZ5/trunk/libf/phylmd
- Timestamp:
- Dec 17, 2012, 4:33:24 PM (12 years ago)
- Location:
- LMDZ5/trunk/libf/phylmd
- Files:
-
- 1 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/phylmd/calcul_STDlev.h
r1418 r1694 2 2 c $Header$ 3 3 c 4 c5 4 cIM on initialise les variables 5 c 6 missing_val=nf90_fill_real 7 c 8 cIM freq_moyNMC = frequences auxquelles on moyenne les champs accumules 9 cIM sur les niveaux de pression standard du NMC 10 DO n=1, nout 11 freq_moyNMC(n)=freq_outNMC(n)/freq_calNMC(n) 12 ENDDO 6 13 c 7 14 CALL ini_undefSTD(itap,freq_outNMC) … … 157 164 $ lwup,LWup200) 158 165 c 166 twriteSTD(:,:,1)=tsumSTD(:,:,1) 167 qwriteSTD(:,:,1)=qsumSTD(:,:,1) 168 rhwriteSTD(:,:,1)=rhsumSTD(:,:,1) 169 phiwriteSTD(:,:,1)=phisumSTD(:,:,1) 170 uwriteSTD(:,:,1)=usumSTD(:,:,1) 171 vwriteSTD(:,:,1)=vsumSTD(:,:,1) 172 wwriteSTD(:,:,1)=wsumSTD(:,:,1) 173 174 twriteSTD(:,:,2)=tsumSTD(:,:,2) 175 qwriteSTD(:,:,2)=qsumSTD(:,:,2) 176 rhwriteSTD(:,:,2)=rhsumSTD(:,:,2) 177 phiwriteSTD(:,:,2)=phisumSTD(:,:,2) 178 uwriteSTD(:,:,2)=usumSTD(:,:,2) 179 vwriteSTD(:,:,2)=vsumSTD(:,:,2) 180 wwriteSTD(:,:,2)=wsumSTD(:,:,2) 181 182 twriteSTD(:,:,3)=tlevSTD(:,:) 183 qwriteSTD(:,:,3)=qlevSTD(:,:) 184 rhwriteSTD(:,:,3)=rhlevSTD(:,:) 185 phiwriteSTD(:,:,3)=philevSTD(:,:) 186 uwriteSTD(:,:,3)=ulevSTD(:,:) 187 vwriteSTD(:,:,3)=vlevSTD(:,:) 188 wwriteSTD(:,:,3)=wlevSTD(:,:) 189 190 twriteSTD(:,:,4)=tlevSTD(:,:) 191 qwriteSTD(:,:,4)=qlevSTD(:,:) 192 rhwriteSTD(:,:,4)=rhlevSTD(:,:) 193 phiwriteSTD(:,:,4)=philevSTD(:,:) 194 uwriteSTD(:,:,4)=ulevSTD(:,:) 195 vwriteSTD(:,:,4)=vlevSTD(:,:) 196 wwriteSTD(:,:,4)=wlevSTD(:,:) 197 c 198 cIM initialisation 5eme fichier de sortie 199 twriteSTD(:,:,5)=tlevSTD(:,:) 200 qwriteSTD(:,:,5)=qlevSTD(:,:) 201 rhwriteSTD(:,:,5)=rhlevSTD(:,:) 202 phiwriteSTD(:,:,5)=philevSTD(:,:) 203 uwriteSTD(:,:,5)=ulevSTD(:,:) 204 vwriteSTD(:,:,5)=vlevSTD(:,:) 205 wwriteSTD(:,:,5)=wlevSTD(:,:) 206 c 207 cIM initialisation 6eme fichier de sortie 208 twriteSTD(:,:,6)=tlevSTD(:,:) 209 qwriteSTD(:,:,6)=qlevSTD(:,:) 210 rhwriteSTD(:,:,6)=rhlevSTD(:,:) 211 phiwriteSTD(:,:,6)=philevSTD(:,:) 212 uwriteSTD(:,:,6)=ulevSTD(:,:) 213 vwriteSTD(:,:,6)=vlevSTD(:,:) 214 wwriteSTD(:,:,6)=wlevSTD(:,:) 215 cIM for NMC files 216 DO n=1, nlevSTD3 217 DO k=1, nlevSTD 218 if(rlevSTD3(n).EQ.rlevSTD(k)) THEN 219 twriteSTD3(:,n)=tlevSTD(:,k) 220 qwriteSTD3(:,n)=qlevSTD(:,k) 221 rhwriteSTD3(:,n)=rhlevSTD(:,k) 222 phiwriteSTD3(:,n)=philevSTD(:,k) 223 uwriteSTD3(:,n)=ulevSTD(:,k) 224 vwriteSTD3(:,n)=vlevSTD(:,k) 225 wwriteSTD3(:,n)=wlevSTD(:,k) 226 endif !rlevSTD3(n).EQ.rlevSTD(k) 227 ENDDO 228 ENDDO 229 c 230 DO n=1, nlevSTD8 231 DO k=1, nlevSTD 232 if(rlevSTD8(n).EQ.rlevSTD(k)) THEN 233 tnondefSTD8(:,n)=tnondef(:,k,2) 234 twriteSTD8(:,n)=tsumSTD(:,k,2) 235 qwriteSTD8(:,n)=qsumSTD(:,k,2) 236 rhwriteSTD8(:,n)=rhsumSTD(:,k,2) 237 phiwriteSTD8(:,n)=phisumSTD(:,k,2) 238 uwriteSTD8(:,n)=usumSTD(:,k,2) 239 vwriteSTD8(:,n)=vsumSTD(:,k,2) 240 wwriteSTD8(:,n)=wsumSTD(:,k,2) 241 endif !rlevSTD8(n).EQ.rlevSTD(k) 242 ENDDO 243 ENDDO -
LMDZ5/trunk/libf/phylmd/physiq.F
r1689 r1694 257 257 c variables a une pression donnee 258 258 c 259 real rlevSTD(nlevSTD) 260 DATA rlevSTD/100000., 92500., 85000., 70000., 261 .60000., 50000., 40000., 30000., 25000., 20000., 262 .15000., 10000., 7000., 5000., 3000., 2000., 1000./ 263 SAVE rlevstd 264 c$OMP THREADPRIVATE(rlevstd) 265 CHARACTER*4 clevSTD(nlevSTD) 266 DATA clevSTD/'1000','925 ','850 ','700 ','600 ', 267 .'500 ','400 ','300 ','250 ','200 ','150 ','100 ', 268 .'70 ','50 ','30 ','20 ','10 '/ 269 SAVE clevSTD 270 c$OMP THREADPRIVATE(clevSTD) 259 #include "declare_STDlev.h" 271 260 c 272 261 CHARACTER*4 bb2 273 262 CHARACTER*2 bb3 274 275 real twriteSTD(klon,nlevSTD,nfiles)276 real qwriteSTD(klon,nlevSTD,nfiles)277 real rhwriteSTD(klon,nlevSTD,nfiles)278 real phiwriteSTD(klon,nlevSTD,nfiles)279 real uwriteSTD(klon,nlevSTD,nfiles)280 real vwriteSTD(klon,nlevSTD,nfiles)281 real wwriteSTD(klon,nlevSTD,nfiles)282 cIM for NMC files283 REAL geo500(klon)284 real :: rlevSTD3(nlevSTD3)285 DATA rlevSTD3/85000., 50000., 25000./286 SAVE rlevSTD3287 c$OMP THREADPRIVATE(rlevSTD3)288 real :: rlevSTD8(nlevSTD8)289 DATA rlevSTD8/100000., 85000., 70000., 50000., 25000., 10000.,290 $ 5000., 1000./291 SAVE rlevSTD8292 c$OMP THREADPRIVATE(rlevSTD8)293 real twriteSTD3(klon,nlevSTD3)294 real qwriteSTD3(klon,nlevSTD3)295 real rhwriteSTD3(klon,nlevSTD3)296 real phiwriteSTD3(klon,nlevSTD3)297 real uwriteSTD3(klon,nlevSTD3)298 real vwriteSTD3(klon,nlevSTD3)299 real wwriteSTD3(klon,nlevSTD3)300 c301 real tnondefSTD8(klon,nlevSTD8)302 real twriteSTD8(klon,nlevSTD8)303 real qwriteSTD8(klon,nlevSTD8)304 real rhwriteSTD8(klon,nlevSTD8)305 real phiwriteSTD8(klon,nlevSTD8)306 real uwriteSTD8(klon,nlevSTD8)307 real vwriteSTD8(klon,nlevSTD8)308 real wwriteSTD8(klon,nlevSTD8)309 c310 c plevSTD3 END311 c312 c nout : niveau de output des variables a une pression donnee313 logical oknondef(klon,nlevSTD,nout)314 c315 c les produits uvSTD, vqSTD, .., T2STD sont calcules316 c a partir des valeurs instantannees toutes les 6 h317 c qui sont moyennees sur le mois318 263 c 319 264 #include "radopt.h" … … 1050 995 REAL zx_tmp_fi3d(klon,klev) ! variable temporaire pour champs 3D 1051 996 REAL zx_tmp_fi3d1(klon,klev+1) !variable temporaire pour champs 3D (kelvp1) 1052 c#ifdef histNMC1053 cym A voir plus tard !!!!1054 cym REAL zx_tmp_NC(iim,jjmp1,nlevSTD)1055 REAL zx_tmp_fiNC(klon,nlevSTD)1056 c#endif1057 997 REAL(KIND=8) zx_tmp2_fi3d(klon,klev) ! variable temporaire pour champs 3D 1058 998 REAL zx_tmp_2d(iim,jjmp1), zx_tmp_3d(iim,jjmp1,klev) 1059 999 REAL zx_lon(iim,jjmp1), zx_lat(iim,jjmp1) 1060 cIM for NMC files1061 REAL missing_val1062 REAL, SAVE :: freq_moyNMC(nout)1063 c$OMP THREADPRIVATE(freq_moyNMC)1064 1000 c 1065 1001 INTEGER nid_day, nid_mth, nid_ins, nid_mthnmc, nid_daynmc … … 1255 1191 integer iostat 1256 1192 1257 cIM for NMC files1258 missing_val=nf90_fill_real1259 1193 c====================================================================== 1260 1194 ! Gestion calendrier : mise a jour du module phys_cal_mod … … 1326 1260 call phys_output_var_init 1327 1261 print*, '=================================================' 1328 cIM for NMC files 1329 cIM freq_moyNMC = frequences auxquelles on moyenne les champs accumules 1330 cIM sur les niveaux de pression standard du NMC 1331 DO n=1, nout 1332 freq_moyNMC(n)=freq_outNMC(n)/freq_calNMC(n) 1333 ENDDO 1334 c 1335 cIM beg 1262 c 1336 1263 dnwd0=0.0 1337 1264 ftd=0.0 … … 3788 3715 c 3789 3716 #include "calcul_STDlev.h" 3790 twriteSTD(:,:,1)=tsumSTD(:,:,1)3791 qwriteSTD(:,:,1)=qsumSTD(:,:,1)3792 rhwriteSTD(:,:,1)=rhsumSTD(:,:,1)3793 phiwriteSTD(:,:,1)=phisumSTD(:,:,1)3794 uwriteSTD(:,:,1)=usumSTD(:,:,1)3795 vwriteSTD(:,:,1)=vsumSTD(:,:,1)3796 wwriteSTD(:,:,1)=wsumSTD(:,:,1)3797 3798 twriteSTD(:,:,2)=tsumSTD(:,:,2)3799 qwriteSTD(:,:,2)=qsumSTD(:,:,2)3800 rhwriteSTD(:,:,2)=rhsumSTD(:,:,2)3801 phiwriteSTD(:,:,2)=phisumSTD(:,:,2)3802 uwriteSTD(:,:,2)=usumSTD(:,:,2)3803 vwriteSTD(:,:,2)=vsumSTD(:,:,2)3804 wwriteSTD(:,:,2)=wsumSTD(:,:,2)3805 3806 twriteSTD(:,:,3)=tlevSTD(:,:)3807 qwriteSTD(:,:,3)=qlevSTD(:,:)3808 rhwriteSTD(:,:,3)=rhlevSTD(:,:)3809 phiwriteSTD(:,:,3)=philevSTD(:,:)3810 uwriteSTD(:,:,3)=ulevSTD(:,:)3811 vwriteSTD(:,:,3)=vlevSTD(:,:)3812 wwriteSTD(:,:,3)=wlevSTD(:,:)3813 3814 twriteSTD(:,:,4)=tlevSTD(:,:)3815 qwriteSTD(:,:,4)=qlevSTD(:,:)3816 rhwriteSTD(:,:,4)=rhlevSTD(:,:)3817 phiwriteSTD(:,:,4)=philevSTD(:,:)3818 uwriteSTD(:,:,4)=ulevSTD(:,:)3819 vwriteSTD(:,:,4)=vlevSTD(:,:)3820 wwriteSTD(:,:,4)=wlevSTD(:,:)3821 c3822 cIM initialisation 5eme fichier de sortie3823 twriteSTD(:,:,5)=tlevSTD(:,:)3824 qwriteSTD(:,:,5)=qlevSTD(:,:)3825 rhwriteSTD(:,:,5)=rhlevSTD(:,:)3826 phiwriteSTD(:,:,5)=philevSTD(:,:)3827 uwriteSTD(:,:,5)=ulevSTD(:,:)3828 vwriteSTD(:,:,5)=vlevSTD(:,:)3829 wwriteSTD(:,:,5)=wlevSTD(:,:)3830 c3831 cIM initialisation 6eme fichier de sortie3832 twriteSTD(:,:,6)=tlevSTD(:,:)3833 qwriteSTD(:,:,6)=qlevSTD(:,:)3834 rhwriteSTD(:,:,6)=rhlevSTD(:,:)3835 phiwriteSTD(:,:,6)=philevSTD(:,:)3836 uwriteSTD(:,:,6)=ulevSTD(:,:)3837 vwriteSTD(:,:,6)=vlevSTD(:,:)3838 wwriteSTD(:,:,6)=wlevSTD(:,:)3839 cIM for NMC files3840 DO n=1, nlevSTD33841 DO k=1, nlevSTD3842 if(rlevSTD3(n).EQ.rlevSTD(k)) THEN3843 twriteSTD3(:,n)=tlevSTD(:,k)3844 qwriteSTD3(:,n)=qlevSTD(:,k)3845 rhwriteSTD3(:,n)=rhlevSTD(:,k)3846 phiwriteSTD3(:,n)=philevSTD(:,k)3847 uwriteSTD3(:,n)=ulevSTD(:,k)3848 vwriteSTD3(:,n)=vlevSTD(:,k)3849 wwriteSTD3(:,n)=wlevSTD(:,k)3850 endif !rlevSTD3(n).EQ.rlevSTD(k)3851 ENDDO3852 ENDDO3853 c3854 DO n=1, nlevSTD83855 DO k=1, nlevSTD3856 if(rlevSTD8(n).EQ.rlevSTD(k)) THEN3857 tnondefSTD8(:,n)=tnondef(:,k,2)3858 twriteSTD8(:,n)=tsumSTD(:,k,2)3859 qwriteSTD8(:,n)=qsumSTD(:,k,2)3860 rhwriteSTD8(:,n)=rhsumSTD(:,k,2)3861 phiwriteSTD8(:,n)=phisumSTD(:,k,2)3862 uwriteSTD8(:,n)=usumSTD(:,k,2)3863 vwriteSTD8(:,n)=vsumSTD(:,k,2)3864 wwriteSTD8(:,n)=wsumSTD(:,k,2)3865 endif !rlevSTD8(n).EQ.rlevSTD(k)3866 ENDDO3867 ENDDO3868 3717 c 3869 3718 c slp sea level pressure
Note: See TracChangeset
for help on using the changeset viewer.