Changeset 4619 for LMDZ6/trunk/libf/phylmd/Dust
- Timestamp:
- Jul 10, 2023, 1:40:39 AM (18 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/Dust/phys_output_write_spl_mod.F90
r4593 r4619 389 389 USE iophy, ONLY: set_itau_iophy, histwrite_phy 390 390 USE netcdf, ONLY: nf90_fill_real 391 392 #ifdef CPP_XIOS393 391 ! ug Pour les sorties XIOS 394 USE xios, ONLY: xios_update_calendar 395 USE wxios, ONLY: wxios_closedef, missing_val 396 #endif 392 USE lmdz_xios, ONLY: xios_update_calendar, using_xios 393 USE wxios, ONLY: wxios_closedef, missing_val_xios => missing_val 397 394 USE phys_cal_mod, ONLY : mth_len 398 395 … … 438 435 INTEGER, DIMENSION(iim*jjmp1*klev) :: ndex3d 439 436 REAL, PARAMETER :: dobson_u = 2.1415e-05 ! Dobson unit, in kg m-2 440 ! REAL, PARAMETER :: missing_val=nf90_fill_real441 #ifndef CPP_XIOS442 437 REAL :: missing_val 443 #endif444 438 REAL, PARAMETER :: un_jour=86400. 439 440 IF (using_xios) THEN 441 missing_val=missing_val_xios 442 ELSE 443 missing_val=nf90_fill_real 444 ENDIF 445 445 446 446 ! On calcul le nouveau tau: … … 460 460 ! ug la boucle qui suit ne sert qu'une fois, pour l'initialisation, sinon il n'y a toujours qu'un seul passage: 461 461 DO iinit=1, iinitend 462 #ifdef CPP_XIOS 463 !$OMP MASTER 464 IF (vars_defined) THEN 465 IF (prt_level >= 10) THEN 466 write(lunout,*)"phys_output_write: call xios_update_calendar, itau_w=",itau_w 467 ENDIF 468 ! CALL xios_update_calendar(itau_w) 469 CALL xios_update_calendar(itap) 470 ENDIF 471 !$OMP END MASTER 472 !$OMP BARRIER 473 #endif 462 IF (using_xios) THEN 463 !$OMP MASTER 464 IF (vars_defined) THEN 465 IF (prt_level >= 10) THEN 466 write(lunout,*)"phys_output_write: call xios_update_calendar, itau_w=",itau_w 467 ENDIF 468 ! CALL xios_update_calendar(itau_w) 469 CALL xios_update_calendar(itap) 470 ENDIF 471 !$OMP END MASTER 472 !$OMP BARRIER 473 ENDIF !using_xios 474 474 475 ! On procède à l'écriture ou à la définition des nombreuses variables: 475 476 !!! Champs 1D !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! … … 828 829 829 830 #ifdef CPP_IOIPSL 830 #ifndef CPP_XIOS 831 IF (.NOT.ok_all_xml) THEN832 ! ATTENTION, LES ANCIENS HISTWRITE ONT ETES CONSERVES EN ATTENDANT MIEUX:833 ! Champs interpolles sur des niveaux de pression834 missing_val=missing_val_nf90835 DO iff=1, nfiles836 ll=0837 DO k=1, nlevSTD838 bb2=clevSTD(k)839 IF (bb2.EQ."850".OR.bb2.EQ."700".OR. &840 bb2.EQ."500".OR.bb2.EQ."200".OR. &841 bb2.EQ."100".OR. &842 bb2.EQ."50".OR.bb2.EQ."10") THEN 843 844 ! a refaire correctement !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!845 ll=ll+1846 CALL histwrite_phy(o_uSTDlevs(ll),uwriteSTD(:,k,iff), iff)847 CALL histwrite_phy(o_vSTDlevs(ll),vwriteSTD(:,k,iff), iff)848 CALL histwrite_phy(o_wSTDlevs(ll),wwriteSTD(:,k,iff), iff)849 CALL histwrite_phy(o_zSTDlevs(ll),phiwriteSTD(:,k,iff), iff)850 CALL histwrite_phy(o_qSTDlevs(ll),qwriteSTD(:,k,iff), iff)851 CALL histwrite_phy(o_tSTDlevs(ll),twriteSTD(:,k,iff), iff) 852 853 ENDIF !(bb2.EQ."850".OR.bb2.EQ."700".OR.854 855 ENDDO856 ENDIF 831 IF (.NOT. using_xios) THEN 832 IF (.NOT.ok_all_xml) THEN 833 ! ATTENTION, LES ANCIENS HISTWRITE ONT ETES CONSERVES EN ATTENDANT MIEUX: 834 ! Champs interpolles sur des niveaux de pression 835 DO iff=1, nfiles 836 ll=0 837 DO k=1, nlevSTD 838 bb2=clevSTD(k) 839 IF (bb2.EQ."850".OR.bb2.EQ."700".OR. & 840 bb2.EQ."500".OR.bb2.EQ."200".OR. & 841 bb2.EQ."100".OR. & 842 bb2.EQ."50".OR.bb2.EQ."10") THEN 843 844 ! a refaire correctement !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 845 ll=ll+1 846 CALL histwrite_phy(o_uSTDlevs(ll),uwriteSTD(:,k,iff), iff) 847 CALL histwrite_phy(o_vSTDlevs(ll),vwriteSTD(:,k,iff), iff) 848 CALL histwrite_phy(o_wSTDlevs(ll),wwriteSTD(:,k,iff), iff) 849 CALL histwrite_phy(o_zSTDlevs(ll),phiwriteSTD(:,k,iff), iff) 850 CALL histwrite_phy(o_qSTDlevs(ll),qwriteSTD(:,k,iff), iff) 851 CALL histwrite_phy(o_tSTDlevs(ll),twriteSTD(:,k,iff), iff) 852 853 ENDIF !(bb2.EQ."850".OR.bb2.EQ."700".OR. 854 ENDDO 855 ENDDO 856 ENDIF 857 ENDIF !.NOT.using_xios 857 858 #endif 858 #endif 859 860 #ifdef CPP_XIOS 861 IF (ok_all_xml) THEN 862 !XIOS CALL xios_get_field_attr("u850",default_value=missing_val) 863 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 859 860 IF (using_xios) THEN 861 IF (ok_all_xml) THEN 862 !XIOS CALL xios_get_field_attr("u850",default_value=missing_val) 863 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 864 864 ll=0 865 865 DO k=1, nlevSTD … … 878 878 ENDIF !(bb2.EQ."850".OR.bb2.EQ."700".OR. 879 879 ENDDO 880 ENDIF881 #endif 880 ENDIF 881 ENDIF !using_xios 882 882 IF (vars_defined) THEN 883 883 DO i=1, klon … … 1471 1471 !!!!!!!!!!!! Sorties niveaux de pression NMC !!!!!!!!!!!!!!!!!!!! 1472 1472 #ifdef CPP_IOIPSL 1473 #ifndef CPP_XIOS 1474 IF (.NOT. ok_all_xml) THEN1475 ! ATTENTION, LES ANCIENS HISTWRITE ONT ETES CONSERVES EN ATTENDANT MIEUX:1476 ! Champs interpolles sur des niveaux de pression1477 missing_val=missing_val_nf901473 1474 IF (.NOT. using_xios) THEN 1475 IF (.NOT.ok_all_xml) THEN 1476 ! ATTENTION, LES ANCIENS HISTWRITE ONT ETES CONSERVES EN ATTENDANT MIEUX: 1477 ! Champs interpolles sur des niveaux de pression 1478 1478 DO iff=7, nfiles-1 !--here we deal with files 7,8 and 9 1479 1479 … … 1539 1539 CALL histwrite_phy(o_TxT,T2sumSTD(:,:,iff-6),iff) 1540 1540 ENDDO !nfiles 1541 ENDIF 1541 1542 ENDIF 1542 1543 #endif 1543 #endif 1544 #ifdef CPP_XIOS 1544 1545 IF (using_xios) THEN 1545 1546 IF (ok_all_xml) THEN 1546 1547 ! DO iff=7, nfiles … … 1607 1608 CALL histwrite_phy(o_TxT,T2STD(:,:)) 1608 1609 ! ENDDO !nfiles 1609 ENDIF1610 #endif 1610 ENDIF 1611 ENDIF !using_xios 1611 1612 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1612 1613 itr = 0 … … 1651 1652 ENDDO ! iff 1652 1653 #endif 1653 #ifdef CPP_XIOS1654 1654 !On finalise l'initialisation: 1655 CALL wxios_closedef() 1656 #endif 1655 IF (using_xios) CALL wxios_closedef() 1657 1656 1658 1657 !$OMP END MASTER
Note: See TracChangeset
for help on using the changeset viewer.