Changeset 2283 for LMDZ5/branches/LMDZ6_rc0/libf
- Timestamp:
- May 18, 2015, 5:25:29 PM (10 years ago)
- Location:
- LMDZ5/branches/LMDZ6_rc0/libf
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/branches/LMDZ6_rc0/libf/bibio/wxios.F90
r2160 r2283 21 21 CHARACTER(len=100) :: g_field_name = "nofield" 22 22 !$OMP THREADPRIVATE(g_flag_xml,g_field_name) 23 23 REAL :: missing_val_omp 24 REAL :: missing_val 25 !$OMP THREADPRIVATE(missing_val) 24 26 25 27 CONTAINS -
LMDZ5/branches/LMDZ6_rc0/libf/phylmd/calcul_STDlev.h
r1921 r2283 4 4 !IM on initialise les variables 5 5 ! 6 6 ! missing_val=nf90_fill_real 7 7 ! 8 8 CALL ini_undefSTD(itap,itapm1) -
LMDZ5/branches/LMDZ6_rc0/libf/phylmd/declare_STDlev.h
r1910 r2283 57 57 REAL zx_tmp_fiNC(klon,nlevSTD) 58 58 59 59 ! REAL missing_val 60 60 REAL, SAVE :: freq_moyNMC(nout) 61 61 !$OMP THREADPRIVATE(freq_moyNMC) -
LMDZ5/branches/LMDZ6_rc0/libf/phylmd/moy_undefSTD.F90
r1999 r2283 5 5 USE netcdf 6 6 USE dimphy 7 #ifdef CPP_IOIPSL 7 8 USE phys_state_var_mod 9 #endif 10 8 11 USE phys_cal_mod, ONLY: mth_len 9 12 IMPLICIT NONE 10 13 include "clesphys.h" 14 #ifdef CPP_IOIPSL 15 REAL :: missing_val 16 #endif 11 17 12 18 ! ==================================================================== … … 51 57 REAL un_jour 52 58 PARAMETER (un_jour=86400.) 53 59 ! REAL missing_val 54 60 55 missing_val = nf90_fill_real 61 ! missing_val = nf90_fill_real 62 #ifndef CPP_XIOS 63 missing_val=missing_val_nf90 64 #endif 56 65 57 66 DO n = 1, nout -
LMDZ5/branches/LMDZ6_rc0/libf/phylmd/phys_output_ctrlout_mod.F90
r2160 r2283 557 557 558 558 TYPE(ctrl_out), SAVE, DIMENSION(7) :: o_wSTDlevs = (/ & 559 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'w850', "Vertical wind 1hPa", "Pa/s", &559 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'w850', "Vertical wind 850hPa", "Pa/s", & 560 560 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 561 561 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'w700', "Vertical wind 700hPa", "Pa/s", & … … 573 573 574 574 TYPE(ctrl_out), SAVE, DIMENSION(7) :: o_tSTDlevs = (/ & 575 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'t850', "Temperature 1hPa", "K", &575 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'t850', "Temperature 850hPa", "K", & 576 576 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 577 577 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'t700', "Temperature 700hPa", "K", & … … 589 589 590 590 TYPE(ctrl_out), SAVE, DIMENSION(7) :: o_qSTDlevs = (/ & 591 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'q850', "Specific humidity 1hPa", &591 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'q850', "Specific humidity 850hPa", & 592 592 "kg/kg", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 593 593 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'q700', "Specific humidity 700hPa", & … … 605 605 606 606 TYPE(ctrl_out), SAVE, DIMENSION(7) :: o_zSTDlevs = (/ & 607 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'z850', "Geopotential height 1hPa", &607 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'z850', "Geopotential height 850hPa", & 608 608 "m", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 609 609 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'z700', "Geopotential height 700hPa", & -
LMDZ5/branches/LMDZ6_rc0/libf/phylmd/phys_output_write_mod.F90
r2160 r2283 171 171 vqsumSTD, vTsumSTD, O3daysumSTD, wqsumSTD, & 172 172 vphisumSTD, wTsumSTD, u2sumSTD, v2sumSTD, & 173 T2sumSTD, nlevSTD, du_gwd_rando, dv_gwd_rando 173 T2sumSTD, nlevSTD, du_gwd_rando, dv_gwd_rando, & 174 ulevSTD, vlevSTD, wlevSTD, philevSTD, qlevSTD, tlevSTD, & 175 rhlevSTD, O3STD, O3daySTD, uvSTD, vqSTD, vTSTD, wqSTD, & 176 vphiSTD, wTSTD, u2STD, v2STD, T2STD, missing_val_nf90 174 177 175 178 USE phys_local_var_mod, only: zxfluxlat, slp, zxtsol, zt2m, & … … 239 242 ! ug Pour les sorties XIOS 240 243 USE xios, ONLY: xios_update_calendar 241 USE wxios, only: wxios_closedef 244 USE wxios, only: wxios_closedef, missing_val 242 245 #endif 243 246 USE phys_cal_mod, only : mth_len … … 285 288 INTEGER, DIMENSION(iim*jjmp1*klev) :: ndex3d 286 289 REAL, PARAMETER :: dobson_u = 2.1415e-05 ! Dobson unit, in kg m-2 287 REAL, PARAMETER :: missing_val=nf90_fill_real 290 ! REAL, PARAMETER :: missing_val=nf90_fill_real 291 #ifndef CPP_XIOS 292 REAL :: missing_val 293 #endif 288 294 REAL, PARAMETER :: un_jour=86400. 289 295 … … 646 652 ! ENDIF 647 653 654 #ifdef CPP_IOIPSL 655 #ifndef CPP_XIOS 656 IF (.NOT.ok_all_xml) THEN 648 657 ! ATTENTION, LES ANCIENS HISTWRITE ONT ETES CONSERVES EN ATTENDANT MIEUX: 649 658 ! Champs interpolles sur des niveaux de pression 659 missing_val=missing_val_nf90 650 660 DO iff=1, nfiles 651 661 ll=0 … … 669 679 ENDDO 670 680 ENDDO 671 681 ENDIF 682 #endif 683 #endif 684 #ifdef CPP_XIOS 685 IF(ok_all_xml) THEN 686 !XIOS CALL xios_get_field_attr("u850",default_value=missing_val) 687 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 688 ll=0 689 DO k=1, nlevSTD 690 bb2=clevSTD(k) 691 IF(bb2.EQ."850".OR.bb2.EQ."700".OR. & 692 bb2.EQ."500".OR.bb2.EQ."200".OR. & 693 bb2.EQ."100".OR. & 694 bb2.EQ."50".OR.bb2.EQ."10") THEN 695 ll=ll+1 696 CALL histwrite_phy(o_uSTDlevs(ll),ulevSTD(:,k)) 697 CALL histwrite_phy(o_vSTDlevs(ll),vlevSTD(:,k)) 698 CALL histwrite_phy(o_wSTDlevs(ll),wlevSTD(:,k)) 699 CALL histwrite_phy(o_zSTDlevs(ll),philevSTD(:,k)) 700 CALL histwrite_phy(o_qSTDlevs(ll),qlevSTD(:,k)) 701 CALL histwrite_phy(o_tSTDlevs(ll),tlevSTD(:,k)) 702 ENDIF !(bb2.EQ."850".OR.bb2.EQ."700".OR. 703 ENDDO 704 ENDIF 705 #endif 672 706 IF (vars_defined) THEN 673 707 DO i=1, klon … … 1251 1285 ENDIF 1252 1286 !!!!!!!!!!!! Sorties niveaux de pression NMC !!!!!!!!!!!!!!!!!!!! 1287 #ifdef CPP_IOIPSL 1288 #ifndef CPP_XIOS 1289 IF (.NOT.ok_all_xml) THEN 1290 ! ATTENTION, LES ANCIENS HISTWRITE ONT ETES CONSERVES EN ATTENDANT MIEUX: 1291 ! Champs interpolles sur des niveaux de pression 1292 missing_val=missing_val_nf90 1253 1293 DO iff=7, nfiles 1254 1294 … … 1314 1354 CALL histwrite_phy(o_TxT,T2sumSTD(:,:,iff-6),iff) 1315 1355 ENDDO !nfiles 1356 ENDIF 1357 #endif 1358 #endif 1359 #ifdef CPP_XIOS 1360 IF(ok_all_xml) THEN 1361 ! DO iff=7, nfiles 1362 1363 ! CALL histwrite_phy(o_tnondef,tnondef(:,:,3)) 1364 CALL histwrite_phy(o_ta,tlevSTD(:,:)) 1365 CALL histwrite_phy(o_zg,philevSTD(:,:)) 1366 CALL histwrite_phy(o_hus,qlevSTD(:,:)) 1367 CALL histwrite_phy(o_hur,rhlevSTD(:,:)) 1368 CALL histwrite_phy(o_ua,ulevSTD(:,:)) 1369 CALL histwrite_phy(o_va,vlevSTD(:,:)) 1370 CALL histwrite_phy(o_wap,wlevSTD(:,:)) 1371 ! IF(vars_defined) THEN 1372 ! DO k=1, nlevSTD 1373 ! DO i=1, klon 1374 ! IF(tnondef(i,k,3).NE.missing_val) THEN 1375 ! IF(freq_outNMC(iff-6).LT.0) THEN 1376 ! freq_moyNMC(iff-6)=(mth_len*un_jour)/freq_calNMC(iff-6) 1377 ! ELSE 1378 ! freq_moyNMC(iff-6)=freq_outNMC(iff-6)/freq_calNMC(iff-6) 1379 ! ENDIF 1380 ! zx_tmp_fi3d_STD(i,k) = (100.*tnondef(i,k,3))/freq_moyNMC(iff-6) 1381 ! ELSE 1382 ! zx_tmp_fi3d_STD(i,k) = missing_val 1383 ! ENDIF 1384 ! ENDDO 1385 ! ENDDO 1386 ! ENDIF 1387 ! CALL histwrite_phy(o_psbg,zx_tmp_fi3d_STD) 1388 IF(vars_defined) THEN 1389 DO k=1, nlevSTD 1390 DO i=1, klon 1391 IF(O3STD(i,k).NE.missing_val) THEN 1392 zx_tmp_fi3d_STD(i,k) = O3STD(i,k) * 1.e+9 1393 ELSE 1394 zx_tmp_fi3d_STD(i,k) = missing_val 1395 ENDIF 1396 ENDDO 1397 ENDDO !k=1, nlevSTD 1398 ENDIF 1399 CALL histwrite_phy(o_tro3,zx_tmp_fi3d_STD) 1400 if (read_climoz == 2) THEN 1401 IF(vars_defined) THEN 1402 DO k=1, nlevSTD 1403 DO i=1, klon 1404 IF(O3daySTD(i,k).NE.missing_val) THEN 1405 zx_tmp_fi3d_STD(i,k) = O3daySTD(i,k) * 1.e+9 1406 ELSE 1407 zx_tmp_fi3d_STD(i,k) = missing_val 1408 ENDIF 1409 ENDDO 1410 ENDDO !k=1, nlevSTD 1411 ENDIF 1412 CALL histwrite_phy(o_tro3_daylight,zx_tmp_fi3d_STD) 1413 endif 1414 CALL histwrite_phy(o_uxv,uvSTD(:,:)) 1415 CALL histwrite_phy(o_vxq,vqSTD(:,:)) 1416 CALL histwrite_phy(o_vxT,vTSTD(:,:)) 1417 CALL histwrite_phy(o_wxq,wqSTD(:,:)) 1418 CALL histwrite_phy(o_vxphi,vphiSTD(:,:)) 1419 CALL histwrite_phy(o_wxT,wTSTD(:,:)) 1420 CALL histwrite_phy(o_uxu,u2STD(:,:)) 1421 CALL histwrite_phy(o_vxv,v2STD(:,:)) 1422 CALL histwrite_phy(o_TxT,T2STD(:,:)) 1423 ! ENDDO !nfiles 1424 ENDIF 1425 #endif 1316 1426 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1317 1427 IF (nqtot.GE.nqo+1) THEN -
LMDZ5/branches/LMDZ6_rc0/libf/phylmd/phys_state_var_mod.F90
r2160 r2283 10 10 ! Declaration des variables 11 11 USE dimphy 12 USE netcdf, only: nf90_fill_real 12 13 INTEGER, PARAMETER :: nlevSTD=17 13 14 INTEGER, PARAMETER :: nlevSTD8=8 … … 16 17 INTEGER, PARAMETER :: napisccp=1 17 18 INTEGER, SAVE :: radpas 19 REAL, PARAMETER :: missing_val_nf90=nf90_fill_real 18 20 !$OMP THREADPRIVATE(radpas) 19 21 REAL, SAVE :: dtime, solaire_etat0 -
LMDZ5/branches/LMDZ6_rc0/libf/phylmd/physiq.F90
r2160 r2283 47 47 use phyaqua_mod, only: zenang_an 48 48 USE control_mod 49 #ifdef CPP_XIOS 50 USE wxios, ONLY: missing_val, missing_val_omp 51 USE xios, ONLY: xios_get_field_attr 52 #endif 49 53 #ifdef REPROBUS 50 54 USE CHEM_REP, ONLY : Init_chem_rep_xjour … … 240 244 real da(klon,klev),phi(klon,klev,klev),mp(klon,klev) 241 245 real wght_cvfd(klon,klev) 246 #ifndef CPP_XIOS 247 REAL, SAVE :: missing_val 248 #endif 242 249 ! Variables pour le lessivage convectif 243 250 ! RomP >>> … … 3674 3681 !IM Interpolation sur les niveaux de pression du NMC 3675 3682 ! ------------------------------------------------- 3683 #ifdef CPP_XIOS 3684 !$OMP MASTER 3685 !On recupere la valeur de la missing value donnee dans le xml 3686 CALL xios_get_field_attr("t850",default_value=missing_val_omp) 3687 ! PRINT *,"ARNAUD value missing ",missing_val_omp 3688 !$OMP END MASTER 3689 !$OMP BARRIER 3690 missing_val=missing_val_omp 3691 #endif 3692 #ifndef CPP_XIOS 3693 missing_val=missing_val_nf90 3694 #endif 3676 3695 ! 3677 3696 include "calcul_STDlev.h" -
LMDZ5/branches/LMDZ6_rc0/libf/phylmd/plevel.F90
r1999 r2283 9 9 USE netcdf 10 10 USE dimphy 11 #ifdef CPP_IOIPSL 12 USE phys_state_var_mod, ONLY: missing_val_nf90 13 #endif 14 #ifdef CPP_XIOS 15 USE wxios, ONLY: missing_val 16 #endif 11 17 IMPLICIT NONE 12 18 … … 56 62 INTEGER i, k 57 63 58 REAL missing_val 64 ! REAL missing_val 65 #ifndef CPP_XIOS 66 REAL :: missing_val 67 #endif 59 68 60 missing_val = nf90_fill_real 69 ! missing_val = nf90_fill_real 70 71 #ifndef CPP_XIOS 72 missing_val=missing_val_nf90 73 #endif 61 74 62 75 IF (first) THEN -
LMDZ5/branches/LMDZ6_rc0/libf/phylmd/plevel_new.F90
r1999 r2283 10 10 USE netcdf 11 11 USE dimphy 12 #ifdef CPP_IOIPSL 13 USE phys_state_var_mod, ONLY: missing_val_nf90 14 #endif 15 #ifdef CPP_XIOS 16 USE wxios, ONLY: missing_val 17 #endif 18 12 19 IMPLICIT NONE 13 20 … … 58 65 INTEGER i, k 59 66 60 REAL missing_val 67 ! REAL missing_val 68 #ifndef CPP_XIOS 69 REAL :: missing_val 70 #endif 61 71 62 missing_val = nf90_fill_real 72 ! missing_val = nf90_fill_real 73 74 #ifndef CPP_XIOS 75 missing_val=missing_val_nf90 76 #endif 63 77 64 78 IF (first) THEN -
LMDZ5/branches/LMDZ6_rc0/libf/phylmd/undefSTD.F90
r1999 r2283 5 5 USE netcdf 6 6 USE dimphy 7 USE phys_state_var_mod ! Variables sauvegardees de la physique 7 #ifdef CPP_IOIPSL 8 USE phys_state_var_mod 9 #endif 10 8 11 IMPLICIT NONE 9 12 include "clesphys.h" 13 #ifdef CPP_IOIPSL 14 REAL :: missing_val 15 #endif 10 16 11 17 ! ==================================================================== … … 51 57 ! REAL tnondef(klon,klevSTD,nout) 52 58 53 59 ! REAL missing_val 54 60 55 missing_val = nf90_fill_real 61 ! missing_val = nf90_fill_real 62 #ifndef CPP_XIOS 63 missing_val=missing_val_nf90 64 #endif 56 65 57 66 DO n = 1, nout
Note: See TracChangeset
for help on using the changeset viewer.