diff --git a/MY_RUN/KTEST/009_ICARTT/006_ncl/clean_ncl b/MY_RUN/KTEST/009_ICARTT/006_ncl/clean_ncl index 56ddc3f696cde0f66b17e2d67048631a2f17645b..8f829eacfdd2cb2e88d8128cfc401c6216ad9a90 100755 --- a/MY_RUN/KTEST/009_ICARTT/006_ncl/clean_ncl +++ b/MY_RUN/KTEST/009_ICARTT/006_ncl/clean_ncl @@ -1,2 +1,2 @@ set -x -rm -f zsection_1250.ps *.nc4 +rm -f *.png *.nc4 diff --git a/MY_RUN/KTEST/009_ICARTT/006_ncl/plot_ICARTT.ncl b/MY_RUN/KTEST/009_ICARTT/006_ncl/plot_ICARTT.ncl index c9d3c2ff374e87f312a78544a598df01841691aa..9ceedb4f01583b5b336ac70e835cc5a76d17dd7d 100644 --- a/MY_RUN/KTEST/009_ICARTT/006_ncl/plot_ICARTT.ncl +++ b/MY_RUN/KTEST/009_ICARTT/006_ncl/plot_ICARTT.ncl @@ -8,8 +8,8 @@ begin ;=================================================; ; open file and read in data ;=================================================; - a = addfile("ICART.1.SEG01.001.nc4", "r") - a2 = addfile("ICART.1.SEG01.002.nc4", "r") + a = addfile("ICART.1.SEG01.001dg.nc4", "r") + a2 = addfile("ICART.1.SEG01.002dg.nc4", "r") ;=================================================; ; Get informations on variable sizes @@ -38,7 +38,7 @@ zs@lon2d = lon2d printMinMax(zs,0) - rc_t1 = a->RCT(1:kmax,jphext:jmax+jphext-1,jphext:imax+jphext-1)*1.e3 + rc_t1 = a->MRC(1:kmax,jphext:jmax+jphext-1,jphext:imax+jphext-1) rc_t1@long_name="Cloud mixing ratio" rc_t1@units="g/kg" rc_t1@lat2d=lat2d @@ -46,46 +46,114 @@ printMinMax(zs,0) printMinMax(rc_t1,0) ; - o3_t1 = a->O3T(1:kmax,jphext:jmax+jphext-1,jphext:imax+jphext-1)*1.e9 + o3_t1 = a->O3T(1:kmax,jphext:jmax+jphext-1,jphext:imax+jphext-1) o3_t1@long_name="Ozone" o3_t1@units="ppbv" o3_t1@lat2d=lat2d o3_t1@lon2d=lon2d ; - co_t1 = a->COT(1:kmax,jphext:jmax+jphext-1,jphext:imax+jphext-1)*1.e9 + co_t1 = a->COT(1:kmax,jphext:jmax+jphext-1,jphext:imax+jphext-1) co_t1@long_name="carbon monoxide" co_t1@units="ppbv" co_t1@lat2d=lat2d co_t1@lon2d=lon2d + +; + o3p_t1=a->O3_PROD(1:kmax,jphext:jmax+jphext-1,jphext:imax+jphext-1) + o3p_t1 = o3p_t1*1e9*3600 + o3p_t1@long_name="ozone production" + o3p_t1@units="ppbv/h" + o3p_t1@lat2d=lat2d + o3p_t1@lon2d=lon2d + +; + o3l_t1=a->O3_LOSS(1:kmax,jphext:jmax+jphext-1,jphext:imax+jphext-1) + o3l_t1 = o3l_t1*1e9*3600 + o3l_t1@long_name="ozone loss" + o3l_t1@units="ppbv/h" + o3l_t1@lat2d=lat2d + o3l_t1@lon2d=lon2d + +; + cop_t1=a->CO_PROD(1:kmax,jphext:jmax+jphext-1,jphext:imax+jphext-1) + cop_t1 = cop_t1*1e9*3600 + cop_t1@long_name="carbon monoxide production" + cop_t1@units="ppbv/h" + cop_t1@lat2d=lat2d + cop_t1@lon2d=lon2d + +; + col_t1=a->CO_LOSS(1:kmax,jphext:jmax+jphext-1,jphext:imax+jphext-1) + col_t1 = col_t1*1e9*3600 + col_t1@long_name="carbon monoxide loss" + col_t1@units="ppbv/h" + col_t1@lat2d=lat2d + col_t1@lon2d=lon2d + + ; ; - rc_t2 = a2->RCT(1:kmax,jphext:jmax+jphext-1,jphext:imax+jphext-1)*1.e3 + rc_t2 = a2->MRC(1:kmax,jphext:jmax+jphext-1,jphext:imax+jphext-1) rc_t2@long_name="Cloud mixing ratio" rc_t2@units="g/kg" rc_t2@lat2d=lat2d rc_t2@lon2d=lon2d ; - o3_t2 = a2->O3T(1:kmax,jphext:jmax+jphext-1,jphext:imax+jphext-1)*1.e9 + o3_t2 = a2->O3T(1:kmax,jphext:jmax+jphext-1,jphext:imax+jphext-1) o3_t2@long_name="Ozone" o3_t2@units="ppbv" o3_t2@lat2d=lat2d o3_t2@lon2d=lon2d ; - co_t2 = a2->COT(1:kmax,jphext:jmax+jphext-1,jphext:imax+jphext-1)*1.e9 + co_t2 = a2->COT(1:kmax,jphext:jmax+jphext-1,jphext:imax+jphext-1) co_t2@long_name="carbon monoxide" co_t2@units="ppbv" co_t2@lat2d=lat2d co_t2@lon2d=lon2d +; + o3p_t2=a2->O3_PROD(1:kmax,jphext:jmax+jphext-1,jphext:imax+jphext-1) + o3p_t2=o3p_t2*1e9*3600 + o3p_t2@long_name="ozone production" + o3p_t2@units="pptv/h" + o3p_t2@lat2d=lat2d + o3p_t2@lon2d=lon2d + +; + o3l_t2=a2->O3_LOSS(1:kmax,jphext:jmax+jphext-1,jphext:imax+jphext-1) + o3l_t2=o3l_t2*1e9*3600 + o3l_t2@long_name="ozone loss" + o3l_t2@units="pptv/h" + o3l_t2@lat2d=lat2d + o3l_t2@lon2d=lon2d + +; + cop_t2=a2->CO_PROD(1:kmax,jphext:jmax+jphext-1,jphext:imax+jphext-1) + cop_t2=cop_t2*1e9*3600 + cop_t2@long_name="carbon monoxide production" + cop_t2@units="pptv/h" + cop_t2@lat2d=lat2d + cop_t2@lon2d=lon2d + +; + col_t2=a2->CO_LOSS(1:kmax,jphext:jmax+jphext-1,jphext:imax+jphext-1) + col_t2=col_t2*1e9*3600 + col_t2@long_name="carbon monoxide loss" + col_t2@units="ppbv/h" + col_t2@lat2d=lat2d + col_t2@lon2d=lon2d + + + ;-----------------------------------------------; ;=================================================; ; On calcule l'altitude des champs modèle ;=================================================; -zhat= a->ZHAT(1:kmax+1) +zhat= a2->ZHAT(1:kmax+1) ; Unstagger zhat (from grid 4 to 1) nzhat=new(kmax,double) @@ -94,7 +162,7 @@ zhat= a->ZHAT(1:kmax+1) end do ; Create Z3D == ALT - alt=new(dimsizes(rc_t1),double) + alt=new(dimsizes(o3_t2),double) zcoef=1.-zs/nzhat(kmax-1) do i=0,imax-1 @@ -114,9 +182,9 @@ alt@lon2d = lon2d ;-----------------------------------------------; ; Read projection parameters ; -------------------- - RPK = a->RPK - BETA = a->BETA - LON0 = a->LON0 + RPK = a2->RPK + BETA = a2->BETA + LON0 = a2->LON0 resmap=True if (RPK.gt.0) @@ -189,8 +257,16 @@ printMinMax(alt,0) rc_t2_plane = wrf_user_intrp3d(rc_t2,alt,"h",1250,0.,False) co_t1_plane = wrf_user_intrp3d(co_t1,alt,"h",1250,0.,False) co_t2_plane = wrf_user_intrp3d(co_t2,alt,"h",1250,0.,False) +cop_t1_plane= wrf_user_intrp3d(cop_t1,alt,"h",1250,0.,False) +cop_t2_plane= wrf_user_intrp3d(cop_t2,alt,"h",1250,0.,False) +col_t1_plane= wrf_user_intrp3d(col_t1,alt,"h",1250,0.,False) +col_t2_plane= wrf_user_intrp3d(col_t2,alt,"h",1250,0.,False) o3_t1_plane = wrf_user_intrp3d(o3_t1,alt,"h",1250,0.,False) o3_t2_plane = wrf_user_intrp3d(o3_t2,alt,"h",1250,0.,False) +o3l_t1_plane= wrf_user_intrp3d(o3l_t1,alt,"h",1250,0.,False) +o3l_t2_plane= wrf_user_intrp3d(o3l_t2,alt,"h",1250,0.,False) +o3p_t1_plane= wrf_user_intrp3d(o3p_t1,alt,"h",1250,0.,False) +o3p_t2_plane= wrf_user_intrp3d(o3p_t2,alt,"h",1250,0.,False) figname ="zsection_1250" @@ -270,6 +346,50 @@ o3_t2_plane = wrf_user_intrp3d(o3_t2,alt,"h",1250,0.,False) delete(res@cnLevels) delete(res@cnFillColors) +; plot ozone production + res@cnLevelSelectionMode = "ExplicitLevels" ; method for selecting the contour + res@cnLevels = (/75,80,85,90,95,100,105,110,115,120,125/) + res@cnFillColors = (/75,80,85,90,95,100,105,110,115,120,125,130/) ; color of a contour +; res@cnLevelSelectionMode = "AutomaticLevels" + plot_o3p = gsn_csm_contour_map(wks,o3p_t1_plane(:,:),res) + draw(plot_o3p) + frame(wks) + delete(res@cnLevels) + delete(res@cnFillColors) + +; plot ozone loss + res@cnLevelSelectionMode = "ExplicitLevels" ; method for selecting the contour + res@cnLevels = (/75,80,85,90,95,100,105,110,115,120,125/) + res@cnFillColors = (/75,80,85,90,95,100,105,110,115,120,125,130/) ; color of a contour +; res@cnLevelSelectionMode = "AutomaticLevels" + plot_o3l = gsn_csm_contour_map(wks,o3l_t1_plane(:,:),res) + draw(plot_o3l) + frame(wks) + delete(res@cnLevels) + delete(res@cnFillColors) + +; plot carbon monoxide production + res@cnLevelSelectionMode = "ExplicitLevels" ; method for selecting the contour + res@cnLevels = (/0.6,0.7,0.8,0.9,1.0,1.1,1.2,1.3,1.4,1.5,1.6/) + res@cnFillColors := (/0.6,0.7,0.8,0.9,1.0,1.1,1.2,1.3,1.4,1.5,1.6/) ; color of a contour +; res@cnLevelSelectionMode = "AutomaticLevels" + plot_cop = gsn_csm_contour_map(wks,cop_t1_plane(:,:),res) + draw(plot_cop) + frame(wks) + delete(res@cnLevels) + delete(res@cnFillColors) + +; plot carbon monoxide loss + res@cnLevelSelectionMode = "ExplicitLevels" ; method for selecting the contour + res@cnLevels = (/0.6,0.7,0.8,0.9,1.0,1.1,1.2,1.3,1.4,1.5,1.6/) + res@cnFillColors := (/0.6,0.7,0.8,0.9,1.0,1.1,1.2,1.3,1.4,1.5,1.6/) ; color of a contour +; res@cnLevelSelectionMode = "AutomaticLevels" + plot_col = gsn_csm_contour_map(wks,col_t1_plane(:,:),res) + draw(plot_col) + frame(wks) + delete(res@cnLevels) + delete(res@cnFillColors) + res@gsnCenterString="heure=20" ; plot cloud mixing ratio @@ -302,6 +422,50 @@ o3_t2_plane = wrf_user_intrp3d(o3_t2,alt,"h",1250,0.,False) draw(plot_co1) frame(wks) +; plot ozone production + res@cnLevelSelectionMode = "ExplicitLevels" ; method for selecting the contour + res@cnLevels = (/75,80,85,90,95,100,105,110,115,120,125/) + res@cnFillColors = (/75,80,85,90,95,100,105,110,115,120,125,130/) ; color of a contour +; res@cnLevelSelectionMode = "AutomaticLevels" + plot_o3p1 = gsn_csm_contour_map(wks,o3p_t2_plane(:,:),res) + draw(plot_o3p1) + frame(wks) + delete(res@cnLevels) + delete(res@cnFillColors) + +; plot ozone loss + res@cnLevelSelectionMode = "ExplicitLevels" ; method for selecting the contour + res@cnLevels = (/75,80,85,90,95,100,105,110,115,120,125/) + res@cnFillColors = (/75,80,85,90,95,100,105,110,115,120,125,130/) ; color of a contour +; res@cnLevelSelectionMode = "AutomaticLevels" + plot_o3l1 = gsn_csm_contour_map(wks,o3l_t2_plane(:,:),res) + draw(plot_o3l1) + frame(wks) + delete(res@cnLevels) + delete(res@cnFillColors) + +; plot carbon monoxide production + res@cnLevelSelectionMode = "ExplicitLevels" ; method for selecting the contour + res@cnLevels = (/0.6,0.7,0.8,0.9,1.0,1.1,1.2,1.3,1.4,1.5,1.6/) + res@cnFillColors := (/0.6,0.7,0.8,0.9,1.0,1.1,1.2,1.3,1.4,1.5,1.6/) ; color of a contour +; res@cnLevelSelectionMode = "AutomaticLevels" + plot_cop1 = gsn_csm_contour_map(wks,cop_t2_plane(:,:),res) + draw(plot_cop1) + frame(wks) + delete(res@cnLevels) + delete(res@cnFillColors) + +; plot carbon monoxide loss + res@cnLevelSelectionMode = "ExplicitLevels" ; method for selecting the contour + res@cnLevels = (/0.6,0.7,0.8,0.9,1.0,1.1,1.2,1.3,1.4,1.5,1.6/) + res@cnFillColors := (/0.6,0.7,0.8,0.9,1.0,1.1,1.2,1.3,1.4,1.5,1.6/) ; color of a contour +; res@cnLevelSelectionMode = "AutomaticLevels" + plot_col1 = gsn_csm_contour_map(wks,col_t2_plane(:,:),res) + draw(plot_col1) + frame(wks) + delete(res@cnLevels) + delete(res@cnFillColors) + ;;;;;;;;;;;;;;;;;;;;;;;; end diff --git a/MY_RUN/KTEST/009_ICARTT/006_ncl/run_ncl b/MY_RUN/KTEST/009_ICARTT/006_ncl/run_ncl index a9bcb3490c633e902ccf96600cd5a569aa5e63b2..e1c2e087dba581d8da3cc22574eac73665eb49dd 100755 --- a/MY_RUN/KTEST/009_ICARTT/006_ncl/run_ncl +++ b/MY_RUN/KTEST/009_ICARTT/006_ncl/run_ncl @@ -5,16 +5,14 @@ set -x #set -e -ln -sf ../003_mesonh/ICART.1.SEG01.001.nc4 . -ln -sf ../003_mesonh/ICART.1.SEG01.002.nc4 . +ln -sf ../004_diag/ICART.1.SEG01.001dg.nc4 . +ln -sf ../004_diag/ICART.1.SEG01.002dg.nc4 . rm -f *.png ncl plot_ICARTT.ncl +ncl plot_ICARTT_budget.ncl + +display zsection_1250.*.png +display zsection_1250_bud.*.png -display zsection_1250.000001.png -display zsection_1250.000002.png -display zsection_1250.000003.png -display zsection_1250.000004.png -display zsection_1250.000005.png -display zsection_1250.000006.png exit 0 diff --git a/MY_RUN/KTEST/009_ICARTT/Makefile b/MY_RUN/KTEST/009_ICARTT/Makefile index 53eafb8e15fb4c80fd4bff9a08ace0f8a0fa07a3..047047e15b5c8a08f017c58136424b3481ce3b00 100644 --- a/MY_RUN/KTEST/009_ICARTT/Makefile +++ b/MY_RUN/KTEST/009_ICARTT/Makefile @@ -1,4 +1,4 @@ -all: E001_pgd1 E002_arp2lfi E003_mesonh E006_ncl +all: E001_pgd1 E002_arp2lfi E003_mesonh E004_diag E006_ncl E001_pgd1 : cd 001_pgd1 && get_chimie_files @@ -7,6 +7,8 @@ E002_arp2lfi : cd 002_arp2lfi && run_arp2lfi_xyz E003_mesonh: cd 003_mesonh && run_mesonh_xyz +E004_diag: + cd 004_diag && run_diag_xyz E006_ncl: cd 006_ncl && run_ncl @@ -14,5 +16,6 @@ clean: cd 001_pgd1 && clean_prep_pgd_xyz cd 002_arp2lfi && clean_arp2lfi_xyz cd 003_mesonh && clean_mesonh_xyz + cd 004_diag && clean_diag_xyz cd 006_ncl && clean_ncl