Changeset 204
- Timestamp:
- 03/26/14 11:58:56 (10 years ago)
- Location:
- trunk
- Files:
-
- 5 deleted
- 90 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/adm/install.sh
r199 r204 16 16 # ======== 17 17 # 18 # ::18 # .. code-block:: bash 19 19 # 20 # $install.sh -w dirwww -p dirpublish -u urlpublish -l login20 # install.sh -w dirwww -p dirpublish -u urlpublish -l login 21 21 # 22 22 # DESCRIPTION … … 28 28 # is launched. 29 29 # 30 # -w input directort31 # -p output directory32 # -u output url33 # -l login used to access on output url30 # .. option:: -w <input directory> 31 # .. option:: -p <output directory> 32 # .. option:: -u <output url> 33 # .. option:: -l <login used to access on output url> 34 34 # 35 35 # EXAMPLES … … 48 48 # - fplod 2009-04-27T10:21:23Z aedon.locean-ipsl.upmc.fr (Darwin) 49 49 # 50 # * creation from person nal tool (used for superbib, SAXO, etc.)50 # * creation from personal tool (used for superbib, SAXO, etc.) 51 51 # 52 52 #- … … 54 54 case "${system}" in 55 55 AIX|IRIX64) 56 echo " www : no specific posix checking"56 echo " www : no specific posix checking" 57 57 ;; 58 58 *) 59 set -o posix59 set -o posix 60 60 ;; 61 61 esac … … 73 73 if [ ${#} -lt ${minargcount} ] 74 74 then 75 echo "eee : not enough targuments"75 echo "eee : not enough arguments" 76 76 echo "${usage}" 77 77 exit 1 … … 111 111 answer=${1:-" "} 112 112 case ${answer} in 113 y|Y|n|N)114 ;;115 *)116 if [ "${dirpublish}" != "none" ]117 then118 echo "Do you want to install ${dirwww} on ${dirpublish} (y|[n]) ?"119 read answer120 fi121 if [ "${urlpublish}" != "none" ]122 then123 echo "Do you want to install ${dirwww} on ${urlpublish} (y|[n]) ?"124 read answer125 fi126 ;;113 y|Y|n|N) 114 ;; 115 *) 116 if [ "${dirpublish}" != "none" ] 117 then 118 echo "Do you want to install ${dirwww} on ${dirpublish} (y|[n]) ?" 119 read answer 120 fi 121 if [ "${urlpublish}" != "none" ] 122 then 123 echo "Do you want to install ${dirwww} on ${urlpublish} (y|[n]) ?" 124 read answer 125 fi 126 ;; 127 127 esac 128 128 # 129 129 case ${answer} in 130 y|Y)131 if [ "${dirpublish}" != "none" ]132 then133 # copy of ${dirwww} on $dirpublish134 echo "iii : update of ${dirpublish}"135 rsync -av --exclude=".DS_Store" -e ssh ${dirwww}/ ${dirpublish}136 # detect if in dirpublish following this pattern [USER@]HOST:SRC, HOST137 # is cerbere.locean-ipsl.upmc.fr. If so, a specific update is launched138 userhost=${dirpublish%%:*}139 host=${userhost##*@}140 if [ ${login} = "none" ]141 then142 user=${userhost%%@*}143 else144 user=${login}145 fi146 if [ "${host}" = "cerbere.locean-ipsl.upmc.fr" ]147 then148 wget -q "http://intranet.locean-ipsl.upmc.fr/persoweb/?fastupdate=1&user=${user}" -O /dev/null149 fi150 else151 # urlpublish=http://www.locean-ipsl.upmc.fr/~ginette/produit152 dirpublish=${urlpublish##*~}153 cd ${dirwww}154 #lftp -e "mirror -R . ${dirpublish};quit" -u ${LOGNAME} skyros.locean-ipsl.upmc.fr155 lftp -e "mirror -R . ${dirpublish};quit" -u ${LOGNAME} www.locean-ipsl.upmc.fr156 # ++ log157 fi158 ;;159 *)160 echo "no update of ${dirpublish} or ${urlpublish}"161 ;;130 y|Y) 131 if [ "${dirpublish}" != "none" ] 132 then 133 # copy of ${dirwww} on $dirpublish 134 echo "iii : update of ${dirpublish}" 135 rsync -av --exclude=".DS_Store" -e ssh ${dirwww}/ ${dirpublish} 136 # detect if in dirpublish following this pattern [USER@]HOST:SRC, HOST 137 # is cerbere.locean-ipsl.upmc.fr. If so, a specific update is launched 138 userhost=${dirpublish%%:*} 139 host=${userhost##*@} 140 if [ ${login} = "none" ] 141 then 142 user=${userhost%%@*} 143 else 144 user=${login} 145 fi 146 if [ "${host}" = "cerbere.locean-ipsl.upmc.fr" ] 147 then 148 wget -q "http://intranet.locean-ipsl.upmc.fr/persoweb/?fastupdate=1&user=${user}" -O /dev/null 149 fi 150 else 151 # urlpublish=http://www.locean-ipsl.upmc.fr/~ginette/produit 152 dirpublish=${urlpublish##*~} 153 cd ${dirwww} 154 #lftp -e "mirror -R . ${dirpublish};quit" -u ${LOGNAME} skyros.locean-ipsl.upmc.fr 155 lftp -e "mirror -R . ${dirpublish};quit" -u ${LOGNAME} www.locean-ipsl.upmc.fr 156 # ++ log 157 fi 158 ;; 159 *) 160 echo "no update of ${dirpublish} or ${urlpublish}" 161 ;; 162 162 esac 163 163 # -
trunk/adm/website/Readme.rst
r202 r204 8 8 ----------------------------- 9 9 10 The TropFlux project aims at providing daily, timely, accurate air-sea heat and momentum flux data for the entire 30 °N-30°S region. Wind stresses and the four components of net surface heat flux are currently available for the entire 1979 to March 2013 period. We are currently working on a regular (~monthly) update of the TropFlux product until 3-4 months behind realtime.10 The TropFlux project aims at providing daily, timely, accurate air-sea heat and momentum flux data for the entire 30°N-30°S region. Wind stresses and the four components of net surface heat flux are currently available for the entire 1979 to March 2013 period. We are currently working on a regular (~monthly) update of the TropFlux product until 3-4 months behind realtime. 11 11 12 12 TropFlux is largely derived from a combination of ERA-I re-analysis data for turbulent and longwave fluxes, and ISCCP surface radiation data for shortwave flux. All input products are bias- and amplitude-corrected on the basis of Global Tropical Moored Buoy Array data, before surface net heat flux and wind stresses are computed using the COARE v3 bulk algorithm. A precise description of the flux computation procedure, as well as a detailed evaluation against other timely, daily air-sea heat flux alternatives (OAFLUX, NCEP, NCEP2, ERA-I) is provided in Praveen Kumar et al. 2012. The wind stress product is described, evaluated and compared against other widely used products (QuikSCAT, NCEP, NCEP2, ERA-I) in Praveen Kumar et al. 2013 … … 18 18 - a simple estimate of surface shortwave radiation is provided from OLR data, as a near-realtime alternative to the more accurate but irregularly updated ISCCP data. 19 19 20 The TropFlux product has been developed under a collaboration between the Laboratoire d'Oc éanographie: Expérimentation et Approches Numériques (LOCEAN) from Institut Pierre Simon Laplace, France and National Institute of Oceanography/CSIR, India. Bilateral scientific visits to France and India have been supported by Institut de Recherche pour le Développement, France.20 The TropFlux product has been developed under a collaboration between the Laboratoire d'Océanographie: Expérimentation et Approches Numériques (LOCEAN) from Institut Pierre Simon Laplace, France and National Institute of Oceanography/CSIR, India. Bilateral scientific visits to France and India have been supported by Institut de Recherche pour le Développement, France. 21 21 22 22 Data format … … 40 40 The data is provided in NetCDF format, with one file per variable for the complete dataset. 41 41 Daily (almost 1Gb per file) and monthly (32Mb per file) average data are proposed. 42 The data is provided on a 1 ° resolution grid (with the same land-sea mask than for the OAFLUX project, http://oaflux.whoi.edu/ ).42 The data is provided on a 1° resolution grid (with the same land-sea mask than for the OAFLUX project, http://oaflux.whoi.edu/ ). 43 43 There are 60 points in latitude at -29.5, -28.5, ..., 28.5 (positive north of the equator). 44 44 There are 350 points in longitude at 30.5, 31.5, ..., 379.5 (eastward of the Greenwich meridian). -
trunk/adm/website/bibliography_web.rst
r200 r204 46 46 .. - fplod 20110421T085259Z aedon.locean-ipsl.upmc.fr (Darwin) 47 47 .. 48 .. * add references about TAO/TRIT ION, PIRATA, and RAMA48 .. * add references about TAO/TRITON, PIRATA, and RAMA 49 49 .. 50 50 .. - fplod 20110407T084904Z aedon.locean-ipsl.upmc.fr (Darwin) -
trunk/adm/website/bibtropflux.xml
r199 r204 8 8 <!--rst 9 9 10 DESCRI TPTION11 =========== =10 DESCRIPTION 11 =========== 12 12 13 13 Publications using TropFlux dataset … … 21 21 ==== 22 22 23 add instruction to check somewhere:: 23 add instruction to check somewhere: 24 25 .. code-block:: bash 24 26 25 27 xml val \-\-err \-\-xsd http://www.docbook.org/xml/5.0/xsd/docbook.xsd bibtropflux.xml … … 36 38 - fplod 20120412 37 39 38 * replace prave n-kumar2011_01 by praven-kumar2012_01 and update40 * replace praveen-kumar2011_01 by praveen-kumar2012_01 and update 39 41 40 42 - fplod 20120228 … … 94 96 </biblioset> 95 97 </biblioentry> 96 <biblioentry xml:id="prave n-kumar2012_01">97 <!-- ++ bibte kkey PraveenkumarVialardEtAl:CD:2012-->98 <biblioentry xml:id="praveen-kumar2012_01"> 99 <!-- ++ bibtex key PraveenkumarVialardEtAl:CD:2012--> 98 100 <authorgroup> 99 101 <author> <personname> <surname>Praveen Kumar</surname> <firstname>B.</firstname> </personname> </author> -
trunk/adm/website/conf.py
r203 r204 20 20 # - fplod 20110330T142745Z aedon.locean-ipsl.upmc.fr (Darwin) 21 21 # 22 # * add path for matplo blib extension of sphinx f(python installation)22 # * add path for matplotlib extension of sphinx f(python installation) 23 23 # 24 24 # EVOLUTIONS -
trunk/adm/website/contact.rst
r146 r204 6 6 .. 7 7 .. learn to use :fieldname: nocomments 8 .. cf http://sphinx.pocoo.org/markup/misc.html?highlight=comment9 .. to avoid seeing snip ets of this header on search results page.8 .. cf. http://sphinx.pocoo.org/markup/misc.html?highlight=comment 9 .. to avoid seeing snippets of this header on search results page. 10 10 .. 11 11 .. EVOLUTIONS … … 38 38 ======= 39 39 40 For any scientific queries or issues regarding TropFlux data, please contact us using the following mailing list (mailto:tropflux@locean-ipsl.upmc.fr). 40 For any scientific queries or issues regarding TropFlux data, 41 please contact us using the following 42 mailing list (mailto:tropflux@locean-ipsl.upmc.fr). -
trunk/adm/website/data/changes.rst
r203 r204 25 25 .. - fplod 20130725T150201Z cratos.locean-ipsl.upmc.fr (Linux) 26 26 .. 27 .. * introduc ting update until March 2013 included27 .. * introducing update until March 2013 included 28 28 .. 29 29 .. - fplod 20130725T131036Z cratos.locean-ipsl.upmc.fr (Linux) … … 33 33 .. - fplod 20121221T174433Z cratos.locean-ipsl.upmc.fr (Linux) 34 34 .. 35 .. * introduc ting update until July 2012 included35 .. * introducing update until July 2012 included 36 36 .. 37 37 .. - fplod 20120229 … … 129 129 130 130 - correction of :file:`ws_tropflux_1m_1989_2010.nc` and 131 :file:`ws_tropflux_1d_1989_2010.nc` due to unappropriatedunit conversion131 :file:`ws_tropflux_1d_1989_2010.nc` due to inappropriate unit conversion 132 132 133 133 .. _20110707: -
trunk/adm/website/data_access.rst
r203 r204 24 24 .. - fplod 20130726T175139Z cratos.locean-ipsl.upmc.fr (Linux) 25 25 .. 26 .. * introduc ting update until March 2013 included26 .. * introducing update until March 2013 included 27 27 .. 28 28 .. - fplod 20130725T131417Z cratos.locean-ipsl.upmc.fr (Linux) … … 32 32 .. - fplod 20121221T174433Z cratos.locean-ipsl.upmc.fr (Linux) 33 33 .. 34 .. * introduc ting update until july 2012 included34 .. * introducing update until july 2012 included 35 35 .. 36 36 .. - jv 20120229 37 37 .. 38 .. * add LOCEAN in a knowledgement sentence38 .. * add LOCEAN in acknowledgement sentence 39 39 .. 40 40 .. - fplod 20120229 … … 107 107 Please acknowledge us by using the following sentence: 108 108 **The TropFlux data is produced under a collaboration between 109 Laboratoire d'Oc éanographie: Expérimentation et Approches Numériques (LOCEAN) from109 Laboratoire d'Océanographie: Expérimentation et Approches Numériques (LOCEAN) from 110 110 Institut Pierre Simon Laplace (IPSL, Paris, France) and 111 111 National Institute of Oceanography/CSIR (NIO, Goa, India), and 112 supported by Institut de Recherche pour le D éveloppement (IRD, France).112 supported by Institut de Recherche pour le Développement (IRD, France). 113 113 TropFlux relies on data provided by the ECMWF Re-Analysis interim (ERA-I) 114 114 and ISCCP projects.** -
trunk/adm/website/description.rst
r203 r204 10 10 .. ==== 11 11 .. 12 .. (July 1983 to December 2009 at the time of writing), ... not any more true12 .. (July 1983 to December 2009 at the time of writing), ... not any more true 13 13 .. 14 14 .. EVOLUTIONS … … 38 38 .. 39 39 .. * creation from description.odt 40 .. transform to ReS T using odt2sphinx + hand correction (diacritical,41 .. ponctuations, short lines, links !!)40 .. transform to ReStructuredText using odt2sphinx + hand correction 41 .. (diacritical, punctuations, short lines, links !!) 42 42 .. 43 43 .. - … … 78 78 79 79 * **An additional climatological surface temperature-dependent gustiness 80 is applied to wind speed, in order to account for unresolved (sub-daily and subgrid-scale) variability.** 80 is applied to wind speed, in order to account for unresolved (sub-daily 81 and subgrid-scale) variability.** 81 82 82 83 * Since ISCCP shortwave data -
trunk/adm/website/documentation.rst
r203 r204 9 9 .. ======== 10 10 .. 11 .. publication, bibliogra hy11 .. publication, bibliography 12 12 .. 13 13 .. TODO … … 39 39 .. 40 40 .. * add PraveenkumarVialardEtAl:CD:2012 and PraveenkumarVialardEtAl:CE:2012 41 .. 41 42 .. - fplod 20110623T152527Z aedon.locean-ipsl.upmc.fr (Darwin) 42 43 .. -
trunk/adm/website/gen_logo.sh
r203 r204 17 17 # see sample_tut from matplotlib for Sphinx usage 18 18 # 19 # see ImageMagick for image cr ation http://www.imagemagick.org/Usage/draw/19 # see ImageMagick for image creation http://www.imagemagick.org/Usage/draw/ 20 20 # 21 21 # TODO … … 25 25 # or in ../makefile 26 26 # 27 28 27 # EVOLUTIONS 29 28 # ========== -
trunk/adm/website/index.rst
r203 r204 38 38 .. - fplod 20110623T153038Z aedon.locean-ipsl.upmc.fr (Darwin) 39 39 .. 40 .. * replace bibliogra hy by publications40 .. * replace bibliography by publications 41 41 .. * outline from jv 42 42 .. -
trunk/adm/website/maintropflux.xml
r199 r204 15 15 main page of the project survey 16 16 17 DESCRIPTI ION18 =========== =17 DESCRIPTION 18 =========== 19 19 20 20 This file in DocBook 5 will be processed by superbib tools -
trunk/adm/website/motivation.rst
r197 r204 9 9 .. ==== 10 10 .. 11 .. bold is implemented with either ** .. ** and :strong:`..`, but wit gh none11 .. bold is implemented with either ** .. ** and :strong:`..`, but with none 12 12 .. of these way I manage to mix text and hyperlink 13 13 .. … … 50 50 .. 51 51 .. * creation from motivation.odt 52 .. transform to ReS T using odt2sphinx + hand correction (diacritical,53 .. ponctuations, short lines, links !!)52 .. transform to ReStructuredText using odt2sphinx + hand correction 53 .. (diacritical, punctuations, short lines, links !!) 54 54 .. 55 55 .. - … … 68 68 The tropics play an important role in the earth's climate and energy cycle. 69 69 The tropical oceans gain heat from downward shortwave radiation, allowing for 70 very high surface temperature (above 28 °C) in the Indo-Pacific and70 very high surface temperature (above 28°C) in the Indo-Pacific and 71 71 Atlantic warm pools. 72 72 This high sea surface temperature can cause the atmospheric boundary layer to … … 84 84 Bjerknes feedback, a positive feedback between the surface wind signal related 85 85 to deep atmospheric convection and its dynamical oceanic response, which is 86 critical to phenomena like El Ni ño (e.g. McPhaden et al. 2006) and the Indian86 critical to phenomena like El Niño (e.g. McPhaden et al. 2006) and the Indian 87 87 Ocean Dipole (Webster et al. 1999; Saji et al. 1999). 88 88 Those examples illustrate how an accurate knowledge of air-sea heat and … … 92 92 fluxes that resolve the main phenomena of the tropical climate, at 93 93 intraseasonal (Madden-Julian Oscillation, monsoon active and break phases), 94 seasonal and interannual (El Ni ño, Indian Ocean Dipole ...) time scales.**94 seasonal and interannual (El Niño, Indian Ocean Dipole ...) time scales.** 95 95 96 96 -
trunk/adm/website/overview.rst
r203 r204 20 20 .. - fplod 20121221T174433Z cratos.locean-ipsl.upmc.fr (Linux) 21 21 .. 22 .. * introduc ting update until july 2012 included22 .. * introducing update until July 2012 included 23 23 .. 24 24 .. … … 70 70 71 71 The TropFlux project aims at providing daily, timely, accurate air-sea heat 72 and momentum flux data for the entire 30 °N-30°S region.72 and momentum flux data for the entire 30°N-30°S region. 73 73 74 74 Wind stresses and the four components of net surface heat flux are currently … … 108 108 109 109 The TropFlux product has been developed under a collaboration between the 110 `Laboratoire d'Oc éanographie: Expérimentation et Approches Numériques (LOCEAN) <http://www.locean-ipsl.upmc.fr/>`_ from110 `Laboratoire d'Océanographie: Expérimentation et Approches Numériques (LOCEAN) <http://www.locean-ipsl.upmc.fr/>`_ from 111 111 `Institut Pierre Simon Laplace <http://www.ipsl.fr/>`_, France and 112 112 `National Institute of Oceanography/CSIR <http://www.nio.org/>`_, India. 113 113 Bilateral scientific visits to France and India have been supported by 114 `Institut de Recherche pour le D éveloppement <http://www.ird.fr/>`_, France.114 `Institut de Recherche pour le Développement <http://www.ird.fr/>`_, France. 115 115 -
trunk/adm/website/publications.rst
r200 r204 12 12 .. 13 13 .. either look for improvement of citation within docutils or 14 .. (favo rite option .. in progress) connect sphinx and superbib14 .. (favourite option .. in progress) connect sphinx and superbib 15 15 .. 16 16 .. EVOLUTIONS … … 81 81 .. 82 82 .. * no more usage references defined in bibliography.rst because 83 .. citation are ugly (only [bibkey]). In fact it is not a Sp lhinx pb but84 .. a docu ils's one83 .. citation are ugly (only [bibkey]). In fact it is not a Sphinx pb but 84 .. a docutils's one 85 85 .. Now I copy bibliography.rst ! 86 86 .. -
trunk/adm/website/selected_results.rst
r203 r204 11 11 .. Why is there a blank space above figure 1? (jv) 12 12 .. 13 .. solved with sphinx >= 1.0.8 (tested with 1.1.2 but not yet avail ble on13 .. solved with sphinx >= 1.0.8 (tested with 1.1.2 but not yet available on 14 14 .. cratos) 15 15 .. see http://sphinx.pocoo.org/changes.html 16 .. "#644: Fix spacing of cent ered figures in HTML output"16 .. "#644: Fix spacing of centred figures in HTML output" 17 17 .. 18 18 .. The units look ugly in the caption of figure 6 (jv) 19 .. 19 .. might a pb on latex configuration 20 20 .. 21 21 .. Add full references of the papers at the end (jv) … … 59 59 .. * split long lines 60 60 .. * units in math 61 .. * from selected_result ds.odt62 .. transform to MediaWiki by openofice and hand transformation to ReST63 .. (diacritical, ponctuations, short lines, links !!)61 .. * from selected_results.odt 62 .. transform to MediaWiki by OpenOffice and hand transformation to 63 .. ReStructuredText (diacritical, punctuations, short lines, links !!) 64 64 .. 65 65 .. - … … 159 159 In the eastern equatorial Indian ocean, there is also a clear interannual 160 160 wind stress variability associated with the Indian Ocean Dipole and remote 161 response to El Ni no.161 response to El Niño. 162 162 163 163 Intraseasonal variability -
trunk/adm/website/usertropflux.xml
r199 r204 2 2 <!DOCTYPE users SYSTEM "user.dtd"> 3 3 <!-- 4 DESCRITION 4 5 DESCRIPTION 5 6 ========== 6 7 … … 25 26 replace dtd by xsd when ready 26 27 27 Netcdf-CF standard name for code parameters28 netCDF-CF standard name for code parameters 28 29 29 30 EVOLUTIONS … … 127 128 <othername role='mi'></othername> 128 129 </personname> 129 <status>produc ter</status>130 <status>producer</status> 130 131 <email>Jerome.Vialard@locean-ipsl.upmc.fr</email> 131 132 <parameters> … … 263 264 <othername role='mi'></othername> 264 265 </personname> 265 <status>produc ter</status>266 <status>producer</status> 266 267 <email>pkb_ocean@yahoo.co.in</email> 267 268 <parameters> … … 325 326 </user> 326 327 <user> 327 <userid>LENGAI NE_m</userid>328 <userid>LENGAIGNE_m</userid> 328 329 <personname> 329 330 <surname>Lengaigne</surname> -
trunk/docs/docs_dev/source/guides/README.rst
r110 r204 14 14 .. - fplod 20101209T085931Z aedon.locean-ipsl.upmc.fr (Darwin) 15 15 .. 16 .. * creation inspired by ReS Tfiles of16 .. * creation inspired by ReStructuredText files of 17 17 .. http://bazaar.launchpad.net/~mgedmin/objgraph/trunk/ 18 18 .. thanks to sphinx mailing list -
trunk/docs/docs_dev/source/guides/bibliography.rst
r203 r204 29 29 .. - fplod 20110622T155451Z aedon.locean-ipsl.upmc.fr (Darwin) 30 30 .. 31 .. * remove kumarVialard to avoid redondancies between this bibli graphy and31 .. * remove kumarVialard to avoid redondancies between this bibliography and 32 32 .. the web site one. same for LiebmannSmith:BAMS:1996 33 33 .. … … 66 66 .. [BourlesLumpkinEtAL:BAMS:2008] Bourlès, B., Lumpkin, R., McPhaden, M. J., Hernandez, F., Nobre, P., Campos, E., Yu, L. S., Planton, S., Busalacchi, A., Moura, A. D., Servain, J. and Trotte, J. *The PIRATA program : history, accomplishments, and future directions*, Bulletin of the American Meteorological Society, 2008, Vol. 89(8), pp. 1111-1125, http://dx.doi.org/10.1175/2008BAMS2462.1 67 67 68 .. [McPhadenMeyersEtAl:BAMS:2009] McPhaden, M. J., G. Meyers, K. Ando,Y. Masumoto, V. S. N. Murty, M. Ravichandran, F. Syamsudin, J. Vialard, L. Yu, and W. Yu, 2009: RAMA: The Research Moored Array for African-Asian-Australian Monso on Analysis and Prediction. Bull. Am. Meteorol. Soc., 90, 459-480, doi:10.1175/2008BAMS2608.168 .. [McPhadenMeyersEtAl:BAMS:2009] McPhaden, M. J., G. Meyers, K. Ando,Y. Masumoto, V. S. N. Murty, M. Ravichandran, F. Syamsudin, J. Vialard, L. Yu, and W. Yu, 2009: RAMA: The Research Moored Array for African-Asian-Australian Monsoon on Analysis and Prediction. Bull. Am. Meteorol. Soc., 90, 459-480, doi:10.1175/2008BAMS2608.1 69 69 70 70 .. [McPhadenBusalacchiEtAL:JGR:1998] McPhaden, M.J., A.J. Busalacchi, R. Cheney, J.R. Donguy, K.S. Gage, D. Halpern, M. Ji, P. Julian, G. Meyers, G.T. Mitchum, P.P. Niiler, J. Picaut, R.W. Reynolds, N. Smith, K. Takeuchi, 1998: The Tropical Ocean-Global Atmosphere (TOGA) observing system: A decade of progress. J. Geophys. Res., 103, 14, 169-14,24 -
trunk/docs/docs_dev/source/guides/data_content.rst
r203 r204 17 17 .. ATTENTION : dans le champ "Name" des conditions, ne pas mettre prenom nom, seulement NOM. 18 18 .. 19 .. récup eration des fichiers Netcdf: cliquer sur la carte du monde, puis sur inter-tropical band.19 .. récupération des fichiers netCDF : cliquer sur la carte du monde, puis sur inter-tropical band. 20 20 .. 21 21 .. il vaut mieux demande une seule variable à la fois. … … 42 42 .. - fplod 20110421T085807Z aedon.locean-ipsl.upmc.fr (Darwin) 43 43 .. 44 .. * add biblio on TAO/TRIT ION, PIRATA, and RAMA44 .. * add biblio on TAO/TRITON, PIRATA, and RAMA 45 45 .. * add contact section 46 46 .. -
trunk/docs/docs_dev/source/guides/future.rst
r110 r204 6 6 .. anchors 7 7 .. 8 .. better ReS T8 .. better ReStructuredText 9 9 .. 10 10 .. EVOLUTIONS -
trunk/docs/docs_dev/source/guides/generate_statistics.rst
r110 r204 6 6 .. anchors 7 7 .. 8 .. better ReS T8 .. better ReStructuredText 9 9 .. 10 10 .. EVOLUTIONS -
trunk/docs/docs_dev/source/guides/generate_tropflux.rst
r203 r204 6 6 .. anchors 7 7 .. 8 .. better ReS T8 .. better ReStructuredText 9 9 .. 10 10 .. pb with math directives on aedon : probably some latex installation pb 11 11 .. 12 12 .. ref to tropflux.sh covering the 3 last steps 13 ..14 13 .. 15 14 .. EVOLUTIONS … … 27 26 .. 28 27 .. * revision of steps with pk 29 .. * revis on of ISCCP paragraph28 .. * revision of ISCCP paragraph 30 29 .. 31 30 .. - fplod 20101222T173813Z aedon.locean-ipsl.upmc.fr (Darwin) … … 109 108 110 109 The OLR interpolation also involves combining the delayed time and realtime OLR 111 datasets, which is 110 datasets, which is not done extremely cleanly now. 112 111 113 112 - :func:`interp_olr_30n30s` -
trunk/docs/docs_dev/source/guides/history.rst
r203 r204 6 6 .. anchors 7 7 .. 8 .. better ReS T8 .. better ReStructuredText 9 9 .. 10 10 .. EVOLUTIONS -
trunk/docs/docs_dev/source/guides/updatedata.rst
r203 r204 175 175 176 176 Once comparison is done and PI happy, 177 ++ clean ning or modify newdir177 ++ cleaning or modify newdir 178 178 179 179 .. _copynew2: … … 246 246 A email must be send to TropFlux list to warn about the new dataset. 247 247 248 Une mise à jour doit être envoyée aux contacts dans les inst utions qui mentionne notre jeu de données (NIO).249 248 Une mise à jour doit être envoyée aux contacts dans les institutions qui 249 mentionnent notre jeu de données (NIO). 250 250 251 251 .. toctree:: -
trunk/docs/docs_dev/source/guides/updatedata/updatedata_20130725.rst
r203 r204 78 78 export newdir 79 79 80 Is there enough tspace ?80 Is there enough space ? 81 81 82 82 .. parsed-literal:: … … 182 182 183 183 Once comparison is done and PI happy, 184 ++ clean ning or modify newdir184 ++ cleaning or modify newdir 185 185 186 186 .. _copynew2_20130725: … … 207 207 .. warning:: 208 208 209 This sequence do not work on cratos because no ftp command on this plat eform.210 It has been launched on cerbere.locean-ipsl.upm mc.fr209 This sequence do not work on cratos because no ftp command on this platform. 210 It has been launched on cerbere.locean-ipsl.upmc.fr 211 211 212 212 .. parsed-literal:: … … 227 227 .. warning:: 228 228 229 This sequence do not work on cratos because no ftp command on this plat eform.230 It has been launched on cerbere.locean-ipsl.upm mc.fr229 This sequence do not work on cratos because no ftp command on this platform. 230 It has been launched on cerbere.locean-ipsl.upmc.fr 231 231 232 232 .. parsed-literal:: … … 259 259 svn commit pour tous les fichiers modifiés lors de cette mise à jour 260 260 261 Clean ning261 Cleaning 262 262 --------- 263 263 -
trunk/src/add_19890101.sh
r203 r204 25 25 # If this option is set, :samp:`ncdump -v tt` will be added to log file 26 26 # 27 # Artificial y add 19890101 to lwr interpolated on OAFLUX grid dataset.27 # Artificially add 19890101 to lwr interpolated on OAFLUX grid dataset. 28 28 # 29 29 # :file:`${PROJECT_OD}/erai_lwr_19890102_20091231_oafluxgrid.nc` … … 43 43 # :func:`lwr_correction_ncdf`. 44 44 # 45 # Log file is written on :file:`${PROJECT_LOG}/add_19890101.sh.log.{YYYYMMDDTHHMMSSZ}` 45 # Log file is written on 46 # :file:`${PROJECT_LOG}/add_19890101.sh.log.{YYYYMMDDTHHMMSS}Z`. 46 47 # 47 48 # .. graphviz:: … … 49 50 # digraph add_19890101 { 50 51 # 51 # filein [shape=ellipse,fontname=Courier,label="${PROJECT_OD}/erai_lwr_19890102_20091231_oafluxgrid.nc"]; 52 # fileout [shape=ellipse,fontname=Courier,label="${PROJECT_OD}/erai_lwr_19890101_20091231_oafluxgrid.nc"]; 52 # filein [shape=ellipse, 53 # fontname=Courier, 54 # label="${PROJECT_OD}/erai_lwr_19890102_20091231_oafluxgrid.nc"]; 55 # 56 # fileout [shape=ellipse, 57 # fontname=Courier, 58 # label="${PROJECT_OD}/erai_lwr_19890101_20091231_oafluxgrid.nc"]; 53 59 # 54 60 # add_19890101 [shape=box, … … 140 146 # coding rules 141 147 # 142 # won't it be more conveni ant to add this articifial time step in148 # won't it be more convenient to add this artificial time step in 143 149 # the IDL creation tool interp_erai_lwr_1989_2009.pro. 144 150 # It will allow to avoid a shell interruption in the IDL processing chain. … … 152 158 # remove hard coded end time 153 159 # 154 # get rid of this long mes age on cratos:160 # get rid of this long message on cratos: 155 161 # 156 162 # .. parsed-literal:: … … 173 179 # http://nco.sf.net/nco.html#xmp_ncrename 174 180 # 175 # ... on a déjà une id ee de la solution : convention CF et meilleure gestion des176 # valeurs manquantes dans les softs IDL !!!181 # ... on a déjà une idée de la solution : convention CF et meilleure gestion 182 # des valeurs manquantes dans les softs IDL !!! 177 183 # 178 184 # EVOLUTIONS … … 186 192 # 187 193 # * creation from pk email 20110811 "lwr first timestep" 188 # * include time correction and timerange modificat on194 # * include time correction and timerange modification 189 195 # 190 196 #- … … 354 360 # ++ check if tt[0] is really 19890102 355 361 # 356 # sub stract 1 to tt to simulate 19890101362 # subtract 1 to tt to simulate 19890101 357 363 ncap2 -h -s "tt=tt-1" \ 358 364 ${PROJECT_OD}/erai_lwr_step19890102.nc \ … … 403 409 fi 404 410 # 405 # clean ning411 # cleaning 406 412 #++rm -f ${PROJECT_OD}/erai_lwr_step19890101.nc 2> /dev/null 407 413 #++rm -f ${PROJECT_OD}/erai_lwr_step19890102.nc 2> /dev/null -
trunk/src/basic_variable_evaluation_tpr_timeseries.pro
r203 r204 52 52 pro basic_variable_evaluation_tpr_timeseries, $ 53 53 ; var, $ ;; basic variable (sst, t2m, q2m, ws) to calculate the statistics 54 date1, $ ;; start date (in julian date. eg. 20000101)55 date2 ;; end date (in julian date eg. 20091231)54 date1, $ ;; start date (in Julian date. eg. 20000101) 55 date2 ;; end date (in Julian date eg. 20091231) 56 56 @common 57 57 @cm_project -
trunk/src/calc_cloud_vlat.pro
r181 r204 7 7 ; .. function:: calc_cloud_vlat(jday, swr, xlat) 8 8 ; 9 ; DESCRI TPION9 ; DESCRIPTION 10 10 ; =========== 11 11 ; … … 19 19 ; INPUT: 20 20 ; jday: value jday 21 ; SWR: vector of 21 ; SWR: vector of SW rad in Watts/m^2 22 22 ; XLAT: corresponding vector of lat 23 23 ; … … 74 74 ;B2 = B2+(-38.79 + 2.43*XLAT - 0.034*XLAT^2)*((abs(XLAT) gt 40.) and (abs(XLAT) le 60.)) 75 75 ; 76 77 76 DAY=jday ; day is day of that year; 77 XDIV=365.15 78 78 ; 79 79 ; CALCULATE PHI 80 80 PHI = (360./XDIV * (DAY-21.0))*pi/180. 81 81 ; 82 ; CALCULATE Q0; MULTIP Y BY .4846 TO CONVERT FROM82 ; CALCULATE Q0; MULTIPLY BY .4846 TO CONVERT FROM 83 83 ; LY/DAY TO W/M**2 84 85 84 Q0 = A0+A1*cos(PHI)+B1*sin(PHI)+A2*cos(2*PHI)+B2*sin(2*PHI); 85 Q0=Q0*.4846; 86 86 ; 87 88 89 87 SNALPHA=sin(XLAT*pi/180)*sin(23.45*sin((DAY-82)*pi/180)*pi/180) + $ 88 cos(XLAT*pi/180)*cos(23.45*sin((DAY-82)*pi/180)*pi/180) 89 ALPHA = asin(SNALPHA)*180/pi 90 90 ; 91 ; SEE MARINE CLIMATE ATLAS OF TROPICAL PACIF C OCEAN, WEARE,STRUB,91 ; SEE MARINE CLIMATE ATLAS OF TROPICAL PACIFIC OCEAN, WEARE,STRUB, 92 92 ; AND SAMUEL -- UC,DAVIS; THIS IS ACTUALLY REEDS 1977 93 93 ; FORMULA 94 95 94 CLD = (1.0+0.0019*ALPHA-SWR/Q0)/.62 95 Qclsky = Q0 96 96 ; 97 97 indx=where(CLD ge 1.0) -
trunk/src/change_creation_date.sh
r203 r204 33 33 # base location of the dataset to be changed 34 34 # 35 # Modify creation_date global attribute in the dataset based under dirin parameter 36 # 37 # Log file is written on :file:`${PROJECT_LOG}/change_creation_date.sh.log.{YYYYMMDDTHHMMSSZ}` 35 # Modify creation_date global attribute in the dataset based under 36 # dirin parameter 37 # 38 # Log file is written on 39 # :file:`${PROJECT_LOG}/change_creation_date.sh.log.{YYYYMMDDTHHMMSS}Z`. 38 40 # 39 41 # .. graphviz:: … … 138 140 if [ ${#} -lt ${minargcount} ] 139 141 then 140 echo "${command} : eee : not enough targuments"142 echo "${command} : eee : not enough arguments" 141 143 echo "${usage}" 142 144 exit 1 … … 281 283 unset filein 282 284 # 283 # clean ning285 # cleaning 284 286 #++ 285 287 #++ set -
trunk/src/change_time_range.sh
r203 r204 39 39 # Modify time_range global attribute in the dataset based under dirin parameter 40 40 # 41 # Log file is written on :file:`${PROJECT_LOG}/change_time_range.sh.log.{YYYYMMDDTHHMMSSZ}` 41 # Log file is written on 42 # :file:`${PROJECT_LOG}/change_time_range.sh.log.{YYYYMMDDTHHMMSS}Z`. 42 43 # 43 44 # .. graphviz:: … … 144 145 if [ ${#} -lt ${minargcount} ] 145 146 then 146 echo "${command} : eee : not enough targuments"147 echo "${command} : eee : not enough arguments" 147 148 echo "${usage}" 148 149 exit 1 … … 314 315 unset filein 315 316 # 316 # clean ning317 # cleaning 317 318 #++ 318 319 #++ set -
trunk/src/compute_erai_daily_region_2d.sh
r203 r204 35 35 # .. option:: -e end date <yyyymmdd> 36 36 # 37 # Put in ${PROJECT_ID} ERA-Intermin uninterpolated reference files. 38 # 39 # Log file is written on :file:`${PROJECT_LOG}/compute_erai_daily_region_2d.log.{YYYYMMDDTHHMMSSZ}` 37 # Put in ${PROJECT_ID} ERA-Interim uninterpolated reference files. 38 # 39 # Log file is written on 40 # :file:`${PROJECT_LOG}/compute_erai_daily_region_2d.log.{YYYYMMDDTHHMMSS}Z`. 40 41 # 41 42 # .. graphviz:: … … 43 44 # digraph compute_erai_daily_region_2d { 44 45 # 45 # filein_str [shape=ellipse,fontname=Courier,label="/bdd/ERAI/NETCDF/GLOBAL_075/4xdaily/FC_SF/yyyy/mm/str.yyyymmdd.fshei.GLOBAL_075.nc"]; 46 # filein_msl [shape=ellipse,fontname=Courier,label="/bdd/ERAI/NETCDF/GLOBAL_075/4xdaily/AN_SF/yyyy/msl.yyyymm.ashei.GLOBAL_075.nc"]; 47 # filein_sstk [shape=ellipse,fontname=Courier,label="/bdd/ERAI/NETCDF/GLOBAL_075/4xdaily/AN_SF/yyyy/sstk.yyyymm.ashei.GLOBAL_075.nc"]; 48 # filein_t2 [shape=ellipse,fontname=Courier,label="/bdd/ERAI/NETCDF/GLOBAL_075/4xdaily/AN_SF/yyyy/t2.yyyymm.ashei.GLOBAL_075.nc"]; 49 # filein_d2 [shape=ellipse,fontname=Courier,label="/bdd/ERAI/NETCDF/GLOBAL_075/4xdaily/AN_SF/yyyy/d2.yyyymm.ashei.GLOBAL_075.nc"]; 50 # filein_u10 [shape=ellipse,fontname=Courier,label="/bdd/ERAI/NETCDF/GLOBAL_075/4xdaily/AN_SF/yyyy/u10.yyyymm.ashei.GLOBAL_075.nc"]; 51 # filein_v10 [shape=ellipse,fontname=Courier,label="/bdd/ERAI/NETCDF/GLOBAL_075/4xdaily/AN_SF/yyyy/v10.yyyymm.ashei.GLOBAL_075.nc"]; 52 # 53 # fileout_str [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/erai_TROP_1d_yyyy0101_yyyy1231_str_gridOrig.nc"]; 54 # fileout_msl [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/erai_TROP_1d_yyyy0101_yyyy1231_msl_gridOrig.nc"]; 55 # fileout_sstk [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/erai_TROP_1d_yyyy0101_yyyy1231_sstk_gridOrig.nc"]; 56 # fileout_t2 [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/erai_TROP_1d_yyyy0101_yyyy1231_t2_gridOrig.nc"]; 57 # fileout_d2 [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/erai_TROP_1d_yyyy0101_yyyy1231_d2_gridOrig.nc"]; 58 # fileout_u10 [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/erai_TROP_1d_yyyy0101_yyyy1231_u10_gridOrig.nc"]; 59 # fileout_v10 [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/erai_TROP_1d_yyyy0101_yyyy1231_v10_gridOrig.nc"]; 46 # filein_str [shape=ellipse, 47 # fontname=Courier,label="/bdd/ERAI/NETCDF/GLOBAL_075/4xdaily/FC_SF/yyyy/mm/str.yyyymmdd.fshei.GLOBAL_075.nc"]; 48 # filein_msl [shape=ellipse, 49 # fontname=Courier, 50 # label="/bdd/ERAI/NETCDF/GLOBAL_075/4xdaily/AN_SF/yyyy/msl.yyyymm.ashei.GLOBAL_075.nc"]; 51 # filein_sstk [shape=ellipse, 52 # fontname=Courier, 53 # label="/bdd/ERAI/NETCDF/GLOBAL_075/4xdaily/AN_SF/yyyy/sstk.yyyymm.ashei.GLOBAL_075.nc"]; 54 # filein_t2 [shape=ellipse, 55 # fontname=Courier, 56 # label="/bdd/ERAI/NETCDF/GLOBAL_075/4xdaily/AN_SF/yyyy/t2.yyyymm.ashei.GLOBAL_075.nc"]; 57 # filein_d2 [shape=ellipse, 58 # fontname=Courier, 59 # label="/bdd/ERAI/NETCDF/GLOBAL_075/4xdaily/AN_SF/yyyy/d2.yyyymm.ashei.GLOBAL_075.nc"]; 60 # filein_u10 [shape=ellipse, 61 # fontname=Courier, 62 # label="/bdd/ERAI/NETCDF/GLOBAL_075/4xdaily/AN_SF/yyyy/u10.yyyymm.ashei.GLOBAL_075.nc"]; 63 # filein_v10 [shape=ellipse, 64 # fontname=Courier, 65 # label="/bdd/ERAI/NETCDF/GLOBAL_075/4xdaily/AN_SF/yyyy/v10.yyyymm.ashei.GLOBAL_075.nc"]; 66 # 67 # fileout_str [shape=ellipse, 68 # fontname=Courier, 69 # label="${PROJECT_ID}/erai_TROP_1d_yyyy0101_yyyy1231_str_gridOrig.nc"]; 70 # fileout_msl [shape=ellipse, 71 # fontname=Courier, 72 # label="${PROJECT_ID}/erai_TROP_1d_yyyy0101_yyyy1231_msl_gridOrig.nc"]; 73 # fileout_sstk [shape=ellipse, 74 # fontname=Courier, 75 # label="${PROJECT_ID}/erai_TROP_1d_yyyy0101_yyyy1231_sstk_gridOrig.nc"]; 76 # fileout_t2 [shape=ellipse, 77 # fontname=Courier, 78 # label="${PROJECT_ID}/erai_TROP_1d_yyyy0101_yyyy1231_t2_gridOrig.nc"]; 79 # 80 # fileout_d2 [shape=ellipse, 81 # fontname=Courier, 82 # label="${PROJECT_ID}/erai_TROP_1d_yyyy0101_yyyy1231_d2_gridOrig.nc"]; 83 # 84 # fileout_u10 [shape=ellipse, 85 # fontname=Courier, 86 # label="${PROJECT_ID}/erai_TROP_1d_yyyy0101_yyyy1231_u10_gridOrig.nc"]; 87 # fileout_v10 [shape=ellipse, 88 # fontname=Courier, 89 # label="${PROJECT_ID}/erai_TROP_1d_yyyy0101_yyyy1231_v10_gridOrig.nc"]; 60 90 # 61 91 # compute_erai_daily_region_2d [shape=box, … … 76 106 # ======== 77 107 # 78 # On climserv only if you don't have any ERA-I reference data,108 # On ClimServ only if you don't have any ERA-I reference data, 79 109 # you just have to run this tool : 80 110 # … … 135 165 # coding rules 136 166 # 137 # correction of min and max values of latitude attributes (still -90,+90 !) in output files 138 # 139 # are cmonthmin and cmonthmax the real info to put in output file name ? may be not because if input files do not exist 140 # 141 # same idea for day min and max - some time hard coded with 01 or 31 (avoid yyyy0231 !!) 167 # correction of min and max values of latitude attributes (still -90,+90 !) 168 # in output files 169 # 170 # are cmonthmin and cmonthmax the real info to put in output file name ? 171 # may be not because if input files do not exist 172 # 173 # same idea for day min and max - some time hard coded with 01 or 31 174 # (avoid yyyy0231 !!) 142 175 # 143 176 # solve this kind of warning: … … 161 194 # still true after ncflint/cdo arithmetic ? 162 195 # 163 # Modify global attributes : Still CF ? no more "five time values per day " in Forecast attributes 196 # Modify global attributes : Still CF ? 197 # no more "five time values per day " in Forecast attributes 164 198 # 165 199 # enrich info in log file … … 184 218 # * add parameter --debug 185 219 # * add parameter --diff_cmd to choose between ncflint and cdo 186 # * usage of :samp:`cdo sub` and :samp: cdo divc,86400.` if parameter --diff_cmd is set to cdo 220 # * usage of :samp:`cdo sub` and :samp: cdo divc,86400.` if 221 # parameter --diff_cmd is set to cdo 187 222 # thanks to https://code.zmaw.de/embedded/cdo/1.4.7/cdo.html#x1-2280002.7.4 188 # * add natural language explanation on ncfli t usage provided by Matthieu223 # * add natural language explanation on ncflint usage provided by Matthieu 189 224 # 190 225 # - fplod 20110127T142038Z … … 276 311 if [ ${#} -lt ${minargcount} ] 277 312 then 278 echo "${command} : eee : not enough targuments"313 echo "${command} : eee : not enough arguments" 279 314 echo "${usage}" 280 315 exit 1 … … 508 543 case "${diff_cmd}" in 509 544 ncflint) 510 # différence entre les forcast a 36 et a 12h (pour avoir des flux par jour) et la constante suivant le -w permet de se ramener a des unites connues 545 # différence entre les forcast a 36 et a 12h (pour 546 # avoir des flux par jour) et la constante suivant 547 # le -w permet de se ramener a des unites connues 511 548 ncflint -w 1.1574074,-1.1574074 ${dirtemp}/temp_time0.nc ${dirtemp}/temp_time4.nc ${dirtemp}/temp_time.nc 512 549 if [ ${debug} -eq 1 ] … … 514 551 ncdump -v time ${dirtemp}/temp_time.nc >> ${log} 2>&1 515 552 fi 516 # La deuxieme permet uniquement de passer en seconde. 1.1574074*.00001=1/86400. (jour a seconde) 553 # La deuxième permet uniquement de passer en seconde. 554 # 1.1574074*.00001=1/86400. (jour a seconde) 517 555 ncflint -w 0.00001,0.0 ${dirtemp}/temp_time.nc ${dirtemp}/temp_time.nc ${dirtemp}/temp_int_${var}_${yyyy}${cmonth}.nc 518 556 if [ ${debug} -eq 1 ] -
trunk/src/concat_eraiy.sh
r203 r204 29 29 # .. option:: -e end date <yyyymmdd> 30 30 # 31 # Concat ane yearly ERA-I files located31 # Concatenate yearly ERA-I files located 32 32 # in :file:`/net/adonis/usr/adonis/varclim/tropflux_v1/input` 33 33 # in ${PROJECT_ID} … … 40 40 # digraph concat_eraiy { 41 41 # 42 # filein_d2m [shape=ellipse,fontname=Courier,label="cratos:/net/adonis/usr/adonis/varclim/tropflux_v1/input/erai_d2m_yyyy.nc"]; 43 # filein_lwr [shape=ellipse,fontname=Courier,label="cratos:/net/adonis/usr/adonis/varclim/tropflux_v1/input/erai_lwr_yyyy.nc"]; 44 # filein_msl [shape=ellipse,fontname=Courier,label="cratos:/net/adonis/usr/adonis/varclim/tropflux_v1/input/erai_msl_yyyy.nc"]; 45 # filein_sst [shape=ellipse,fontname=Courier,label="cratos:/net/adonis/usr/adonis/varclim/tropflux_v1/input/erai_sst_yyyy.nc"]; 46 # filein_t2m [shape=ellipse,fontname=Courier,label="cratos:/net/adonis/usr/adonis/varclim/tropflux_v1/input/erai_t2m_yyyy.nc"]; 47 # filein_u10 [shape=ellipse,fontname=Courier,label="cratos:/net/adonis/usr/adonis/varclim/tropflux_v1/input/erai_u10_yyyy.nc"]; 48 # filein_v10 [shape=ellipse,fontname=Courier,label="cratos:/net/adonis/usr/adonis/varclim/tropflux_v1/input/erai_v10_yyyy.nc"]; 49 # 50 # fileout_d2m [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/erai_d2m_yyyyb_yyyye.nc"]; 51 # fileout_lwr [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/erai_lwr_yyyyb_yyyye.nc"]; 52 # fileout_msl [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/erai_msl_yyyyb_yyyye.nc"]; 53 # fileout_sst [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/erai_sst_yyyyb_yyyye.nc"]; 54 # fileout_t2m [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/erai_t2m_yyyyb_yyyye.nc"]; 55 # fileout_u10 [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/erai_u10_yyyyb_yyyye.nc"]; 56 # fileout_v10 [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/erai_v10_yyyyb_yyyye.nc"]; 42 # filein_d2m [shape=ellipse, 43 # fontname=Courier, 44 # label="cratos:/net/adonis/usr/adonis/varclim/tropflux_v1/input/erai_d2m_yyyy.nc"]; 45 # filein_lwr [shape=ellipse, 46 # fontname=Courier, 47 # label="cratos:/net/adonis/usr/adonis/varclim/tropflux_v1/input/erai_lwr_yyyy.nc"]; 48 # filein_msl [shape=ellipse, 49 # fontname=Courier, 50 # label="cratos:/net/adonis/usr/adonis/varclim/tropflux_v1/input/erai_msl_yyyy.nc"]; 51 # filein_sst [shape=ellipse, 52 # fontname=Courier, 53 # label="cratos:/net/adonis/usr/adonis/varclim/tropflux_v1/input/erai_sst_yyyy.nc"]; 54 # filein_t2m [shape=ellipse, 55 # fontname=Courier, 56 # label="cratos:/net/adonis/usr/adonis/varclim/tropflux_v1/input/erai_t2m_yyyy.nc"]; 57 # filein_u10 [shape=ellipse, 58 # fontname=Courier, 59 # label="cratos:/net/adonis/usr/adonis/varclim/tropflux_v1/input/erai_u10_yyyy.nc"]; 60 # filein_v10 [shape=ellipse, 61 # fontname=Courier, 62 # label="cratos:/net/adonis/usr/adonis/varclim/tropflux_v1/input/erai_v10_yyyy.nc"]; 63 # 64 # fileout_d2m [shape=ellipse, 65 # fontname=Courier, 66 # label="${PROJECT_ID}/erai_d2m_yyyyb_yyyye.nc"]; 67 # fileout_lwr [shape=ellipse, 68 # fontname=Courier, 69 # label="${PROJECT_ID}/erai_lwr_yyyyb_yyyye.nc"]; 70 # fileout_msl [shape=ellipse, 71 # fontname=Courier, 72 # label="${PROJECT_ID}/erai_msl_yyyyb_yyyye.nc"]; 73 # fileout_sst [shape=ellipse, 74 # fontname=Courier, 75 # label="${PROJECT_ID}/erai_sst_yyyyb_yyyye.nc"]; 76 # fileout_t2m [shape=ellipse, 77 # fontname=Courier, 78 # label="${PROJECT_ID}/erai_t2m_yyyyb_yyyye.nc"]; 79 # fileout_u10 [shape=ellipse, 80 # fontname=Courier, 81 # label="${PROJECT_ID}/erai_u10_yyyyb_yyyye.nc"]; 82 # fileout_v10 [shape=ellipse, 83 # fontname=Courier, 84 # label="${PROJECT_ID}/erai_v10_yyyyb_yyyye.nc"]; 57 85 # 58 86 # concat_eraiy [shape=box, … … 194 222 if [ ${#} -lt ${minargcount} ] 195 223 then 196 echo "${command} : eee : not enough targuments"224 echo "${command} : eee : not enough arguments" 197 225 echo "${usage}" 198 226 exit 1 -
trunk/src/cor30a.pro
r203 r204 12 12 ; COARE v3 algorithm to compute fluxes 13 13 ; 14 ; version with shortened iteration 14 ; version with shortened iteration modified Rt and Rq 15 15 ; 16 16 ; uses wave information wave period in s and wave ht in m … … 19 19 ; Oost et al. zo=50/2/pi L (u*/c)^4.5 if jwave=1 20 20 ; 21 ; taylor and yelland 21 ; taylor and yelland zo=1200 h*(L/h)^4.5 jwave=2 22 22 ; 23 23 ; :param u: wind speed (m/s) at height zu (m) … … 28 28 ; :param Q: bulk air spec hum (g/kg), height zq 29 29 ; :param Rs: downward solar flux (W/m^2) (modified because of cool skin) 30 ; :param Rl: down ard IR flux (W/m^2) (modified because of cool skin)30 ; :param Rl: downward IR flux (W/m^2) (modified because of cool skin) 31 31 ; :param rain: rain rate (mm/hr) 32 32 ; :param zi: PBL depth (m) … … 198 198 ;*************** bulk loop ************ 199 199 for i=1,nits do begin 200 zet=von*grav*zu/ta*(tsr*(1+0.61*Q)+.61*ta*qsr)/(usr*usr)/(1+0.61*Q)201 case jwave of202 0: zo=charn*usr*usr/grav+0.11*visa/usr203 1: zo=50./2/pi*lwave*(usr/cwave)^4.5+0.11*visa/usr ;Oost et al204 2: zo=1200*hwave*(hwave/lwave)^4.5+0.11*visa/usr ;Taylor and Yelland205 endcase206 rr=zo*usr/visa207 L=zu/zet208 ;zoq=min([1.15e-4,5.5e-5/rr^.6])209 zoq=(5.5e-5/rr^.6 < 1.15e-4)210 ;211 zot=zoq212 usr=ut*von/(alog(zu/zo)-psiu(zu/L))213 tsr=-(dt-dter*jcool)*von*fdg/(alog(zt/zot)-psit(zt/L))214 qsr=-(dq-wetc*dter*jcool)*von*fdg/(alog(zq/zoq)-psit(zq/L))215 Bf=-grav/ta*usr*(tsr+.61*ta*qsr)216 ;if (Bf gt 0) then begin217 ; ug=Beta*(Bf*zi)^.333218 ;endif else begin219 ; ug=.2220 ;endelse221 sw=(Bf gt 0)222 ug=sw*(Beta*(Bf*zi)^.333)+(1-sw)*.2223 ;224 ut=sqrt(du*du+ug*ug)225 Rnl=0.97*(5.67e-8*(ts-dter*jcool+tdk)^4-Rl)226 hsb=-rhoa*cpa*usr*tsr227 hlb=-rhoa*LLe*usr*qsr228 qout=Rnl+hsb+hlb229 dels=Rns*(.065+11*tkt-6.6e-5/tkt*(1-exp(-tkt/8.0e-4))) ; Eq.16 Shortwave230 qcol=qout-dels231 alq=Al*qcol+be*hlb*cpw/LLe ; Eq. 7 Buoy flux water200 zet=von*grav*zu/ta*(tsr*(1+0.61*Q)+.61*ta*qsr)/(usr*usr)/(1+0.61*Q) 201 case jwave of 202 0: zo=charn*usr*usr/grav+0.11*visa/usr 203 1: zo=50./2/pi*lwave*(usr/cwave)^4.5+0.11*visa/usr ;Oost et al 204 2: zo=1200*hwave*(hwave/lwave)^4.5+0.11*visa/usr ;Taylor and Yelland 205 endcase 206 rr=zo*usr/visa 207 L=zu/zet 208 ;zoq=min([1.15e-4,5.5e-5/rr^.6]) 209 zoq=(5.5e-5/rr^.6 < 1.15e-4) 210 ; 211 zot=zoq 212 usr=ut*von/(alog(zu/zo)-psiu(zu/L)) 213 tsr=-(dt-dter*jcool)*von*fdg/(alog(zt/zot)-psit(zt/L)) 214 qsr=-(dq-wetc*dter*jcool)*von*fdg/(alog(zq/zoq)-psit(zq/L)) 215 Bf=-grav/ta*usr*(tsr+.61*ta*qsr) 216 ;if (Bf gt 0) then begin 217 ; ug=Beta*(Bf*zi)^.333 218 ;endif else begin 219 ; ug=.2 220 ;endelse 221 sw=(Bf gt 0) 222 ug=sw*(Beta*(Bf*zi)^.333)+(1-sw)*.2 223 ; 224 ut=sqrt(du*du+ug*ug) 225 Rnl=0.97*(5.67e-8*(ts-dter*jcool+tdk)^4-Rl) 226 hsb=-rhoa*cpa*usr*tsr 227 hlb=-rhoa*LLe*usr*qsr 228 qout=Rnl+hsb+hlb 229 dels=Rns*(.065+11*tkt-6.6e-5/tkt*(1-exp(-tkt/8.0e-4))) ; Eq.16 Shortwave 230 qcol=qout-dels 231 alq=Al*qcol+be*hlb*cpw/LLe ; Eq. 7 Buoy flux water 232 232 233 233 ; if (alq gt 0) then begin … … 240 240 ; 241 241 ; endelse 242 sw=(alq gt 0)243 xlamx=sw*(6./(1+(bigc*alq/usr^4)^.75)^.333)+(1-sw)*6.0244 tkt=sw*(xlamx*visw/(sqrt(rhoa/rhow)*usr))+(1-sw)*(xlamx*visw/(sqrt(rhoa/rhow)*usr) < .01)245 ;246 247 dter=qcol*tkt/tcw ; Eq.12 Cool skin248 dqer=wetc*dter242 sw=(alq gt 0) 243 xlamx=sw*(6./(1+(bigc*alq/usr^4)^.75)^.333)+(1-sw)*6.0 244 tkt=sw*(xlamx*visw/(sqrt(rhoa/rhow)*usr))+(1-sw)*(xlamx*visw/(sqrt(rhoa/rhow)*usr) < .01) 245 ; 246 247 dter=qcol*tkt/tcw ; Eq.12 Cool skin 248 dqer=wetc*dter 249 249 250 250 endfor ;bulk iter loop … … 265 265 ;y=[[Rns],[-1.*Rnl],[-1.*hlb],[-1.*hsb],[-1.*RF],[tau]] 266 266 267 ;**************** Webb et al. corre ection ************267 ;**************** Webb et al. correction ************ 268 268 ;wbar=1.61*hlb/LLe/(1+1.61*Q)/rhoa+hsb/rhoa/cpa/ta ;formulation in hlb already includes webb 269 269 ;hl_webb=rhoa*wbar*Q*LLe … … 300 300 ; Ch= heat transfer coefficient at zt 301 301 ; Ce= moisture transfer coefficient at zq 302 ; Cdn_10= 10-m velocity drag coe eficient, including gustiness303 ; Chn_10= 10-m heat transfer coe eficient, including gustiness304 ; Cen_10= 10-m humidity transfer coe eficient, including gustiness302 ; Cdn_10= 10-m velocity drag coefficient, including gustiness 303 ; Chn_10= 10-m heat transfer coefficient, including gustiness 304 ; Cen_10= 10-m humidity transfer coefficient, including gustiness 305 305 306 306 return, y -
trunk/src/correct_terminology.sh
r203 r204 39 39 # Modify filenames in the dataset based under dirin parameter 40 40 # 41 # Log file is written on :file:`${PROJECT_LOG}/correct_terminology.sh.log.{YYYYMMDDTHHMMSSZ}` 41 # Log file is written on 42 # :file:`${PROJECT_LOG}/correct_terminology.sh.log.{YYYYMMDDTHHMMSS}Z`. 42 43 # 43 44 # .. graphviz:: … … 58 59 # ======== 59 60 # 60 # To modify files under /usr/lodyc/incas/fplod/tropflux_d/to_be_published/ because files are not named 61 # :file:`var_tropflux_1d_${yyyy}_{yyyy}.nc` but :file:`var_tropflux_1d_{yyyy}_{month}{yyyy}.nc`: 61 # To modify files under 62 # :file:`/usr/lodyc/incas/fplod/tropflux_d/to_be_published/` because files 63 # are not named 64 # :file:`var_tropflux_1d_${yyyy}_{yyyy}.nc` 65 # but 66 # :file:`var_tropflux_1d_{yyyy}_{month}{yyyy}.nc`: 62 67 # 63 68 # .. code-block:: bash … … 138 143 if [ ${#} -lt ${minargcount} ] 139 144 then 140 echo "${command} : eee : not enough targuments"145 echo "${command} : eee : not enough arguments" 141 146 echo "${usage}" 142 147 exit 1 … … 279 284 unset filein 280 285 # 281 # clean ning286 # cleaning 282 287 #++ 283 288 #++ set -
trunk/src/cronin_gustiness_ncdf.pro
r203 r204 29 29 ; digraph cronin_gustiness_ncdf { 30 30 ; 31 ; file_in [shape=ellipse,fontname=Courier,label="${PROJECT_OD}/TropFlux_sst_19890101_20091231.nc"]; 31 ; file_in [shape=ellipse, 32 ; fontname=Courier, 33 ; label="${PROJECT_OD}/TropFlux_sst_19890101_20091231.nc"]; 32 34 ; file_out [shape=ellipse,fontname=Courier,label="${PROJECT_OD}/TropFlux_gustiness_{yyyymmdd}_{yyyymmdd}.nc"]; 33 35 ; … … 90 92 ; 91 93 ; * pro -> func 92 ; * taking project_overw ite into account94 ; * taking project_overwrite into account 93 95 ; 94 96 ; - fplod 20110830T140029Z cratos (Linux) … … 144 146 ; test if ${PROJECT_OD} defined 145 147 CASE project_od_env OF 146 '' : BEGIN147 148 149 return, result150 151 ELSE: BEGIN152 153 154 155 148 '' : BEGIN 149 msg = 'eee : ${PROJECT_OD} is not defined' 150 ras = report(msg) 151 return, result 152 END 153 ELSE : BEGIN 154 msg = 'iii : ${PROJECT_OD} is ' + project_od_env 155 ras = report(msg) 156 END 157 ENDCASE 156 158 ; 157 159 ; check if output data will be possible … … 160 162 ; existence and protection for reading 161 163 IF (FILE_TEST(iodirout, /DIRECTORY, /EXECUTABLE, /READ) EQ 0) THEN BEGIN 162 msg = 'eee : the directory' + iodirout + ' is not accessible.'163 ras = report(msg)164 return, result164 msg = 'eee : the directory' + iodirout + ' is not accessible.' 165 ras = report(msg) 166 return, result 165 167 ENDIF 166 168 ; … … 181 183 fullfilename = isafile(iodirout + filename, NEW=0, /MUST_EXIST) 182 184 IF fullfilename[0] EQ '' THEN BEGIN 183 msg = 'eee : the file ' + fullfilename + ' was not found.'184 ras = report(msg)185 return, result185 msg = 'eee : the file ' + fullfilename + ' was not found.' 186 ras = report(msg) 187 return, result 186 188 ENDIF 187 189 ; … … 191 193 ; in order to avoid unexpected overwritten 192 194 IF ((FILE_TEST(fullfilename_out) EQ 1) AND (project_overwrite EQ 0)) THEN BEGIN 193 msg = 'eee : the file ' + fullfilename_out + ' already exists.'194 ras = report(msg)195 return, result195 msg = 'eee : the file ' + fullfilename_out + ' already exists.' 196 ras = report(msg) 197 return, result 196 198 ENDIF 197 199 ; -
trunk/src/d2m_to_q2m_erai.pro
r203 r204 121 121 ; % Program caused arithmetic error: Floating illegal operand 122 122 ; 123 ; related to occur ence of NaNf in ncdump output ? do no yet123 ; related to occurrence of NaNf in ncdump output ? do no yet 124 124 ; 125 125 ; pk also see these error messages ... 126 126 ; 127 ; check for NaN value in P return by reading Netcdfmsl file128 ; solution is may be to apply *mskout to q2m like 127 ; check for NaN value in P return by reading netCDF msl file 128 ; solution is may be to apply *mskout to q2m like in interp* tools 129 129 ; not yet done to keep close as possible to pk processing 130 130 ; … … 198 198 nparam = N_PARAMS() 199 199 IF (nparam NE 2) THEN BEGIN 200 ras = report(['Incorrect number of arguments.' $201 202 203 200 ras = report(['Incorrect number of arguments.' $ 201 + '!C' $ 202 + 'Usage : ' + usage]) 203 return, result 204 204 ENDIF 205 205 ; 206 206 ; test if ${PROJECT_OD} defined 207 207 CASE project_od_env OF 208 '' : BEGIN209 210 211 return, result212 213 ELSE: BEGIN214 215 216 217 208 '' : BEGIN 209 msg = 'eee : ${PROJECT_OD} is not defined' 210 ras = report(msg) 211 return, result 212 END 213 ELSE : BEGIN 214 msg = 'iii : ${PROJECT_OD} is ' + project_od_env 215 ras = report(msg) 216 END 217 ENDCASE 218 218 ; 219 219 ; check if output data will be possible … … 222 222 ; existence and protection for reading 223 223 IF (FILE_TEST(iodirout, /DIRECTORY, /EXECUTABLE, /READ) EQ 0) THEN BEGIN 224 msg = 'eee : the directory' + iodirout + ' is not accessible.'225 ras = report(msg)226 return, result224 msg = 'eee : the directory' + iodirout + ' is not accessible.' 225 ras = report(msg) 226 return, result 227 227 ENDIF 228 228 ; … … 242 242 fullfilename_d2m = isafile(iodirout + filename_d2m, NEW=0, /MUST_EXIST) 243 243 IF fullfilename_d2m[0] EQ '' THEN BEGIN 244 msg = 'eee : the file ' + fullfilename_d2m + ' was not found.'245 ras = report(msg)246 return, result244 msg = 'eee : the file ' + fullfilename_d2m + ' was not found.' 245 ras = report(msg) 246 return, result 247 247 ENDIF 248 248 ; … … 255 255 fullfilename_t2m = isafile(iodirout + filename_t2m, NEW=0, /MUST_EXIST) 256 256 IF fullfilename_t2m[0] EQ '' THEN BEGIN 257 msg = 'eee : the file ' + fullfilename_t2m + ' was not found.'258 ras = report(msg)259 return, result257 msg = 'eee : the file ' + fullfilename_t2m + ' was not found.' 258 ras = report(msg) 259 return, result 260 260 ENDIF 261 261 ; … … 268 268 fullfilename_msl = isafile(iodirout + filename_msl, NEW=0, /MUST_EXIST) 269 269 IF fullfilename_msl[0] EQ '' THEN BEGIN 270 msg = 'eee : the file ' + fullfilename_msl + ' was not found.'271 ras = report(msg)272 return, result270 msg = 'eee : the file ' + fullfilename_msl + ' was not found.' 271 ras = report(msg) 272 return, result 273 273 ENDIF 274 274 ; … … 278 278 ; in order to avoid unexpected overwritten 279 279 IF (FILE_TEST(fullfilename_out) EQ 1) THEN BEGIN 280 msg = 'eee : the file ' + fullfilename_out + ' already exists.'281 ras = report(msg)282 return, result280 msg = 'eee : the file ' + fullfilename_out + ' already exists.' 281 ras = report(msg) 282 return, result 283 283 ENDIF 284 284 ; … … 351 351 ; 352 352 ncfields = 'q2m[longitude,latitude,*time]=q2m:q2m_attr; ' $ 353 354 355 356 353 + 'longitude[]=xlon:lon_attr; ' $ 354 + 'latitude[]=ylat:lat_attr; ' $ 355 + 'time[]=timein:time_attr ' $ 356 + ' @ globattr' 357 357 ; 358 358 @ncdf_quickwrite -
trunk/src/ecmwf.py
r203 r204 9 9 =========== 10 10 11 Toolbox to acces to ECMWF server11 Toolbox to access to ECMWF server 12 12 13 13 SEE ALSO -
trunk/src/flux_evaluation_tpr_map.pro
r203 r204 45 45 ; 46 46 ; * try to make it work on my account on cratos 47 ; * remove x_site_location and 47 ; * remove x_site_location and x_site_location because already exist 48 48 ; 49 49 ;- 50 50 pro flux_evaluation_tpr_map, $ 51 51 ; var, $ ;; flux variable (swr, lwr, lhf, shf) to calculate the statistics 52 date1, $ ;; start date (in julian date. eg. 20000101)53 date2 ;; end date (in julian date eg. 20091231)52 date1, $ ;; start date (in Julian date. eg. 20000101) 53 date2 ;; end date (in Julian date eg. 20091231) 54 54 55 55 @common … … 88 88 89 89 erase 90 ;; PLOT ING THE MAPS90 ;; PLOTTING THE MAPS 91 91 92 92 fi = project_od_env + 'flux_stat.txt' -
trunk/src/flux_evaluation_tpr_timeseries.pro
r203 r204 41 41 ; 42 42 ; * try to make it work on my account on cratos 43 ; * remove x_site_location and 43 ; * remove x_site_location and x_site_location because already exist 44 44 ; 45 45 ;- 46 46 pro flux_evaluation_tpr_timeseries, $ 47 47 ; var, $ ;; flux variable (swr, lwr, lhf, shf) to calculate the statistics 48 date1, $ ;; start date (in julian date. eg. 20000101)49 date2 ;; end date (in julian date eg. 20091231)48 date1, $ ;; start date (in Julian date. eg. 20000101) 49 date2 ;; end date (in Julian date eg. 20091231) 50 50 51 51 @common … … 110 110 for n=0, nn-1 do begin 111 111 112 ;; reading data from mooring112 ;; reading data from mooring 113 113 114 114 site=sitelist(n) & csite=site … … 122 122 sw,lw,sh,lh 123 123 124 ;; select the appropriate variables for evaluation (trp = sw or lw or sh or lh)124 ;; select the appropriate variables for evaluation (trp = sw or lw or sh or lh) 125 125 126 tpr=sh126 tpr=sh 127 127 128 ind=where(finite(tpr)) & no_valid=n_elements(ind)128 ind=where(finite(tpr)) & no_valid=n_elements(ind) 129 129 130 if (no_valid ge min_obs) then begin 130 if (no_valid ge min_obs) then begin 131 extract_tpr_location,var,box, $ 132 var_tpr 133 var_tpr=reform(var_tpr) 131 134 135 stats_5d, tpr,var_tpr, $ ;; tpr=TPR observation and var_tpr=gridded product extracted at TPR location 136 cor, bias, std, rmsd 132 137 133 extract_tpr_location,var,box, $134 var_tpr135 var_tpr=reform(var_tpr)138 printf, 1, x, y, cor, bias, std, rmsd, format='(f6.2, 3x, f6.2, 3x, f4.2, 3x, f7.2, 3x, f4.2, 3x, f5.2)' 139 cstat=string(cor, bias, std, rmsd, format='(f4.2,3x,f7.2,3x,f4.2,3x,f5.2)') 140 print, cstat 136 141 137 stats_5d, tpr,var_tpr, $ ;; tpr=TPR observation and var_tpr=gridded product extracted at TPR location 138 cor, bias, std, rmsd 139 140 printf, 1, x, y, cor, bias, std, rmsd, format='(f6.2, 3x, f6.2, 3x, f4.2, 3x, f7.2, 3x, f4.2, 3x, f5.2)' 141 cstat=string(cor, bias, std, rmsd, format='(f4.2,3x,f7.2,3x,f4.2,3x,f5.2)') 142 print, cstat 143 144 ;; PLOTTING THE TIME-SERIES 145 array=[tpr, var_tpr] & mi=min(array,/nan) & ma=max(array,/nan) & int=(ma-mi)/3. 146 pltt, ts_smooth(tpr,5,/nan), "t",/rempl, small=[1,3,1], lct=65, $ 147 title='Five day stats are shown below. TPR (black) and Product (red) at'+csite+' ', charsize=1., $ 148 subtitle=cstat 149 ind=where(finite(tpr,/nan)) & var_tpr(ind)=!Values.f_nan 150 pltt, ts_smooth(var_tpr,5,/nan), "t",/ov1d, color=250 151 erase 152 mooring=[mooring,tpr] & product=[product,var_tpr] 142 ;; PLOTTING THE TIME-SERIES 143 array=[tpr, var_tpr] & mi=min(array,/nan) & ma=max(array,/nan) & int=(ma-mi)/3. 144 pltt, ts_smooth(tpr,5,/nan), "t",/rempl, small=[1,3,1], lct=65, $ 145 title='Five day stats are shown below. TPR (black) and Product (red) at'+csite+' ', charsize=1., $ 146 subtitle=cstat 147 ind=where(finite(tpr,/nan)) & var_tpr(ind)=!Values.f_nan 148 pltt, ts_smooth(var_tpr,5,/nan), "t",/ov1d, color=250 149 erase 150 mooring=[mooring,tpr] & product=[product,var_tpr] 153 151 endif 154 152 endfor -
trunk/src/get_erai.py
r203 r204 1 1 #!/usr/bin/env python 2 # -*- coding: iso-8859-1-*-2 # -*- coding: utf-8 -*- 3 3 4 4 __docformat__ = "restructuredtext en" … … 47 47 ==== 48 48 49 To conve t a GRIB file to a NetCDF file :49 To convert a GRIB file to a NetCDF file : 50 50 51 51 .. code-block:: bash … … 58 58 make it work for all needed variables 59 59 60 produce netcdf files : now grib d ispite name of the file target60 produce netcdf files : now grib despite name of the file target 61 61 62 62 comment 63 63 64 nb : le champ str (wind stress pourra/devra être récupérépour faire des comparaisons (cf. 20c3m_erai_str_TROP_1989_2009.nc)65 66 nb :Mean sea level pressure en a-t-on vraiment besoin ? jusqu' à présent on ne sait pas si pkb l'a utilisé.64 nb : le champ str (wind stress pourra/devra être récupéré pour faire des comparaisons (cf. 20c3m_erai_str_TROP_1989_2009.nc) 65 66 nb :Mean sea level pressure en a-t-on vraiment besoin ? jusqu'à présent on ne sait pas si pkb l'a utilisé. 67 67 68 68 EVOLUTIONS -
trunk/src/get_oaflux.sh
r203 r204 24 24 # Once this tool executed :func:`oaflux_mask_30n30s` can be launched. 25 25 # 26 # Log file is written on :file:`${PROJECT_LOG}/get_oaflux.log.{YYYYMMDDTHHMMSSZ}` 26 # Log file is written on 27 # :file:`${PROJECT_LOG}/get_oaflux.log.{YYYYMMDDTHHMMSS}Z`. 27 28 # 28 29 # .. graphviz:: … … 30 31 # digraph get_oaflux { 31 32 # 32 # oaflux_ref [shape=diamond,fontname=Courier,label="ftp://ftp.whoi.edu/pub/science/oaflux/data_v3/monthly/turbulence/lh_oaflux_2004.nc.gz"]; 33 # 34 # file_oaflux [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/lh_oaflux_2004.nc"]; 33 # oaflux_ref [shape=diamond, 34 # fontname=Courier, 35 # label="ftp://ftp.whoi.edu/pub/science/oaflux/data_v3/monthly/turbulence/lh_oaflux_2004.nc.gz"]; 36 # 37 # file_oaflux [shape=ellipse, 38 # fontname=Courier, 39 # label="${PROJECT_ID}/lh_oaflux_2004.nc"]; 35 40 # 36 41 # get_oaflux [shape=box, … … 71 76 # ==== 72 77 # 73 # get ftp://ftp.whoi.edu/pub/science/oaflux/data_v3/daily/radiation_1985-2007/sw_isccp_yyyy.nc.gz and generate ${PROJECT_ID}/swr_oafluxgrid_1985_2007.nc somewhere else 78 # get 79 # ftp://ftp.whoi.edu/pub/science/oaflux/data_v3/daily/radiation_1985-2007/sw_isccp_yyyy.nc.gz 80 # and generate ${PROJECT_ID}/swr_oafluxgrid_1985_2007.nc somewhere else 74 81 # 75 82 # SEE ALSO -
trunk/src/get_pirata_netcdf.sh
r203 r204 43 43 # wind 44 44 # 45 # Log file is written on :file:`${PROJECT_LOG}/get_pirata_netcdf.log.{YYYYMMDDTHHMMSSZ}` 45 # Log file is written on 46 # :file:`${PROJECT_LOG}/get_pirata_netcdf.log.{YYYYMMDDTHHMMSS}Z`. 46 47 # 47 48 # .. graphviz:: … … 49 50 # digraph get_pirata_netcdf { 50 51 # 51 # pirata_ref [shape=diamond,fontname=Courier,label="ftp://ftp.pmel.noaa.gov/cdf/sites/daily/*_*_dy.cdf"]; 52 # 53 # file_pirata [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/*_*_dy.cdf"]; 52 # pirata_ref [shape=diamond, 53 # fontname=Courier, 54 # label="ftp://ftp.pmel.noaa.gov/cdf/sites/daily/*_*_dy.cdf"]; 55 # 56 # file_pirata [shape=ellipse, 57 # fontname=Courier, 58 # label="${PROJECT_ID}/*_*_dy.cdf"]; 54 59 # 55 60 # get_pirata_netcdf [shape=box, -
trunk/src/get_rama_netcdf.sh
r203 r204 43 43 # wind 44 44 # 45 # Log file is written on :file:`${PROJECT_LOG}/get_rama_netcdf.log.{YYYYMMDDTHHMMSSZ}` 45 # Log file is written on 46 # :file:`${PROJECT_LOG}/get_rama_netcdf.log.{YYYYMMDDTHHMMSS}Z`. 46 47 # 47 48 # .. graphviz:: … … 49 50 # digraph get_rama_netcdf { 50 51 # 51 # rama_ref [shape=diamond,fontname=Courier,label="ftp://ftp.pmel.noaa.gov/cdf/sites/daily/*_*_dy.cdf"]; 52 # 53 # file_rama [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/*_*_dy.cdf"]; 52 # rama_ref [shape=diamond, 53 # fontname=Courier, 54 # label="ftp://ftp.pmel.noaa.gov/cdf/sites/daily/*_*_dy.cdf"]; 55 # 56 # file_rama [shape=ellipse, 57 # fontname=Courier, 58 # label="${PROJECT_ID}/*_*_dy.cdf"]; 54 59 # 55 60 # get_rama_netcdf [shape=box, -
trunk/src/get_swr.sh
r203 r204 28 28 # digraph get_swr { 29 29 # 30 # swr_ref [shape=diamond,fontname=Courier,label="ftp://ftp.whoi.edu/pub/science/oaflux/data_v3/daily/radiation_1985-2007/sw_icssp_yyyy.nc.gz"]; 31 # 32 # file_swr [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/sw_icssp_yyyy.nc"]; 30 # swr_ref [shape=diamond, 31 # fontname=Courier, 32 # label="ftp://ftp.whoi.edu/pub/science/oaflux/data_v3/daily/radiation_1985-2007/sw_icssp_yyyy.nc.gz"]; 33 # 34 # file_swr [shape=ellipse, 35 # fontname=Courier, 36 # label="${PROJECT_ID}/sw_icssp_yyyy.nc"]; 33 37 # 34 38 # get_swr [shape=box, … … 72 76 # 73 77 # Eventually: we should retrieve them from ISCCP page 74 # (ftp://isccp.giss.nasa.gov/pub/data/FC/ ) and interpolate them we need FD${YYYY}${MM}__${SS}${FF}SFC.EQ files where: 75 # 76 # - YYYY and MM are year and month 77 # - SS is LW (longwave) and SW (shortwave) 78 # (ftp://isccp.giss.nasa.gov/pub/data/FC/ ) and interpolate them we 79 # need FD${YYYY}${MM}__${SS}${FF}SFC.EQ files where: 80 # 81 # - YYYY and MM are year and month 82 # - SS is LW (longwave) and SW (shortwave) 78 83 # 79 84 # study wget status (no exit now on non null wget status) -
trunk/src/get_tao_netcdf.sh
r203 r204 43 43 # wind 44 44 # 45 # Log file is written on :file:`${PROJECT_LOG}/get_tao_netcdf.log.{YYYYMMDDTHHMMSSZ}` 45 # Log file is written on 46 # :file:`${PROJECT_LOG}/get_tao_netcdf.log.{YYYYMMDDTHHMMSS}Z`. 46 47 # 47 48 # .. graphviz:: … … 49 50 # digraph get_tao_netcdf { 50 51 # 51 # tao_ref [shape=diamond,fontname=Courier,label="ftp://ftp.pmel.noaa.gov/cdf/sites/daily/*_*_dy.cdf"]; 52 # 53 # file_tao [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/*_*_dy.cdf"]; 52 # tao_ref [shape=diamond, 53 # fontname=Courier, 54 # label="ftp://ftp.pmel.noaa.gov/cdf/sites/daily/*_*_dy.cdf"]; 55 # 56 # file_tao [shape=ellipse, 57 # fontname=Courier, 58 # label="${PROJECT_ID}/*_*_dy.cdf"]; 54 59 # 55 60 # get_tao_netcdf [shape=box, -
trunk/src/interp_erai_dewt.pro
r203 r204 51 51 ; digraph interp_erai_dewt { 52 52 ; 53 ; file_in_erai1 [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/20c3m_erai_d2_TROP_1989_2009.nc"]; 54 ; file_in_erai2 [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/erai_d2m_{yyyyb}_{yyyye}.nc"]; 55 ; mask [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/mask_oaflux_30N30S.nc"]; 56 ; file_out [shape=ellipse,fontname=Courier,label="${PROJECT_OD}/erai_d2m_{yyyymmdd}_{yyyymmdd}_oafluxgrid.nc"]; 53 ; file_in_erai1 [shape=ellipse, 54 ; fontname=Courier, 55 ; label="${PROJECT_ID}/20c3m_erai_d2_TROP_1989_2009.nc"]; 56 ; file_in_erai2 [shape=ellipse, 57 ; fontname=Courier, 58 ; label="${PROJECT_ID}/erai_d2m_{yyyyb}_{yyyye}.nc"]; 59 ; mask [shape=ellipse, 60 ; fontname=Courier, 61 ; label="${PROJECT_ID}/mask_oaflux_30N30S.nc"]; 62 ; file_out [shape=ellipse, 63 ; fontname=Courier, 64 ; label="${PROJECT_OD}/erai_d2m_{yyyymmdd}_{yyyymmdd}_oafluxgrid.nc"]; 57 65 ; 58 66 ; interp_erai_dewt [shape=box, … … 168 176 ; - fplod 20120319 169 177 ; 170 ; * taking project_overw ite into account178 ; * taking project_overwrite into account 171 179 ; * try to add compile_opt seems to be incompatible with ncdf_quickwrite 172 180 ; * pro -> function … … 222 230 nparam = N_PARAMS() 223 231 IF (nparam NE 3) THEN BEGIN 224 ras = report(['Incorrect number of arguments.' $225 226 227 return, result232 ras = report(['Incorrect number of arguments.' $ 233 + '!C' $ 234 + 'Usage : ' + usage]) 235 return, result 228 236 ENDIF 229 237 ; … … 232 240 ; test if ${PROJECT_ID} defined 233 241 CASE project_id_env OF 234 '' 235 msg = 'eee : ${PROJECT_ID} is not defined'236 ras = report(msg)237 return, result242 '' : BEGIN 243 msg = 'eee : ${PROJECT_ID} is not defined' 244 ras = report(msg) 245 return, result 238 246 END 239 ELSE : BEGIN247 ELSE : BEGIN 240 248 msg = 'iii : ${PROJECT_ID} is ' + project_id_env 241 249 ras = report(msg) … … 294 302 CASE project_od_env OF 295 303 '' : BEGIN 296 297 298 return, result304 msg = 'eee : ${PROJECT_OD} is not defined' 305 ras = report(msg) 306 return, result 299 307 END 300 ELSE : BEGIN301 302 308 ELSE : BEGIN 309 msg = 'iii : ${PROJECT_OD} is ' + project_od_env 310 ras = report(msg) 303 311 END 304 312 ENDCASE -
trunk/src/interp_erai_lwr.pro
r203 r204 51 51 ; digraph interp_erai_lwr { 52 52 ; 53 ; file_in_erai1 [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/20c3m_erai_str_TROP_1989_2009.nc"]; 54 ; file_in_erai2 [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/erai_lwr_{yyyyb}_{yyyye}.nc"]; 55 ; mask [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/mask_oaflux_30N30S.nc"]; 56 ; file_out [shape=ellipse,fontname=Courier,label="${PROJECT_OD}/erai_lwr_{yyyymmdd}_{yyyymmdd}_oafluxgrid.nc"]; 53 ; file_in_erai1 [shape=ellipse, 54 ; fontname=Courier, 55 ; label="${PROJECT_ID}/20c3m_erai_str_TROP_1989_2009.nc"]; 56 ; file_in_erai2 [shape=ellipse, 57 ; fontname=Courier, 58 ; label="${PROJECT_ID}/erai_lwr_{yyyyb}_{yyyye}.nc"]; 59 ; mask [shape=ellipse, 60 ; fontname=Courier, 61 ; label="${PROJECT_ID}/mask_oaflux_30N30S.nc"]; 62 ; file_out [shape=ellipse, 63 ; fontname=Courier, 64 ; label="${PROJECT_OD}/erai_lwr_{yyyymmdd}_{yyyymmdd}_oafluxgrid.nc"]; 57 65 ; 58 66 ; interp_erai_lwr [shape=box, … … 139 147 ; remove hard coded time 140 148 ; 141 ; 19890101 is not provided in ERA-Intermim file str : a possible workaround is to copy 19890102 142 ; dataset to 19890101 using nco after this processing. see :ref:`compute_erai_daily_region_2d.sh` 149 ; 19890101 is not provided in ERA-Interim file str : a possible workaround is 150 ; to copy 19890102 dataset to 19890101 using nco after this processing. 151 ; see :ref:`compute_erai_daily_region_2d.sh` 143 152 ; 144 153 ; check if there is the same issue with 19790101 vs 19790102. … … 170 179 ; - fplod 20120319 171 180 ; 172 ; * taking project_overw ite into account181 ; * taking project_overwrite into account 173 182 ; * try to add compile_opt seems to be incompatible with ncdf_quickwrite 174 183 ; * pro -> function … … 176 185 ; - fplod 20110830T145010Z cratos (Linux) 177 186 ; 178 ; * replace xlon by lon and xlat by lat; suppress extra init cdf call187 ; * replace xlon by lon and xlat by lat; suppress extra initncdf call 179 188 ; 180 189 ; - fplod 20110830T135030Z cratos (Linux) … … 259 268 ; test if ${PROJECT_ID} defined 260 269 CASE project_id_env OF 261 '' 262 msg = 'eee : ${PROJECT_ID} is not defined'263 ras = report(msg)264 return, result270 '' : BEGIN 271 msg = 'eee : ${PROJECT_ID} is not defined' 272 ras = report(msg) 273 return, result 265 274 END 266 ELSE : BEGIN267 msg = 'iii : ${PROJECT_ID} is ' + project_id_env268 ras = report(msg)275 ELSE : BEGIN 276 msg = 'iii : ${PROJECT_ID} is ' + project_id_env 277 ras = report(msg) 269 278 END 270 279 ENDCASE … … 324 333 CASE project_od_env OF 325 334 '' : BEGIN 326 327 328 return, result335 msg = 'eee : ${PROJECT_OD} is not defined' 336 ras = report(msg) 337 return, result 329 338 END 330 ELSE : BEGIN331 332 339 ELSE : BEGIN 340 msg = 'iii : ${PROJECT_OD} is ' + project_od_env 341 ras = report(msg) 333 342 END 334 343 ENDCASE -
trunk/src/interp_erai_msl.pro
r203 r204 126 126 ; 127 127 ; why 19880101,20100930 as dates in read_ncdf. 128 ; now (20120319) should be yyyymmddb and yyymmdde but d esastrous side effect128 ; now (20120319) should be yyyymmddb and yyymmdde but disastrous side effect 129 129 ; 130 130 ; first step time 14245.5 (days since 1950-01-01 00:00:00) : correct ? … … 155 155 ; - fplod 20120319 156 156 ; 157 ; * taking project_overw ite into account157 ; * taking project_overwrite into account 158 158 ; * pro -> function 159 159 ; … … 216 216 return, result 217 217 END 218 ELSE: BEGIN218 ELSE : BEGIN 219 219 msg = 'iii : ${PROJECT_ID} is ' + project_id_env 220 220 ras = report(msg) 221 221 END 222 222 ENDCASE 223 223 ; … … 275 275 ; test if ${PROJECT_OD} defined 276 276 CASE project_od_env OF 277 '' : BEGIN278 279 280 return, result281 282 ELSE: BEGIN283 284 285 286 277 '' : BEGIN 278 msg = 'eee : ${PROJECT_OD} is not defined' 279 ras = report(msg) 280 return, result 281 END 282 ELSE : BEGIN 283 msg = 'iii : ${PROJECT_OD} is ' + project_od_env 284 ras = report(msg) 285 END 286 ENDCASE 287 287 ; 288 288 ; check if output data will be possible … … 338 338 ncdf_getatt, fullfilename, erai_var, units=units 339 339 CASE units OF 340 'Pascal' : BEGIN340 'Pascal' : BEGIN 341 341 mslin=mslin/100 342 342 END 343 'mPa' : BEGIN343 'mPa' : BEGIN 344 344 mslin=mslin*10 345 345 END 346 ELSE : BEGIN346 ELSE : BEGIN 347 347 msg = 'eee : ' + units + ' unknown' 348 348 ras = report(msg) … … 355 355 mslout=fltarr(jpi,jpj,jptin) 356 356 for jt=0,jptin-1 do begin 357 ; ++ print, 'Interpolation jt=',jt,' / ',jptin-1358 tab=reform(mslin[*,*,jt])359 mslout[*,*,jt]=call_interp2d(tab,lonin,latin,mskin $360 , lonout,latout,method='bilinear' $361 , OUTMASK_IND=mskout, SET_OUTMSKVAL=mskout)362 mslout[*,*,jt]=mslout[*,*,jt]*mskout+(1.-mskout)*1.e20357 ; ++ print, 'Interpolation jt=',jt,' / ',jptin-1 358 tab=reform(mslin[*,*,jt]) 359 mslout[*,*,jt]=call_interp2d(tab,lonin,latin,mskin $ 360 , lonout,latout,method='bilinear' $ 361 , OUTMASK_IND=mskout, SET_OUTMSKVAL=mskout) 362 mslout[*,*,jt]=mslout[*,*,jt]*mskout+(1.-mskout)*1.e20 363 363 endfor 364 364 ; -
trunk/src/interp_erai_sst.pro
r203 r204 51 51 ; digraph interp_erai_sst { 52 52 ; 53 ; file_in_erai1 [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/20c3m_erai_sstk_TROP_1989_2009.nc"]; 54 ; file_in_erai2 [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/erai_sst_{yyyyb}_{yyyye}.nc"]; 55 ; mask [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/mask_oaflux_30N30S.nc"]; 56 ; file_out [shape=ellipse,fontname=Courier,label="${PROJECT_OD}/erai_sst_{yyyymmdd}_{yyyymmdd}_oafluxgrid.nc"]; 53 ; file_in_erai1 [shape=ellipse, 54 ; fontname=Courier, 55 ; label="${PROJECT_ID}/20c3m_erai_sstk_TROP_1989_2009.nc"]; 56 ; file_in_erai2 [shape=ellipse, 57 ; fontname=Courier, 58 ; label="${PROJECT_ID}/erai_sst_{yyyyb}_{yyyye}.nc"]; 59 ; mask [shape=ellipse, 60 ; fontname=Courier, 61 ; label="${PROJECT_ID}/mask_oaflux_30N30S.nc"]; 62 ; file_out [shape=ellipse, 63 ; fontname=Courier, 64 ; label="${PROJECT_OD}/erai_sst_{yyyymmdd}_{yyyymmdd}_oafluxgrid.nc"]; 57 65 ; 58 66 ; interp_erai_sst [shape=box, … … 122 130 ; coding rules 123 131 ; 124 ; use real output of :ref:`compute_erai_daily_region_2d.sh` if eraitype is set to 1. 132 ; use real output of :ref:`compute_erai_daily_region_2d.sh` if eraitype is 133 ; set to 1. 125 134 ; 126 135 ; scientific validation (strange look of data with ncview now) … … 152 161 ; - fplod 20120320 153 162 ; 154 ; * taking project_overw ite into account163 ; * taking project_overwrite into account 155 164 ; * try to add compile_opt seems to be incompatible with ncdf_quickwrite 156 165 ; * pro -> function … … 207 216 nparam = N_PARAMS() 208 217 IF (nparam NE 3) THEN BEGIN 209 ras = report(['Incorrect number of arguments.' $210 + '!C' $211 + 'Usage : ' + usage])212 return, result218 ras = report(['Incorrect number of arguments.' $ 219 + '!C' $ 220 + 'Usage : ' + usage]) 221 return, result 213 222 ENDIF 214 223 ; … … 217 226 ; test if ${PROJECT_ID} defined 218 227 CASE project_id_env OF 219 '' :BEGIN220 msg = 'eee : ${PROJECT_ID} is not defined'221 ras = report(msg)222 return, result223 224 ELSE: BEGIN225 msg = 'iii : ${PROJECT_ID} is ' + project_id_env226 ras = report(msg)227 228 '' : BEGIN 229 msg = 'eee : ${PROJECT_ID} is not defined' 230 ras = report(msg) 231 return, result 232 END 233 ELSE : BEGIN 234 msg = 'iii : ${PROJECT_ID} is ' + project_id_env 235 ras = report(msg) 236 END 228 237 ENDCASE 229 238 ; … … 232 241 ; existence and protection of ${PROJECT_ID} 233 242 IF (FILE_TEST(iodirin, /DIRECTORY, /EXECUTABLE, /READ) EQ 0) THEN BEGIN 234 msg = 'eee : the directory' + iodirin + ' is not accessible.'235 ras = report(msg)236 return, result243 msg = 'eee : the directory' + iodirin + ' is not accessible.' 244 ras = report(msg) 245 return, result 237 246 ENDIF 238 247 ; … … 245 254 fullfilename_msk = isafile(iodirin + filename_msk, NEW=0, /MUST_EXIST) 246 255 IF fullfilename_msk[0] EQ '' THEN BEGIN 247 msg = 'eee : the file ' + fullfilename_msk + ' was not found.'248 ras = report(msg)249 return, result256 msg = 'eee : the file ' + fullfilename_msk + ' was not found.' 257 ras = report(msg) 258 return, result 250 259 ENDIF 251 260 ; … … 271 280 fullfilename = isafile(iodirin + filename, NEW=0, /MUST_EXIST) 272 281 IF fullfilename[0] EQ '' THEN BEGIN 273 msg = 'eee : the file ' + fullfilename + ' was not found.'274 ras = report(msg)275 return, result282 msg = 'eee : the file ' + fullfilename + ' was not found.' 283 ras = report(msg) 284 return, result 276 285 ENDIF 277 286 ; 278 287 ; test if ${PROJECT_OD} defined 279 288 CASE project_od_env OF 280 '' : BEGIN281 282 283 return, result284 285 ELSE: BEGIN286 287 288 289 289 '' : BEGIN 290 msg = 'eee : ${PROJECT_OD} is not defined' 291 ras = report(msg) 292 return, result 293 END 294 ELSE : BEGIN 295 msg = 'iii : ${PROJECT_OD} is ' + project_od_env 296 ras = report(msg) 297 END 298 ENDCASE 290 299 ; 291 300 ; check if output data will be possible … … 304 313 ; in order to avoid unexpected overwritten 305 314 IF ((FILE_TEST(fullfilename_out) EQ 1) AND (project_overwrite EQ 0)) THEN BEGIN 306 msg = 'eee : the file ' + fullfilename_out + ' already exists.'307 ras = report(msg)308 return, result315 msg = 'eee : the file ' + fullfilename_out + ' already exists.' 316 ras = report(msg) 317 return, result 309 318 ENDIF 310 319 ; … … 343 352 sstkout=fltarr(jpi,jpj,jptin) 344 353 for jt=0,jptin-1 do begin 345 ; ++print, 'Interpolation jt=',jt,' / ',jptin-1346 tab=reform(sstkin[*,*,jt])347 sstkout[*,*,jt]=call_interp2d(tab,lonin,latin,mskin $348 349 350 sstkout[*,*,jt]=sstkout[*,*,jt]*mskout+(1.-mskout)*1.e20354 ; ++print, 'Interpolation jt=',jt,' / ',jptin-1 355 tab=reform(sstkin[*,*,jt]) 356 sstkout[*,*,jt]=call_interp2d(tab,lonin,latin,mskin $ 357 , lonout,latout,method='bilinear' $ 358 , OUTMASK_IND=mskout, SET_OUTMSKVAL=mskout) 359 sstkout[*,*,jt]=sstkout[*,*,jt]*mskout+(1.-mskout)*1.e20 351 360 endfor 352 361 ; -
trunk/src/interp_erai_t2m.pro
r203 r204 200 200 ; - fplod 20120319 201 201 ; 202 ; * taking project_overw ite into account202 ; * taking project_overwrite into account 203 203 ; 204 204 ; - fplod 20120306 … … 231 231 ; * replace read_ncdf by ncdf_lec 232 232 ; 233 ; usage of timestep keyword in read_ncdf was not efficient because of 233 ; usage of timestep keyword in read_ncdf was not efficient because of memory problem : 234 234 ; can not read the whole time range (ok with 7580, not ok with 7591 while need is 7670 235 235 ; … … 275 275 ;- 276 276 function interp_erai_t2m $ 277 278 279 277 , yyyymmddb $ 278 , yyyymmdde $ 279 , eraitype 280 280 ; 281 281 ;++compile_opt idl2, strictarrsubs, logical_predicate … … 295 295 nparam = N_PARAMS() 296 296 IF (nparam NE 3) THEN BEGIN 297 ras = report(['Incorrect number of arguments.' $298 299 300 return, result297 ras = report(['Incorrect number of arguments.' $ 298 + '!C' $ 299 + 'Usage : ' + usage]) 300 return, result 301 301 ENDIF 302 302 … … 305 305 ; test if ${PROJECT_ID} defined 306 306 CASE project_id_env OF 307 '' 308 msg = 'eee : ${PROJECT_ID} is not defined'309 ras = report(msg)310 return, result311 312 ELSE: BEGIN313 msg = 'iii : ${PROJECT_ID} is ' + project_id_env314 ras = report(msg)315 307 '' : BEGIN 308 msg = 'eee : ${PROJECT_ID} is not defined' 309 ras = report(msg) 310 return, result 311 END 312 ELSE : BEGIN 313 msg = 'iii : ${PROJECT_ID} is ' + project_id_env 314 ras = report(msg) 315 END 316 316 ENDCASE 317 317 ; … … 320 320 ; existence and protection of ${PROJECT_ID} 321 321 IF (FILE_TEST(iodirin, /DIRECTORY, /EXECUTABLE, /READ) EQ 0) THEN BEGIN 322 msg = 'eee : the directory' + iodirin + ' is not accessible.'323 ras = report(msg)324 return, result322 msg = 'eee : the directory' + iodirin + ' is not accessible.' 323 ras = report(msg) 324 return, result 325 325 ENDIF 326 326 ; … … 333 333 fullfilename_msk = isafile(iodirin + filename_msk, NEW=0, /MUST_EXIST) 334 334 IF fullfilename_msk[0] EQ '' THEN BEGIN 335 msg = 'eee : the file ' + fullfilename_msk + ' was not found.'336 ras = report(msg)337 return, result335 msg = 'eee : the file ' + fullfilename_msk + ' was not found.' 336 ras = report(msg) 337 return, result 338 338 ENDIF 339 339 ; … … 359 359 fullfilename_t2 = isafile(iodirin + filename_t2, NEW=0, /MUST_EXIST) 360 360 IF fullfilename_t2[0] EQ '' THEN BEGIN 361 msg = 'eee : the file ' + fullfilename_t2 + ' was not found.'362 ras = report(msg)363 return, result361 msg = 'eee : the file ' + fullfilename_t2 + ' was not found.' 362 ras = report(msg) 363 return, result 364 364 ENDIF 365 365 ; 366 366 ; test if ${PROJECT_OD} defined 367 367 CASE project_od_env OF 368 '' : BEGIN369 370 371 return, result372 373 ELSE: BEGIN374 375 376 377 368 '' : BEGIN 369 msg = 'eee : ${PROJECT_OD} is not defined' 370 ras = report(msg) 371 return, result 372 END 373 ELSE : BEGIN 374 msg = 'iii : ${PROJECT_OD} is ' + project_od_env 375 ras = report(msg) 376 END 377 ENDCASE 378 378 ; 379 379 ; check if output data will be possible … … 392 392 ; in order to avoid unexpected overwritten 393 393 IF ((FILE_TEST(fullfilename_out) EQ 1) AND (project_overwrite EQ 0)) THEN BEGIN 394 msg = 'eee : the file ' + fullfilename_out + ' already exists.'395 ras = report(msg)396 return, result394 msg = 'eee : the file ' + fullfilename_out + ' already exists.' 395 ras = report(msg) 396 return, result 397 397 ENDIF 398 398 ; … … 457 457 t2mout=fltarr(jpi,jpj,jptin) 458 458 for jt=0,jptin-1 do begin 459 tab=reform(t2min[*,*,jt])460 t2mout[*,*,jt]=call_interp2d(tab,lonin,latin,mskin $461 462 463 t2mout[*,*,jt]=t2mout[*,*,jt]*mskout+(1.-mskout)*1.e20459 tab=reform(t2min[*,*,jt]) 460 t2mout[*,*,jt]=call_interp2d(tab,lonin,latin,mskin $ 461 , lonout,latout,method="bilinear" $ 462 , OUTMASK_IND=mskout, SET_OUTMSKVAL=mskout) 463 t2mout[*,*,jt]=t2mout[*,*,jt]*mskout+(1.-mskout)*1.e20 464 464 endfor 465 465 ; … … 486 486 help, timein 487 487 ncfields = 't2m[longitude,latitude,*time]=t2mout:t2m_attr; ' $ 488 489 490 491 488 + 'longitude[]=lon:lon_attr; ' $ 489 + 'latitude[]=lat:lat_attr; ' $ 490 + 'time[]=timein:time_attr ' $ 491 + ' @globattr' 492 492 @ncdf_quickwrite 493 493 ; -
trunk/src/interp_erai_ws.pro
r203 r204 198 198 ; - fplod 20120320 199 199 ; 200 ; * taking project_overw ite into account200 ; * taking project_overwrite into account 201 201 ; * try to add compile_opt seems to be incompatible with ncdf_quickwrite 202 202 ; * pro -> function … … 252 252 nparam = N_PARAMS() 253 253 IF (nparam NE 3) THEN BEGIN 254 ras = report(['Incorrect number of arguments.' $255 256 257 254 ras = report(['Incorrect number of arguments.' $ 255 + '!C' $ 256 + 'Usage : ' + usage]) 257 return, result 258 258 ENDIF 259 259 ; … … 268 268 ; test if ${PROJECT_ID} defined 269 269 CASE project_id_env OF 270 '' :BEGIN271 msg = 'eee : ${PROJECT_ID} is not defined'272 ras = report(msg)273 return, result274 275 ELSE: BEGIN276 msg = 'iii : ${PROJECT_ID} is ' + project_id_env277 ras = report(msg)278 270 '' : BEGIN 271 msg = 'eee : ${PROJECT_ID} is not defined' 272 ras = report(msg) 273 return, result 274 END 275 ELSE : BEGIN 276 msg = 'iii : ${PROJECT_ID} is ' + project_id_env 277 ras = report(msg) 278 END 279 279 ENDCASE 280 280 ; … … 283 283 ; existence and protection of ${PROJECT_ID} 284 284 IF (FILE_TEST(iodirin, /DIRECTORY, /EXECUTABLE, /READ) EQ 0) THEN BEGIN 285 msg = 'eee : the directory' + iodirin + ' is not accessible.'286 ras = report(msg)287 return, result285 msg = 'eee : the directory' + iodirin + ' is not accessible.' 286 ras = report(msg) 287 return, result 288 288 ENDIF 289 289 ; … … 296 296 fullfilename_msk = isafile(iodirin + filename_msk, NEW=0, /MUST_EXIST) 297 297 IF fullfilename_msk[0] EQ '' THEN BEGIN 298 msg = 'eee : the file ' + fullfilename_msk + ' was not found.'299 ras = report(msg)300 return, result298 msg = 'eee : the file ' + fullfilename_msk + ' was not found.' 299 ras = report(msg) 300 return, result 301 301 ENDIF 302 302 ; … … 322 322 fullfilename = isafile(iodirin + filename, NEW=0, /MUST_EXIST) 323 323 IF fullfilename[0] EQ '' THEN BEGIN 324 msg = 'eee : the file ' + fullfilename + ' was not found.'325 ras = report(msg)326 return, result324 msg = 'eee : the file ' + fullfilename + ' was not found.' 325 ras = report(msg) 326 return, result 327 327 ENDIF 328 328 ; 329 329 ; test if ${PROJECT_OD} defined 330 330 CASE project_od_env OF 331 '' : BEGIN332 333 334 return, result335 336 ELSE: BEGIN337 338 339 340 331 '' : BEGIN 332 msg = 'eee : ${PROJECT_OD} is not defined' 333 ras = report(msg) 334 return, result 335 END 336 ELSE : BEGIN 337 msg = 'iii : ${PROJECT_OD} is ' + project_od_env 338 ras = report(msg) 339 END 340 ENDCASE 341 341 ; 342 342 ; check if output data will be possible … … 355 355 ; in order to avoid unexpected overwritten 356 356 IF ((FILE_TEST(fullfilename_out) EQ 1) AND (project_overwrite EQ 0)) THEN BEGIN 357 msg = 'eee : the file ' + fullfilename_out + ' already exists.'358 ras = report(msg)359 return, result357 msg = 'eee : the file ' + fullfilename_out + ' already exists.' 358 ras = report(msg) 359 return, result 360 360 ENDIF 361 361 ; … … 389 389 fullfilename = isafile(iodirin + filename, NEW=0, /MUST_EXIST) 390 390 IF fullfilename[0] EQ '' THEN BEGIN 391 msg = 'eee : the file ' + fullfilename + ' was not found.'392 ras = report(msg)393 return, result391 msg = 'eee : the file ' + fullfilename + ' was not found.' 392 ras = report(msg) 393 return, result 394 394 ENDIF 395 395 initncdf, fullfilename … … 430 430 ; 431 431 for jt=0,jptin-1 do begin 432 ; ++print, 'Interpolation jt=',jt,' / ',jptin-1433 tab=reform(u10in[*,*,jt])434 u10out[*,*,jt]=call_interp2d(tab,lonin,latin,mskin $435 436 437 u10out[*,*,jt]=u10out[*,*,jt]*mskout+(1.-mskout)*1.e20438 ;439 tab=reform(v10in[*,*,jt])440 v10out[*,*,jt]=call_interp2d(tab,lonin,latin,mskin $441 442 443 v10out[*,*,jt]=v10out[*,*,jt]*mskout+(1.-mskout)*1.e20444 ;432 ; ++print, 'Interpolation jt=',jt,' / ',jptin-1 433 tab=reform(u10in[*,*,jt]) 434 u10out[*,*,jt]=call_interp2d(tab,lonin,latin,mskin $ 435 , lonout,latout,method='bilinear' $ 436 , OUTMASK_IND=mskout, SET_OUTMSKVAL=mskout) 437 u10out[*,*,jt]=u10out[*,*,jt]*mskout+(1.-mskout)*1.e20 438 ; 439 tab=reform(v10in[*,*,jt]) 440 v10out[*,*,jt]=call_interp2d(tab,lonin,latin,mskin $ 441 , lonout,latout,method='bilinear' $ 442 , OUTMASK_IND=mskout, SET_OUTMSKVAL=mskout) 443 v10out[*,*,jt]=v10out[*,*,jt]*mskout+(1.-mskout)*1.e20 444 ; 445 445 endfor 446 446 ; … … 466 466 ; 467 467 ncfields = 'u10[longitude,latitude,*time]=u10out:u10_attr; ' $ 468 +'v10[longitude,latitude,*time]=v10out:v10_attr; ' $469 470 471 472 468 + 'v10[longitude,latitude,*time]=v10out:v10_attr; ' $ 469 + 'longitude[]=xlon:lon_attr; ' $ 470 + 'latitude[]=ylat:lat_attr; ' $ 471 + 'time[]=timein:time_attr ' $ 472 + ' @ globattr' 473 473 ; 474 474 @ncdf_quickwrite -
trunk/src/interp_olr_30n30s.pro
r203 r204 31 31 ; digraph interp_olr_30n30s{ 32 32 ; 33 ; file_in [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/olr.day.mean_new.nc"]; 34 ; mask [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/mask_oaflux_30N30S.nc"]; 35 ; file_out [shape=ellipse,fontname=Courier,label="${PROJECT_OD}/olr_oafluxgrid_30n30s_{yyyymmdd}_{yyyymmdd}.nc"]; 33 ; file_in [shape=ellipse, 34 ; fontname=Courier, 35 ; label="${PROJECT_ID}/olr.day.mean_new.nc"]; 36 ; mask [shape=ellipse, 37 ; fontname=Courier, 38 ; label="${PROJECT_ID}/mask_oaflux_30N30S.nc"]; 39 ; file_out [shape=ellipse, 40 ; fontname=Courier, 41 ; label="${PROJECT_OD}/olr_oafluxgrid_30n30s_{yyyymmdd}_{yyyymmdd}.nc"]; 36 42 ; 37 43 ; interp_olr_30n30s [shape=box, … … 79 85 ; ==== 80 86 ; 81 ; hard coded attributes for time origin e87 ; hard coded attributes for time origin 82 88 ; 83 89 ; how can we avoid this message : … … 105 111 ; 106 112 ; pb with mixing interpolated and uninterpolated OLR data 107 ; check if the input file is the right one (interpolated with get_olr.sh vs non interpolated with get_olr_int.sh) 113 ; check if the input file is the right one (interpolated with get_olr.sh vs 114 ; non interpolated with get_olr_int.sh) 108 115 ; 109 116 ; uninterpolated OLR is more timely … … 127 134 ; 128 135 ; * add timerange in global attributes 129 ; * change time orig ne1950 -> 1957 to homogenize wih others fields136 ; * change time origin 1950 -> 1957 to homogenize wih others fields 130 137 ; 131 138 ; - fplod 20120320 132 139 ; 133 ; * taking project_overw ite into account140 ; * taking project_overwrite into account 134 141 ; * try to add compile_opt seems to be incompatible with ncdf_quickwrite 135 142 ; * pro -> function … … 194 201 return, result 195 202 END 196 ELSE :BEGIN203 ELSE : BEGIN 197 204 msg = 'iii : ${PROJECT_ID} is ' + project_id_env 198 205 ras = report(msg) … … 238 245 CASE project_od_env OF 239 246 '' : BEGIN 240 241 242 return, result247 msg = 'eee : ${PROJECT_OD} is not defined' 248 ras = report(msg) 249 return, result 243 250 END 244 ELSE : BEGIN245 246 251 ELSE : BEGIN 252 msg = 'iii : ${PROJECT_OD} is ' + project_od_env 253 ras = report(msg) 247 254 END 248 255 ENDCASE 249 256 ; 250 257 ; check if output data will be possible -
trunk/src/lwdown_clark.pro
r203 r204 6 6 ; .. function:: lwdown_clark(sst, qair, cld, tair, ps) 7 7 ; 8 ; DESCRI TPION8 ; DESCRIPTION 9 9 ; =========== 10 10 ; -
trunk/src/lwr_correction_ncdf.pro
r203 r204 86 86 ; lwr long name 'Air Temperature at 2m" : ??? 87 87 ; 88 ; remove hard doded time88 ; remove hard coded time 89 89 ; 90 90 ; add_19890101.sh sould not be the previous step in a near future … … 105 105 ; - fplod 20120322 106 106 ; 107 ; * taking project_overw ite into account107 ; * taking project_overwrite into account 108 108 ; * try to add compile_opt seems to be incompatible with ncdf_quickwrite 109 109 ; * pro -> function … … 158 158 IF (nparam NE 2) THEN BEGIN 159 159 ras = report(['Incorrect number of arguments.' $ 160 161 160 + '!C' $ 161 + 'Usage : ' + usage]) 162 162 return, result 163 163 ENDIF … … 166 166 CASE project_od_env OF 167 167 '' : BEGIN 168 169 170 return, result168 msg = 'eee : ${PROJECT_OD} is not defined' 169 ras = report(msg) 170 return, result 171 171 END 172 ELSE : BEGIN173 174 172 ELSE : BEGIN 173 msg = 'iii : ${PROJECT_OD} is ' + project_od_env 174 ras = report(msg) 175 175 END 176 176 ENDCASE … … 181 181 ; existence and protection for reading 182 182 IF (FILE_TEST(iodirout, /DIRECTORY, /EXECUTABLE, /READ) EQ 0) THEN BEGIN 183 msg = 'eee : the directory' + iodirout 183 msg = 'eee : the directory' + iodirout + ' is not accessible.' 184 184 ras = report(msg) 185 185 return, result … … 188 188 ; existence and protection for writing 189 189 IF (FILE_TEST(iodirout, /DIRECTORY, /WRITE) EQ 0) THEN BEGIN 190 msg = 'eee : the directory' + iodirout 190 msg = 'eee : the directory' + iodirout + ' was not found.' 191 191 ras = report(msg) 192 192 return, result … … 194 194 ; 195 195 ; build data filename 196 filename='erai_lwr_' + 196 filename='erai_lwr_' + string(yyyymmddb,format='(I8.8)') + '_' + string(yyyymmdde,format='(I8.8)') + '_oafluxgrid.nc' 197 197 ; 198 198 ; check if this file exists … … 207 207 ; 208 208 ; build output filename 209 filename_out = 'TropFlux_lwr_' + 209 filename_out = 'TropFlux_lwr_' + string(yyyymmddb,format='(I8.8)') + '_' + string(yyyymmdde,format='(I8.8)') + '.nc' 210 210 fullfilename_out = iodirout + filename_out 211 211 ; in order to avoid unexpected overwritten … … 250 250 help, lwr_ano 251 251 ; 252 ; applying the correction for var yability based on the scatter252 ; applying the correction for variability based on the scatter 253 253 lwr_ano=lwr_ano*(1/0.760667) 254 254 ; 255 ; applying the correction for var yability based on the scatter255 ; applying the correction for variability based on the scatter 256 256 ; 257 257 lwr_new=lwr_m+lwr_ano … … 266 266 lat_attr={units:'degrees_north',long_name:'Latitude'} 267 267 time_attr={units:'days since 1950-01-01 00:00:00',long_name:'Time axis',time_origin:'1950-JAN-01 00:00:00'} 268 globattr={source:'Basic data obtained from ERAI. Mean correction forbias and correction for variability are applied',timerange:cda0+' - '+cda1}268 globattr={source:'Basic data obtained from ERAI. Mean correction for bias and correction for variability are applied',timerange:cda0+' - '+cda1} 269 269 lwr_attr={units:'degK',missing_value:1.e20,long_name:'Air Temperature at 2m',short_name:'lwr',axis:'TYX'} 270 270 ; 271 271 ncfields = 'lwr[longitude,latitude,*time]=lwr_new:lwr_attr; ' $ 272 273 274 275 272 + 'longitude[]=lon:lon_attr; ' $ 273 + 'latitude[]=lat:lat_attr; ' $ 274 + 'time[]=timein:time_attr ' $ 275 + ' @ globattr' 276 276 ; 277 277 @ncdf_quickwrite -
trunk/src/oaflux_mask_30n30s.pro
r203 r204 14 14 ; .. note:: 15 15 ; 16 ; Longitude range [30.5,379.5] was cho osen in order not to make any cut in16 ; Longitude range [30.5,379.5] was chosen in order not to make any cut in 17 17 ; the Atlantic Ocean. 18 18 ; Otherwise if we choose longitude range to [0.5,359.5], Atlantic Ocean … … 46 46 ; :ref:`guide data OAFLUX <data_in_oaflux>` 47 47 ; 48 ; Environ ement :48 ; Environment : 49 49 ; :ref:`project_profile.sh`, 50 50 ; :ref:`project_init.pro`, … … 108 108 ; - fplod 20120319 109 109 ; 110 ; * taking project_overw ite into account110 ; * taking project_overwrite into account 111 111 ; 112 112 ; - fplod 20120306 … … 156 156 nparam = N_PARAMS() 157 157 IF (nparam NE 0) THEN BEGIN 158 ras = report(['Incorrect number of arguments.' $159 160 161 return, result158 ras = report(['Incorrect number of arguments.' $ 159 + '!C' $ 160 + 'Usage : ' + usage]) 161 return, result 162 162 ENDIF 163 163 ; … … 171 171 fullfilename_in = isafile(project_id_env + filename_in, NEW=0, /MUST_EXIST) 172 172 IF fullfilename_in[0] EQ '' THEN BEGIN 173 msg = 'eee : the file ' + fullfilename_in + ' was not found.'174 ras = report(msg)175 return, result173 msg = 'eee : the file ' + fullfilename_in + ' was not found.' 174 ras = report(msg) 175 return, result 176 176 ENDIF 177 177 ; … … 180 180 PRINT, 'project_overwrite : ',project_overwrite 181 181 IF ((FILE_TEST(fullfilename_out) EQ 1) AND (project_overwrite EQ 0)) THEN BEGIN 182 msg = 'eee : the file ' + fullfilename_out + ' already exists.'183 ras = report(msg)184 return, result182 msg = 'eee : the file ' + fullfilename_out + ' already exists.' 183 ras = report(msg) 184 return, result 185 185 ENDIF 186 186 ; -
trunk/src/paper01/fig11/swr_isccp_tropflux_new_v1.pro
r203 r204 29 29 ; 30 30 ; swr [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/swr_oafluxgrid_1985_2007.nc"]; 31 ; sw [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/sw_reconstr ed_1989_2009.nc"];31 ; sw [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/sw_reconstructed_1989_2009.nc"]; 32 32 ; olr [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/olr_oafluxgrid_30n30s.nc"]; 33 33 ; sst [shape=ellipse,fontname=Courier,label="${PROJECT_OD}/TropFlux_sst_19890101_20091231.nc"]; … … 112 112 sw_isccp=read_ncdf("swr", st, en, file=file,/nostr) 113 113 ; 114 file=project_od_env+'sw_reconstr ed_1989_2009.nc'114 file=project_od_env+'sw_reconstructed_1989_2009.nc' 115 115 initncdf, file 116 116 sw_trop=read_ncdf("sw", st, en+1, file=file,/nostr) -
trunk/src/paper01/fig16/fig16_timeseries_nino3.pro
r203 r204 222 222 ; 223 223 pltt, ts_smooth(sst_ano,nsmooth,/nan), "t",/rempl,/nocolorb, $ 224 small=[1,3,1], title="a) Ni no 3 index ", subtitle="", $224 small=[1,3,1], title="a) Niño 3 index ", subtitle="", $ 225 225 ytitle="(degree Celcius)", marge=marge, linethick=1.3, charsize=1.1, xmin=-1, ymin=-1 226 226 ; -
trunk/src/paper01/fig2/read_sw.pro
r203 r204 67 67 ; * remove hard coding path 68 68 ; * add graphviz 69 ; * remove smooth call (unreach eable statement after end !!)69 ; * remove smooth call (unreachable statement after end !!) 70 70 ; 71 71 ; - fplod 20110411T142955Z aedon.locean-ipsl.upmc.fr (Darwin) -
trunk/src/paper01/fig2/x_site_location.pro
r203 r204 7 7 ; .. function:: x_site_location(site) 8 8 ; 9 ; DESCRI TPION9 ; DESCRIPTION 10 10 ; =========== 11 11 ; -
trunk/src/paper01/fig2/y_site_location.pro
r203 r204 7 7 ; .. function:: y_site_location(site) 8 8 ; 9 ; DESCRI TPION9 ; DESCRIPTION 10 10 ; =========== 11 11 ; -
trunk/src/paper01/fig9/lwr_validation_scatter_2000_2007.pro
r203 r204 152 152 ; 153 153 file=project_id_env+'TropFlux_lwr_19890101_20091231.nc" 154 initncd a, file154 initncdf, file 155 155 cor=read_ncdf('lwr',date1,date2,file=file,/nostr) 156 156 cor=-1*cor -
trunk/src/paper01/fig9/swr_validation_scatter_2000_2007.pro
r203 r204 91 91 ;- 92 92 pro swr_validation_scatter_2000_2007, date1, date2 93 @cm_gen ral93 @cm_general 94 94 @cm_project 95 95 reinitplt, /z,/invert -
trunk/src/plot_tropflux.pro
r203 r204 126 126 ; 127 127 ; add a keyword debug 128 ; add a keywor foverwrite129 ; 130 ; lecture du mask oaflux pour init cdf128 ; add a keyword overwrite 129 ; 130 ; lecture du mask oaflux pour initncdf 131 131 ; 132 132 ; coding rules 133 133 ; 134 ; paramet redate debut date fin ?135 ; 136 ; paramet reversion ?137 ; 138 ; paramet repour website134 ; parameter date debut date fin ? 135 ; 136 ; parameter version ? 137 ; 138 ; parameter pour website 139 139 ; ref to tip on mouse on mac (cf mail seb) 140 140 ; … … 143 143 ; add parameter saveimage 144 144 ; 145 ; ajuster le format àla dynamique de la variable145 ; ajuster le format à la dynamique de la variable 146 146 ; 147 147 ; check arg … … 217 217 filename_in='TropFlux_19890101_20091231.nc' 218 218 END 219 ELSE: BEGIN220 msg = 'eee : ' + tropflux_varname + ' unknown or not handled here'221 ras = report(msg)222 219 ELSE : BEGIN 220 msg = 'eee : ' + tropflux_varname + ' unknown or not handled here' 221 ras = report(msg) 222 END 223 223 ENDCASE 224 224 ; … … 227 227 ; test if ${PROJECT_ID} defined 228 228 CASE project_id_env OF 229 '' 230 msg = 'eee : ${PROJECT_ID} is not defined'231 ras = report(msg)232 STOP233 234 ELSE: BEGIN235 msg = 'iii : ${PROJECT_ID} is ' + project_id_env236 ras = report(msg)237 229 '' : BEGIN 230 msg = 'eee : ${PROJECT_ID} is not defined' 231 ras = report(msg) 232 STOP 233 END 234 ELSE : BEGIN 235 msg = 'iii : ${PROJECT_ID} is ' + project_id_env 236 ras = report(msg) 237 END 238 238 ENDCASE 239 239 ; … … 242 242 ; existence and protection of ${PROJECT_ID} 243 243 IF (FILE_TEST(iodirin, /DIRECTORY, /EXECUTABLE, /READ) EQ 0) THEN BEGIN 244 msg = 'eee : the directory' + iodirin + ' is not accessible.'245 ras = report(msg)246 STOP244 msg = 'eee : the directory' + iodirin + ' is not accessible.' 245 ras = report(msg) 246 STOP 247 247 ENDIF 248 248 ; … … 251 251 print, fullfilename_in 252 252 IF fullfilename_in[0] EQ '' THEN BEGIN 253 msg = 'eee : the file ' + fullfilename_in + ' was not found.'254 ras = report(msg)255 STOP253 msg = 'eee : the file ' + fullfilename_in + ' was not found.' 254 ras = report(msg) 255 STOP 256 256 ENDIF 257 257 print, fullfilename_in[0] … … 259 259 ; test if ${PROJECT_OD} defined 260 260 CASE project_od_env OF 261 '' : BEGIN262 msg = 'eee : ${PROJECT_OD} is not defined'263 ras = report(msg)264 STOP265 266 ELSE: BEGIN267 msg = 'iii : ${PROJECT_OD} is ' + project_od_env268 ras = report(msg)269 261 '' : BEGIN 262 msg = 'eee : ${PROJECT_OD} is not defined' 263 ras = report(msg) 264 STOP 265 END 266 ELSE : BEGIN 267 msg = 'iii : ${PROJECT_OD} is ' + project_od_env 268 ras = report(msg) 269 END 270 270 ENDCASE 271 271 ; … … 275 275 ; existence and protection 276 276 IF (FILE_TEST(iodirout, /DIRECTORY, /WRITE) EQ 0) THEN BEGIN 277 msg = 'eee : the directory' + iodirout + ' was not found.'278 ras = report(msg)279 STOP277 msg = 'eee : the directory' + iodirout + ' was not found.' 278 ras = report(msg) 279 STOP 280 280 ENDIF 281 281 ; … … 284 284 ; in order to avoid unexpected overwritten 285 285 IF (FILE_TEST(fullfilename_out_year) EQ 1) THEN BEGIN 286 msg = 'eee : the file ' + fullfilename_out_year + ' already exists.'287 IF overwrite EQ 0 THEN BEGIN288 ras = report(msg)289 STOP290 ENDIF286 msg = 'eee : the file ' + fullfilename_out_year + ' already exists.' 287 IF overwrite EQ 0 THEN BEGIN 288 ras = report(msg) 289 STOP 290 ENDIF 291 291 ENDIF 292 292 ; … … 295 295 ; in order to avoid unexpected overwritten 296 296 IF (FILE_TEST(fullfilename_out_month) EQ 1) THEN BEGIN 297 IF overwrite EQ 0 THEN BEGIN298 msg = 'eee : the file ' + fullfilename_out_month + ' already exists.'299 ras = report(msg)300 STOP301 ENDIF297 IF overwrite EQ 0 THEN BEGIN 298 msg = 'eee : the file ' + fullfilename_out_month + ' already exists.' 299 ras = report(msg) 300 STOP 301 ENDIF 302 302 ENDIF 303 303 ; … … 308 308 309 309 IF debug EQ 1 THEN BEGIN 310 ; afficher ce que l'on veut v erifier : tmask values should be 1.e20 on earth310 ; afficher ce que l'on veut vérifier : tmask values should be 1.e20 on earth 311 311 ; and ++ an ocean 312 312 ; ++ pb souris mac tvplus, tmask[*,*,0] … … 317 317 ; 318 318 IF debug EQ 1 THEN BEGIN 319 ; afficher ce que l'on veut v érifier : tropflux_var missing are NaN, values on earth are 1.e20319 ; afficher ce que l'on veut vérifier : tropflux_var missing are NaN, values on earth are 1.e20 320 320 ; ++ pb souris mac tvplus, tropflux_var[*,*,0] 321 321 ENDIF … … 325 325 saveimage, fullfilename_out_year, /png 326 326 ; 327 ; ++ d efintion des types d'images327 ; ++ définition des types d'images 328 328 plot_month=0 329 329 IF plot_month EQ 1 THEN BEGIN 330 ; plot monthes on one page (6x2)331 nl=4332 nc=2333 ; ++ wating for final plot do be done334 jpt=nc*nl335 FOR itime = 0L, jpt - 1 DO BEGIN336 vardate=monthname(itime + 1)337 plt, tropflux_var[*,*,itime], noerase = (itime GT 0), small= [nc, nl, itime + 1] , format='(f6.1)', /landscape, window=1338 ENDFOR339 saveimage, fullfilename_out_month, /png330 ; plot months on one page (6x2) 331 nl=4 332 nc=2 333 ; ++ waiting for final plot do be done 334 jpt=nc*nl 335 FOR itime = 0L, jpt - 1 DO BEGIN 336 vardate=monthname(itime + 1) 337 plt, tropflux_var[*,*,itime], noerase = (itime GT 0), small= [nc, nl, itime + 1] , format='(f6.1)', /landscape, window=1 338 ENDFOR 339 saveimage, fullfilename_out_month, /png 340 340 ENDIF 341 341 ; -
trunk/src/project_profile.sh
r203 r204 74 74 # cd /usr/home/fplod/incas/tropflux/tropflux_ws/ 75 75 # . ./src/project_profile.sh \ 76 # -d $(pwd) \76 # -d $(pwd)/ \ 77 77 # -i /usr/temp/${LOGNAME}/tropflux_d/ \ 78 78 # -o /usr/temp/${LOGNAME}/tropflux_d/ \ … … 87 87 # cd ${HOME}/incas/tropflux/tropflux_ws/ 88 88 # . ./src/project_profile.sh \ 89 # -d $(pwd) \89 # -d $(pwd)/ \ 90 90 # -i /usr/temp/${LOGNAME}/tropflux_d/ \ 91 91 # -o /usr/temp/${LOGNAME}/tropflux_d/ \ … … 101 101 # cd ${HOME}/tropflux/ 102 102 # . ./src/project_profile.sh \ 103 # -d $(pwd) \103 # -d $(pwd)/ \ 104 104 # -i /homedata/${LOGNAME}/tropflux_d/ \ 105 105 # -o /homedata/${LOGNAME}/tropflux_d/ \ … … 180 180 # default 181 181 idl_cmd=idl 182 # 183 while [ ${#} -gt 0 ] 184 do 185 case ${1} in 186 -d) 187 # directory for application choosen by user (see svn checkout command used) 188 directory=${2} 189 shift 190 ;; 191 -i) 192 # directory for inputs choosen by user 193 indir=${2} 194 shift 195 ;; 196 -o) 197 # directory for outputs choosen by user 198 outdir=${2} 199 shift 200 ;; 201 -t) 202 # directory for temporary outputs choosen by user 203 tempdir=${2} 204 shift 205 ;; 206 -s) 207 # directory for SAXO tools 208 saxo_dir=${2} 209 shift 210 ;; 211 -idl_cmd) 212 # command for idl 213 idl_cmd=${2} 214 shift 215 ;; 216 *) 217 # other choice 218 echo "eee : unknown option ${1}" 219 echo "${usage}" 182 pb=0 183 # 184 minargcount=12 185 maxargcount=12 186 narg=${#} 187 # 188 if [ ${narg} -lt ${minargcount} ] 189 then 190 echo "eee : not enough arguments (${narg} vs ${minargcount})" 191 echo "${usage}" 192 # nb : no exit because this file should be launched by login process 193 pb=1 194 fi 195 unset minargcount 196 # 197 if [ ${narg} -gt ${maxargcount} ] 198 then 199 echo "eee : too many arguments (${narg} vs ${maxargcount})" 200 echo "${usage}" 201 # nb : no exit because this file should be launched by login process 202 pb=1 203 fi 204 unset maxargcount 205 unset narg 206 # 207 if [ ${pb} -eq 0 ] 208 then 209 while [ ${#} -gt 0 ] 210 do 211 case ${1} in 212 -d) 213 # directory for application chosen by user (see svn checkout command used) 214 directory=${2} 215 shift 216 ;; 217 -i) 218 # directory for inputs chosen by user 219 indir=${2} 220 shift 221 ;; 222 -o) 223 # directory for outputs chosen by user 224 outdir=${2} 225 shift 226 ;; 227 -t) 228 # directory for temporary outputs chosen by user 229 tempdir=${2} 230 shift 231 ;; 232 -s) 233 # directory for SAXO tools 234 saxo_dir=${2} 235 shift 236 ;; 237 -idl_cmd) 238 # command for idl 239 idl_cmd=${2} 240 shift 241 ;; 242 *) 243 # other choice 244 echo "eee : unknown option ${1}" 245 echo "${usage}" 246 # nb : no exit because this file should be launched by login process 247 ;; 248 esac 249 # next flag 250 shift 251 done 252 unset usage 253 fi 254 # 255 if [ ${pb} -eq 0 ] 256 then 257 # check for ${directory} 258 if [ ! -d ${directory} ] 259 then 260 echo " eee : ${directory} not found" 261 # nb : no exit because this file should be launched by login process 262 fi 263 # 264 # check for permission on directory 265 if [ ! -x ${directory} ] 266 then 267 echo " eee : ${directory} not reachable" 268 # nb : no exit because this file should be launched by login process 269 fi 270 # 271 PROJECT=${directory} 272 export PROJECT 273 unset directory 274 # 275 # add PROJECT tools to PATH 276 # if not already done 277 suppath=$(echo ${PROJECT}/src | tr -s "/") 278 echo ${PATH} | grep -q "${suppath}:" 279 test_path=${?} 280 if [ ${test_path} -ne 0 ] 281 then 282 PATH=${suppath}:${PATH} 283 export PATH 284 else 285 # option bavarde oui/non pas encore implantée ++ 286 echo "${command} : iii : ${suppath} already in \${PATH}" 287 fi 288 unset test_path 289 # 290 # add PROJECT manuals to MANPATH 291 # if not already done 292 suppath=$(echo ${PROJECT}/doc/man | tr -s "/") 293 echo ${MANPATH} | grep -q "${suppath}:" 294 test_manpath=${?} 295 if [ ${test_manpath} -ne 0 ] 296 then 297 MANPATH=${suppath}:${MANPATH} 298 export MANPATH 299 else 300 # option bavarde oui/non pas encore implantée ++ 301 echo "${command} : iii : ${suppath} already in \${MANPATH}" 302 fi 303 unset test_manpath 304 unset suppath 305 # 306 PROJECT_LOG=${tempdir} 307 export PROJECT_LOG 308 unset tempdir 309 if [ ! -d ${PROJECT_LOG} ] 310 then 311 mkdir -p ${PROJECT_LOG} 312 status=${?} 313 if [ ${status} -ne 0 ] 314 then 315 echo "${command} : eee : can not create \${PROJECT_LOG}" 220 316 # nb : no exit because this file should be launched by login process 221 ;; 222 esac 223 # next flag 224 shift 225 done 226 unset usage 227 # 228 # check for ${directory} 229 if [ ! -d ${directory} ] 230 then 231 echo " eee : ${directory} not found" 232 # nb : no exit because this file should be launched by login process 317 else 318 echo "${command} : iii : creation of \${PROJECT_LOG}" 319 fi 320 unset status 321 fi 322 # check for permission on PROJECT_LOG 323 if [ ! -x ${PROJECT_LOG} ] 324 then 325 echo " eee : ${PROJECT_LOG} not reachable" 326 # nb : no exit because this file should be launched by login process 327 fi 328 # 329 # check for permission on PROJECT_LOG 330 if [ ! -w ${PROJECT_LOG} ] 331 then 332 echo " eee : ${PROJECT_LOG} not writable" 333 # nb : no exit because this file shouldreachable be launched by login process 334 fi 335 # 336 EDITOR=vi 337 export EDITOR 338 # 339 # io directories 340 PROJECT_ID=${indir} 341 export PROJECT_ID 342 unset indir 343 if [ ! -d ${PROJECT_ID} ] 344 then 345 mkdir -p ${PROJECT_ID} 346 echo "${command} : iii : creation of \${PROJECT_ID}" 347 fi 348 # check for permission on PROJECT_ID 349 if [ ! -x ${PROJECT_ID} ] 350 then 351 echo " eee : ${PROJECT_ID} not reachable" 352 # nb : no exit because this file should be launched by login process 353 fi 354 # 355 PROJECT_OD=${outdir} 356 export PROJECT_OD 357 unset outdir 358 if [ ! -d ${PROJECT_OD} ] 359 then 360 mkdir -p ${PROJECT_OD} 361 echo "${command} : iii : creation of \${PROJECT_OD}" 362 fi 363 # check for permission on PROJECT_OD 364 if [ ! -x ${PROJECT_OD} ] 365 then 366 echo " eee : ${PROJECT_OD} not reachable" 367 # nb : no exit because this file should be launched by login process 368 fi 369 if [ ! -w ${PROJECT_OD} ] 370 then 371 echo " eee : ${PROJECT_OD} not writable" 372 # nb : no exit because this file should be launched by login process 373 fi 374 # 375 # setup for ferret 376 set +u 377 if [ "${FER_GO}" = "" ] 378 then 379 FER_GO="${FER_DIR}/go ${FER_GO} ${PROJECT}/src" 380 else 381 FER_GO="${FER_DIR}/go ${PROJECT}/src" 382 fi 383 set -u 384 FER_GO="${FER_GO} ${PROJECT}/src/test" 385 export FER_GO 386 # 387 # set up for idl 388 IDL_CMD=${idl_cmd} 389 export IDL_CMD 390 unset idl_cmd 391 # 392 SAXO_DIR=${saxo_dir} 393 export SAXO_DIR 394 unset saxo_dir 395 # 396 # IDL startup 397 IDL_STARTUP=${PROJECT}/src/project_init.pro 398 export IDL_STARTUP 233 399 fi 234 # 235 # check for permission on directory 236 if [ ! -x ${directory} ] 237 then 238 echo " eee : ${directory} not reachable" 239 # nb : no exit because this file should be launched by login process 240 fi 241 # 242 PROJECT=${directory} 243 export PROJECT 244 unset drectory 245 # 246 # add PROJECT tools to PATH 247 # if not already done 248 suppath=$(echo ${PROJECT}/src | tr -s "/") 249 echo ${PATH} | grep -q "${suppath}:" 250 test_path=${?} 251 if [ ${test_path} -ne 0 ] 252 then 253 PATH=${suppath}:${PATH} 254 export PATH 255 else 256 # option bavarde oui/non pas encore implantée ++ 257 echo "${command} : iii : ${suppath} already in \${PATH}" 258 fi 259 unset test_path 260 # 261 # add PROJECT manuals to MANPATH 262 # if not already done 263 suppath=$(echo ${PROJECT}/doc/man | tr -s "/") 264 echo ${MANPATH} | grep -q "${suppath}:" 265 test_manpath=${?} 266 if [ ${test_manpath} -ne 0 ] 267 then 268 MANPATH=${suppath}:${MANPATH} 269 export MANPATH 270 else 271 # option bavarde oui/non pas encore implantée ++ 272 echo "${command} : iii : ${suppath} already in \${MANPATH}" 273 fi 274 unset test_manpath 275 unset suppath 276 # 277 PROJECT_LOG=${tempdir} 278 export PROJECT_LOG 279 unset tempdir 280 if [ ! -d ${PROJECT_LOG} ] 281 then 282 mkdir -p ${PROJECT_LOG} 283 status=${?} 284 if [ ${status} -ne 0 ] 285 then 286 echo "${command} : eee : can not create \${PROJECT_LOG}" 287 # nb : no exit because this file should be launched by login process 288 else 289 echo "${command} : iii : creation of \${PROJECT_LOG}" 290 fi 291 unset status 292 fi 293 # check for permission on PROJECT_LOG 294 if [ ! -x ${PROJECT_LOG} ] 295 then 296 echo " eee : ${PROJECT_LOG} not reachable" 297 # nb : no exit because this file should be launched by login process 298 fi 299 # 300 # check for permission on PROJECT_LOG 301 if [ ! -w ${PROJECT_LOG} ] 302 then 303 echo " eee : ${PROJECT_LOG} not writable" 304 # nb : no exit because this file shouldreachable be launched by login process 305 fi 306 # 307 EDITOR=vi 308 export EDITOR 309 # 310 # io directories 311 PROJECT_ID=${indir} 312 export PROJECT_ID 313 unset indir 314 if [ ! -d ${PROJECT_ID} ] 315 then 316 mkdir -p ${PROJECT_ID} 317 echo "${command} : iii : creation of \${PROJECT_ID}" 318 fi 319 # check for permission on PROJECT_ID 320 if [ ! -x ${PROJECT_ID} ] 321 then 322 echo " eee : ${PROJECT_ID} not reachable" 323 # nb : no exit because this file should be launched by login process 324 fi 325 # 326 PROJECT_OD=${outdir} 327 export PROJECT_OD 328 unset outdir 329 if [ ! -d ${PROJECT_OD} ] 330 then 331 mkdir -p ${PROJECT_OD} 332 echo "${command} : iii : creation of \${PROJECT_OD}" 333 fi 334 # check for permission on PROJECT_OD 335 if [ ! -x ${PROJECT_OD} ] 336 then 337 echo " eee : ${PROJECT_OD} not reachable" 338 # nb : no exit because this file should be launched by login process 339 fi 340 if [ ! -w ${PROJECT_OD} ] 341 then 342 echo " eee : ${PROJECT_OD} not writable" 343 # nb : no exit because this file should be launched by login process 344 fi 345 # 346 # setup for ferret 347 set +u 348 if [ "${FER_GO}" = "" ] 349 then 350 FER_GO="${FER_DIR}/go ${FER_GO} ${PROJECT}/src" 351 else 352 FER_GO="${FER_DIR}/go ${PROJECT}/src" 353 fi 354 set -u 355 FER_GO="${FER_GO} ${PROJECT}/src/test" 356 export FER_GO 357 # 358 # set up for idl 359 IDL_CMD=${idl_cmd} 360 export IDL_CMD 361 unset idl_cmd 362 # 363 SAXO_DIR=${saxo_dir} 364 export SAXO_DIR 365 unset saxo_dir 366 # 367 # IDL startup 368 IDL_STARTUP=${PROJECT}/src/project_init.pro 369 export IDL_STARTUP 370 # 400 unset pb 371 401 # end 372 402 unset command -
trunk/src/psit.pro
r181 r204 7 7 ; .. function:: psit(zet) 8 8 ; 9 ; DESCRI TPION9 ; DESCRIPTION 10 10 ; =========== 11 11 ; … … 34 34 35 35 if (ii(0) ne -1) then begin 36 c=min([50,.35*zet])37 psi(ii)=-((1+2./3*zet(ii))^1.5+.6667*(zet(ii)-14.28)/exp(c(ii))+8.525)36 c=min([50,.35*zet]) 37 psi(ii)=-((1+2./3*zet(ii))^1.5+.6667*(zet(ii)-14.28)/exp(c(ii))+8.525) 38 38 endif 39 39 -
trunk/src/psiu.pro
r181 r204 7 7 ; .. function:: psiu(zet) 8 8 ; 9 ; DESCRI TPION9 ; DESCRIPTION 10 10 ; =========== 11 11 ; … … 34 34 35 35 if (ii(0) ne -1) then begin 36 c=min([50,.35*zet])37 psi(ii)=-((1+1.*zet(ii))^1.+.667*(zet(ii)-14.28)/exp(c(ii))+8.525)36 c=min([50,.35*zet]) 37 psi(ii)=-((1+1.*zet(ii))^1.+.667*(zet(ii)-14.28)/exp(c(ii))+8.525) 38 38 endif 39 39 -
trunk/src/q2m_correction_ncdf.pro
r203 r204 104 104 ; - fplod 20120322 105 105 ; 106 ; * taking project_overw ite into account106 ; * taking project_overwrite into account 107 107 ; * try to add compile_opt seems to be incompatible with ncdf_quickwrite 108 108 ; * pro -> function … … 156 156 ; test if ${PROJECT_OD} defined 157 157 CASE project_od_env OF 158 '' : BEGIN 159 msg = 'eee : ${PROJECT_OD} is not defined' 158 '' : BEGIN 159 msg = 'eee : ${PROJECT_OD} is not defined' 160 ras = report(msg) 161 return, result 162 END 163 ELSE : BEGIN 164 msg = 'iii : ${PROJECT_OD} is ' + project_od_env 160 165 ras = report(msg) 161 return, result 162 END 163 ELSE: BEGIN 164 msg = 'iii : ${PROJECT_OD} is ' + project_od_env 165 ras = report(msg) 166 END 167 ENDCASE 166 END 167 ENDCASE 168 168 ; 169 169 ; check if output data will be possible … … 172 172 ; existence and protection for reading 173 173 IF (FILE_TEST(iodirout, /DIRECTORY, /EXECUTABLE, /READ) EQ 0) THEN BEGIN 174 msg = 'eee : the directory' + iodirout + ' is not accessible.'175 ras = report(msg)176 return, result174 msg = 'eee : the directory' + iodirout + ' is not accessible.' 175 ras = report(msg) 176 return, result 177 177 ENDIF 178 178 ; … … 192 192 fullfilename = isafile(iodirout + filename, NEW=0, /MUST_EXIST) 193 193 IF fullfilename[0] EQ '' THEN BEGIN 194 msg = 'eee : the file ' + fullfilename + ' was not found.'195 ras = report(msg)196 return, result194 msg = 'eee : the file ' + fullfilename + ' was not found.' 195 ras = report(msg) 196 return, result 197 197 ENDIF 198 198 ; … … 202 202 ; in order to avoid unexpected overwritten 203 203 IF ((FILE_TEST(fullfilename_out) EQ 1) AND (project_overwrite EQ 0)) THEN BEGIN 204 msg = 'eee : the file ' + fullfilename_out + ' already exists.'205 ras = report(msg)206 return, result204 msg = 'eee : the file ' + fullfilename_out + ' already exists.' 205 ras = report(msg) 206 return, result 207 207 ENDIF 208 208 ; … … 228 228 ; 229 229 for jt=0,jpt-1 do begin 230 jtt=(time[jt]-julday(1,1,yea[jt])) < 364231 q=reform(q2m_mean[*,*])232 q2m_m[*,*,jt]=q230 jtt=(time[jt]-julday(1,1,yea[jt])) < 364 231 q=reform(q2m_mean[*,*]) 232 q2m_m[*,*,jt]=q 233 233 endfor 234 234 help, q2m_m -
trunk/src/qsee.pro
r181 r204 7 7 ; .. function:: qsee(zet) 8 8 ; 9 ; DESCRI TPION9 ; DESCRIPTION 10 10 ; =========== 11 11 ; -
trunk/src/read_basic_var.pro
r107 r204 21 21 ; 22 22 ; supprimer ./paper01/fig3/read_basic_var.pro 23 ; car ce module a l'air d' être le même23 ; car ce module a l'air d'être le même 24 24 ; 25 25 ; make it work … … 40 40 ;- 41 41 pro read_basic_var, csite,date1,date2,nsmooth, $ 42 42 at, rh, sst, wu, wv, ws 43 43 44 44 @common … … 66 66 ;tt=fltarr(jpt)+!values.f_nan 67 67 if (f) then begin 68 tt0=time_lec(fi)69 sw0=ncdf_lec(fi,var='RD_495')70 sw_q0=ncdf_lec(fi,var='QSW_5495')71 tt0=tt0-time(0)72 ind=where((tt0 ge -1e-5) and (tt0 le jpt-1+1e-5))73 if (ind(0) ne -1) then begin74 sw(tt0(ind))=sw0(ind)75 sw_q(tt0(ind))=sw_q0(ind)76 endif68 tt0=time_lec(fi) 69 sw0=ncdf_lec(fi,var='RD_495') 70 sw_q0=ncdf_lec(fi,var='QSW_5495') 71 tt0=tt0-time(0) 72 ind=where((tt0 ge -1e-5) and (tt0 le jpt-1+1e-5)) 73 if (ind(0) ne -1) then begin 74 sw(tt0(ind))=sw0(ind) 75 sw_q(tt0(ind))=sw_q0(ind) 76 endif 77 77 endif 78 78 … … 85 85 lh_q=fltarr(jpt)+!values.f_nan 86 86 if (f) then begin 87 tt0=time_lec(fi)88 lh0=ncdf_lec(fi,var='QL_137')89 lh_q0=ncdf_lec(fi,var='QQL_5137')90 tt0=tt0-time(0)91 ind=where((tt0 ge -1e-5) and (tt0 le jpt-1+1e-5))92 if (ind(0) ne -1) then begin93 lh(tt0(ind))=lh0(ind)94 lh_q(tt0(ind))=lh_q0(ind)95 endif87 tt0=time_lec(fi) 88 lh0=ncdf_lec(fi,var='QL_137') 89 lh_q0=ncdf_lec(fi,var='QQL_5137') 90 tt0=tt0-time(0) 91 ind=where((tt0 ge -1e-5) and (tt0 le jpt-1+1e-5)) 92 if (ind(0) ne -1) then begin 93 lh(tt0(ind))=lh0(ind) 94 lh_q(tt0(ind))=lh_q0(ind) 95 endif 96 96 endif 97 97 … … 102 102 lon=fltarr(jpt)+!values.f_nan 103 103 if (f) then begin 104 tt0=time_lec(fi)105 lat0=ncdf_lec(fi,var='LAT_500')106 lon0=ncdf_lec(fi,var='LON_502')107 tt0=tt0-time(0)108 ind=where((tt0 ge -1e-5) and (tt0 le jpt-1+1e-5))109 if (ind(0) ne -1) then begin110 lat(tt0(ind))=lat0(ind)111 lon(tt0(ind))=lon0(ind)112 endif104 tt0=time_lec(fi) 105 lat0=ncdf_lec(fi,var='LAT_500') 106 lon0=ncdf_lec(fi,var='LON_502') 107 tt0=tt0-time(0) 108 ind=where((tt0 ge -1e-5) and (tt0 le jpt-1+1e-5)) 109 if (ind(0) ne -1) then begin 110 lat(tt0(ind))=lat0(ind) 111 lon(tt0(ind))=lon0(ind) 112 endif 113 113 endif 114 115 114 116 115 ;;MET PARAMETERS … … 129 128 130 129 if (f) then begin 131 tt0=time_lec(fi)132 wu0=ncdf_lec(fi,var='WU_422')133 wv0=ncdf_lec(fi,var='WV_423')134 ws0=ncdf_lec(fi,var='WS_401')135 ws_q0=ncdf_lec(fi,var='QWS_5401')136 at0=ncdf_lec(fi,var='AT_21')137 at_q0=ncdf_lec(fi,var='QAT_5021')138 rh0=ncdf_lec(fi,var='RH_910')139 rh_q0=ncdf_lec(fi,var='QRH_5910')140 sst0=ncdf_lec(fi,var='T_25')141 sst_q0=ncdf_lec(fi,var='QT_5025')142 tt0=tt0-time(0)143 ind=where((tt0 ge -1e-5) and (tt0 le jpt-1+1e-5))144 if (ind(0) ne -1) then begin145 wu(tt0(ind))=wu0(ind)146 wv(tt0(ind))=wv0(ind)147 ws(tt0(ind))=ws0(ind)148 ws_q(tt0(ind))=ws_q0(ind)149 at(tt0(ind))=at0(ind)150 at_q(tt0(ind))=at_q0(ind)151 rh(tt0(ind))=rh0(ind)152 rh_q(tt0(ind))=rh_q0(ind)153 sst(tt0(ind))=sst0(ind)154 sst_q(tt0(ind))=sst_q0(ind)155 endif130 tt0=time_lec(fi) 131 wu0=ncdf_lec(fi,var='WU_422') 132 wv0=ncdf_lec(fi,var='WV_423') 133 ws0=ncdf_lec(fi,var='WS_401') 134 ws_q0=ncdf_lec(fi,var='QWS_5401') 135 at0=ncdf_lec(fi,var='AT_21') 136 at_q0=ncdf_lec(fi,var='QAT_5021') 137 rh0=ncdf_lec(fi,var='RH_910') 138 rh_q0=ncdf_lec(fi,var='QRH_5910') 139 sst0=ncdf_lec(fi,var='T_25') 140 sst_q0=ncdf_lec(fi,var='QT_5025') 141 tt0=tt0-time(0) 142 ind=where((tt0 ge -1e-5) and (tt0 le jpt-1+1e-5)) 143 if (ind(0) ne -1) then begin 144 wu(tt0(ind))=wu0(ind) 145 wv(tt0(ind))=wv0(ind) 146 ws(tt0(ind))=ws0(ind) 147 ws_q(tt0(ind))=ws_q0(ind) 148 at(tt0(ind))=at0(ind) 149 at_q(tt0(ind))=at_q0(ind) 150 rh(tt0(ind))=rh0(ind) 151 rh_q(tt0(ind))=rh_q0(ind) 152 sst(tt0(ind))=sst0(ind) 153 sst_q(tt0(ind))=sst_q0(ind) 154 endif 156 155 endif 157 156 … … 163 162 164 163 if (ind(0) ne -1) then begin 165 sw(ind)=!Values.f_nan & at(ind)=!Values.f_nan166 rh(ind)=!Values.f_nan & ws(ind)=!Values.f_nan167 sst(ind)=!Values.f_nan & lh(ind)=!Values.f_nan168 wu(ind)=!Values.f_nan & wv(ind)=!Values.f_nan164 sw(ind)=!Values.f_nan & at(ind)=!Values.f_nan 165 rh(ind)=!Values.f_nan & ws(ind)=!Values.f_nan 166 sst(ind)=!Values.f_nan & lh(ind)=!Values.f_nan 167 wu(ind)=!Values.f_nan & wv(ind)=!Values.f_nan 169 168 endif 170 169 ; … … 175 174 nn=n_elements(vars) 176 175 for n=0,nn-1 do begin 177 var=vars(n)178 com='ind=where('+var+' ge 1.e20) & if (ind(0) ne -1) then '+var+'(ind)=!values.f_nan'179 r=execute(com)176 var=vars(n) 177 com='ind=where('+var+' ge 1.e20) & if (ind(0) ne -1) then '+var+'(ind)=!values.f_nan' 178 r=execute(com) 180 179 endfor 181 180 -
trunk/src/sst_correction_ncdf.pro
r203 r204 44 44 ; digraph sst_correction_ncdf { 45 45 ; 46 ; file_in [shape=ellipse,fontname=Courier,label="${PROJECT_OD}/erai_sst_{yyyymmdd}_{yyyymmdd}_oafluxgrid.nc"]; 47 ; file_out [shape=ellipse,fontname=Courier,label="${PROJECT_OD}/TropFlux_sst_{yyyymmdd}_{yyyymmdd}.nc"]; 46 ; file_in [shape=ellipse, 47 ; fontname=Courier, 48 ; label="${PROJECT_OD}/erai_sst_{yyyymmdd}_{yyyymmdd}_oafluxgrid.nc"]; 49 ; file_out [shape=ellipse, 50 ; fontname=Courier, 51 ; label="${PROJECT_OD}/TropFlux_sst_{yyyymmdd}_{yyyymmdd}.nc"]; 48 52 ; 49 53 ; sst_correction_ncdf [shape=box, … … 88 92 ; 89 93 ; make it work on loholt1 idl8: 90 ; reach end whithout error but with bad values (9.96921e+36 on time and sst, nb timestep 5716 94 ; reach end without error but with bad values (9.96921e+36 on time and sst, 95 ; nb timestep 5716 91 96 ; 92 97 ; see commands: … … 96 101 ; ncks -v sst -d time,0,1 -d latitude,0,1 -d longitude,0,1 /homedata/pinsard/tropflux_d/TropFlux_sst_19890101_20091231.nc 97 102 ; 98 ; very strange value of time on lohlot1 idl6 but not always and not always at the same indices !!: 103 ; very strange value of time on loholt1 idl6 but not always and not always at 104 ; the same indices !!: 99 105 ; 100 106 ; .. parsed-literal:: … … 186 192 ; - fplod 20120322 187 193 ; 188 ; * taking project_overw ite into account194 ; * taking project_overwrite into account 189 195 ; * try to add compile_opt seems to be incompatible with ncdf_quickwrite 190 196 ; * pro -> function … … 240 246 CASE project_od_env OF 241 247 '' : BEGIN 242 243 244 return, result248 msg = 'eee : ${PROJECT_OD} is not defined' 249 ras = report(msg) 250 return, result 245 251 END 246 ELSE : BEGIN247 248 252 ELSE : BEGIN 253 msg = 'iii : ${PROJECT_OD} is ' + project_od_env 254 ras = report(msg) 249 255 END 250 256 ENDCASE … … 310 316 caldat, time,mon,day,yea 311 317 ; 312 ;++ debug to understand some time value 9.9692100e+36 on idl 6 loh loht1318 ;++ debug to understand some time value 9.9692100e+36 on idl 6 loholt1 313 319 ; print, time[7080:7090] when working on [19890101,19891231] 314 320 ; … … 330 336 help, sst_ano 331 337 ; 332 ; applying the correction for var yability based on the scatter338 ; applying the correction for variability based on the scatter 333 339 ;sst_ano=sst_ano*(1/0.989889) ; (2000-2008) 334 340 sst_ano=sst_ano*(1/0.986196) ; (2000-2009) -
trunk/src/t2m_correction_ncdf.pro
r203 r204 134 134 ; - fplod 20120322 135 135 ; 136 ; * taking project_overw ite into account136 ; * taking project_overwrite into account 137 137 ; * try to add compile_opt seems to be incompatible with ncdf_quickwrite 138 138 ; * pro -> function … … 202 202 ; test if ${PROJECT_OD} defined 203 203 CASE project_id_env OF 204 '' 205 msg = 'eee : ${PROJECT_OD} is not defined'206 ras = report(msg)207 return, result208 209 ELSE: BEGIN210 msg = 'iii : ${PROJECT_OD} is ' + project_id_env211 ras = report(msg)212 204 '' : BEGIN 205 msg = 'eee : ${PROJECT_OD} is not defined' 206 ras = report(msg) 207 return, result 208 END 209 ELSE : BEGIN 210 msg = 'iii : ${PROJECT_OD} is ' + project_id_env 211 ras = report(msg) 212 END 213 213 ENDCASE 214 214 ; … … 218 218 ; existence and protection for reading 219 219 IF (FILE_TEST(iodirout, /DIRECTORY, /EXECUTABLE, /READ) EQ 0) THEN BEGIN 220 msg = 'eee : the directory' + iodirout + ' is not accessible.'221 ras = report(msg)222 return, result220 msg = 'eee : the directory' + iodirout + ' is not accessible.' 221 ras = report(msg) 222 return, result 223 223 ENDIF 224 224 ; … … 257 257 ; in order to avoid unexpected overwritten 258 258 IF ((FILE_TEST(fullfilename_out) EQ 1) AND (project_overwrite EQ 0)) THEN BEGIN 259 msg = 'eee : the file ' + fullfilename_out + ' already exists.'260 ras = report(msg)261 return, result259 msg = 'eee : the file ' + fullfilename_out + ' already exists.' 260 ras = report(msg) 261 return, result 262 262 ENDIF 263 263 ; … … 305 305 ; 306 306 for jt=0,jptin-1 do begin 307 caldat, julday(01, 01, 1957,timein[jt]),mon,day,yea308 ;++print,day309 jtt=(julday(01, 01, 1957,timein[jt])-julday(1,1,yea)) < 364310 t=reform(t2m_mean[*,*])311 t2m_m[*,*,jt]=t312 bias_cor[*,*,jt]=(((t-22.6)*0.4004896/(28-22.6)) > 0.) <0.4 ; (2000-2009)307 caldat, julday(01, 01, 1957,timein[jt]),mon,day,yea 308 ;++print,day 309 jtt=(julday(01, 01, 1957,timein[jt])-julday(1,1,yea)) < 364 310 t=reform(t2m_mean[*,*]) 311 t2m_m[*,*,jt]=t 312 bias_cor[*,*,jt]=(((t-22.6)*0.4004896/(28-22.6)) > 0.) <0.4 ; (2000-2009) 313 313 endfor 314 314 help, t2m_m,bias_cor … … 320 320 help, t2m_ano 321 321 ; 322 ; applying the correction for var yability based on the scatter322 ; applying the correction for variability based on the scatter 323 323 ;t2m_ano=t2m_ano*(1/0.916484) ; (2000-2008) 324 324 t2m_ano=t2m_ano*(1/0.918085) ; (2000-2009) 325 325 ; 326 ; applying the correction for var yability based on the scatter326 ; applying the correction for variability based on the scatter 327 327 t2m_m=t2m_m+bias_cor 328 328 ; -
trunk/src/test/average_demo.jnl
r164 r204 10 10 ! =========== 11 11 ! 12 ! plot sst anom oly from ferret demo dataset12 ! plot sst anomaly from ferret demo dataset 13 13 ! 14 14 ! no other interest than learning ferret and be able to work on tropflux -
trunk/src/test/average_pb.jnl
r164 r204 60 60 ! * creation to try to answer to [TropFlux:7] mail:: 61 61 ! 62 ! I have downloaded Trop slux SST daily data from the site62 ! I have downloaded TropFlux SST daily data from the site 63 63 ! http://www.locean-ipsl.upmc.fr/~tropflux/data/daily. While using the 64 64 ! data in ferret i encountered some problems. In ferret … … 72 72 ! inspired by 73 73 ! /opt/ferret-6.6.5/examples/tutorial.jnl 74 ! for plot ing74 ! for plotting 75 75 ! 76 76 !- -
trunk/src/test/project_startup.m
r50 r204 17 17 % 18 18 % Define : 19 % - path for matlab/octave commands used in PROJECT project20 % - IO directories in global variables21 19 % 22 % This file can be either run classicaly when current directory 20 % - path for matlab/octave commands used in PROJECT project 21 % - IO directories in global variables 22 % 23 % This file can be either run classically when current directory 23 24 % is ${PROJECT}:: 24 25 % … … 26 27 % 27 28 % 28 % If linked or copy to ./startup.m, it will be automatical y29 % If linked or copy to ./startup.m, it will be automatically 29 30 % run by matlab at start. 30 31 % 31 % If linked or copy to ${HOME}/.octaverc, it will be automatical y32 % If linked or copy to ${HOME}/.octaverc, it will be automatically 32 33 % run by octave at start. 33 34 % -
trunk/src/test/read.jnl
r50 r204 37 37 ! ==== 38 38 ! 39 ! usage of $ TROFLUX_D39 ! usage of ${TROPFLUX_D} 40 40 ! 41 41 ! make it usable for real end-user -
trunk/src/test/read.m
r67 r204 60 60 % - fplod 20110105T163640Z aedon.locean-ipsl.upmc.fr (Darwin) 61 61 % 62 % * creation to prevent Netcdfproblem on TROPFLUX dataset62 % * creation to prevent netCDF problem on TROPFLUX dataset 63 63 % draft 64 64 % … … 74 74 yyyymmdd_e=double(20091231); 75 75 %++fullfilename=([PROJECT_ID '/' 'TropFlux_' num2str(yyyymmdd_b,'%8.8d') '_' num2str(yyyymmdd_e,'%8.8d') '.nc']); 76 % ++ Pb m emoire fullfilename=([ '/Users/fplod/Downloads' '/' 'TropFlux_' num2str(yyyymmdd_b,'%8.8d') '_' num2str(yyyymmdd_e,'%8.8d') '.nc' ]);76 % ++ Pb mémoire fullfilename=([ '/Users/fplod/Downloads' '/' 'TropFlux_' num2str(yyyymmdd_b,'%8.8d') '_' num2str(yyyymmdd_e,'%8.8d') '.nc' ]); 77 77 fullfilename=([ '/Users/fplod/Downloads' '/' 'TropFlux_' 'q2m' '_' num2str(yyyymmdd_b,'%8.8d') '_' num2str(yyyymmdd_e,'%8.8d') '.nc' ]); 78 78 file=netcdf(fullfilename,'nowrite'); -
trunk/src/test/read.py
r203 r204 58 58 - fplod 20110106T133620Z aedon.locean-ipsl.upmc.fr (Darwin) 59 59 60 * creation to prevent Netcdfproblem on TROPFLUX dataset60 * creation to prevent netCDF problem on TROPFLUX dataset 61 61 draft 62 62 … … 72 72 # 73 73 file = NetCDFFile(fullfilename, 'r') 74 # control eprint74 # control print 75 75 print file.dimensions 76 76 print file.variables -
trunk/src/tropflux.pro
r203 r204 1 ;+1 + 2 2 ; 3 3 ; ============ … … 7 7 ; .. function:: tropflux(yyyymmddb,yyyymmdde) 8 8 ; 9 ; DESCRI TION10 ; ========== 9 ; DESCRIPTION 10 ; =========== 11 11 ; 12 12 ; This program computes net heat flux components on the 1° oaflux grid. … … 220 220 ; * pro -> func 221 221 ; * rename with lower case TropFlux_19890101_20091231 become tropflux 222 ; * taking project_overw ite into account222 ; * taking project_overwrite into account 223 223 ; * try to add compile_opt 224 224 ; * hard coded da1 and da2 replaced by yyyymmddb and yyyymmdde parameters … … 231 231 ; - fplod 20110830T084129Z aedon.locean-ipsl.upmc.fr (Darwin) 232 232 ; 233 ; * add tau in ou ptut file233 ; * add tau in output file 234 234 ; 235 235 ; - fplod 20110822T090838Z aedon.locean-ipsl.upmc.fr (Darwin) 236 236 ; 237 237 ; * split some multiple lines statement to investigate 238 ; pb of extr opalation for lwr238 ; pb of extrapolation for lwr 239 239 ; 240 240 ; - fplod 20110819T144332Z aedon.locean-ipsl.upmc.fr (Darwin) … … 245 245 ; - fplod 20110809T110911Z aedon.locean-ipsl.upmc.fr (Darwin) 246 246 ; 247 ; * complete descri tption247 ; * complete description 248 248 ; * remove v* from filenames (in and out) 249 249 ; * usage of ${PROJECT_OD} … … 290 290 IF (nparam NE 2) THEN BEGIN 291 291 ras = report(['Incorrect number of arguments.' $ 292 293 292 + '!C' $ 293 + 'Usage : ' + usage]) 294 294 return, result 295 295 ENDIF … … 299 299 ; test if ${PROJECT_ID} defined 300 300 CASE project_id_env OF 301 '' 302 msg = 'eee : ${PROJECT_ID} is not defined'303 ras = report(msg)304 return, result305 306 ELSE: BEGIN307 msg = 'iii : ${PROJECT_ID} is ' + project_id_env308 ras = report(msg)309 301 '' : BEGIN 302 msg = 'eee : ${PROJECT_ID} is not defined' 303 ras = report(msg) 304 return, result 305 END 306 ELSE : BEGIN 307 msg = 'iii : ${PROJECT_ID} is ' + project_id_env 308 ras = report(msg) 309 END 310 310 ENDCASE 311 311 ; … … 314 314 ; existence and protection of ${PROJECT_ID} 315 315 IF (FILE_TEST(iodirin, /DIRECTORY, /EXECUTABLE, /READ) EQ 0) THEN BEGIN 316 msg = 'eee : the directory' + iodirin + ' is not accessible.'317 ras = report(msg)318 return, result316 msg = 'eee : the directory' + iodirin + ' is not accessible.' 317 ras = report(msg) 318 return, result 319 319 ENDIF 320 320 ; … … 327 327 fullfilename_msk = isafile(iodirin + filename_msk, NEW=0, /MUST_EXIST) 328 328 IF fullfilename_msk[0] EQ '' THEN BEGIN 329 msg = 'eee : the file ' + fullfilename_msk + ' was not found.'330 ras = report(msg)331 return, result329 msg = 'eee : the file ' + fullfilename_msk + ' was not found.' 330 ras = report(msg) 331 return, result 332 332 ENDIF 333 333 ; 334 334 ; test if ${PROJECT_OD} defined 335 335 CASE project_od_env OF 336 '' : BEGIN337 338 339 return, result340 341 ELSE: BEGIN342 343 344 345 336 '' : BEGIN 337 msg = 'eee : ${PROJECT_OD} is not defined' 338 ras = report(msg) 339 return, result 340 END 341 ELSE : BEGIN 342 msg = 'iii : ${PROJECT_OD} is ' + project_od_env 343 ras = report(msg) 344 END 345 ENDCASE 346 346 ; 347 347 ; check if output data will be possible … … 350 350 ; existence and protection for reading 351 351 IF (FILE_TEST(iodirout, /DIRECTORY, /EXECUTABLE, /READ) EQ 0) THEN BEGIN 352 msg = 'eee : the directory' + iodirout + ' is not accessible.'353 ras = report(msg)354 return, result352 msg = 'eee : the directory' + iodirout + ' is not accessible.' 353 ras = report(msg) 354 return, result 355 355 ENDIF 356 356 ; … … 370 370 fullfilename_sst = isafile(iodirout + filename_sst, NEW=0, /MUST_EXIST) 371 371 IF fullfilename_sst[0] EQ '' THEN BEGIN 372 msg = 'eee : the file ' + fullfilename_sst + ' was not found.'373 ras = report(msg)374 return, result372 msg = 'eee : the file ' + fullfilename_sst + ' was not found.' 373 ras = report(msg) 374 return, result 375 375 ENDIF 376 376 ; … … 383 383 fullfilename_ws = isafile(iodirout + filename_ws, NEW=0, /MUST_EXIST) 384 384 IF fullfilename_ws[0] EQ '' THEN BEGIN 385 msg = 'eee : the file ' + fullfilename_ws + ' was not found.'386 ras = report(msg)387 return, result385 msg = 'eee : the file ' + fullfilename_ws + ' was not found.' 386 ras = report(msg) 387 return, result 388 388 ENDIF 389 389 ; … … 396 396 fullfilename_swr = isafile(iodirout + filename_swr, NEW=0, /MUST_EXIST) 397 397 IF fullfilename_swr[0] EQ '' THEN BEGIN 398 msg = 'eee : the file ' + fullfilename_swr + ' was not found.'399 ras = report(msg)400 return, result398 msg = 'eee : the file ' + fullfilename_swr + ' was not found.' 399 ras = report(msg) 400 return, result 401 401 ENDIF 402 402 ; … … 409 409 fullfilename_lwr = isafile(iodirout + filename_lwr, NEW=0, /MUST_EXIST) 410 410 IF fullfilename_lwr[0] EQ '' THEN BEGIN 411 msg = 'eee : the file ' + fullfilename_lwr + ' was not found.'412 ras = report(msg)413 return, result411 msg = 'eee : the file ' + fullfilename_lwr + ' was not found.' 412 ras = report(msg) 413 return, result 414 414 ENDIF 415 415 ; … … 422 422 fullfilename_t2m = isafile(iodirout + filename_t2m, NEW=0, /MUST_EXIST) 423 423 IF fullfilename_t2m[0] EQ '' THEN BEGIN 424 msg = 'eee : the file ' + fullfilename_t2m + ' was not found.'425 ras = report(msg)426 return, result424 msg = 'eee : the file ' + fullfilename_t2m + ' was not found.' 425 ras = report(msg) 426 return, result 427 427 ENDIF 428 428 ; … … 435 435 fullfilename_q2m = isafile(iodirout + filename_q2m, NEW=0, /MUST_EXIST) 436 436 IF fullfilename_q2m[0] EQ '' THEN BEGIN 437 msg = 'eee : the file ' + fullfilename_q2m + ' was not found.'438 ras = report(msg)439 return, result437 msg = 'eee : the file ' + fullfilename_q2m + ' was not found.' 438 ras = report(msg) 439 return, result 440 440 ENDIF 441 441 ; … … 448 448 fullfilename_wg = isafile(iodirout + filename_wg, NEW=0, /MUST_EXIST) 449 449 IF fullfilename_wg[0] EQ '' THEN BEGIN 450 msg = 'eee : the file ' + fullfilename_wg + ' was not found.'451 ras = report(msg)452 return, result450 msg = 'eee : the file ' + fullfilename_wg + ' was not found.' 451 ras = report(msg) 452 return, result 453 453 ENDIF 454 454 ; … … 458 458 ; in order to avoid unexpected overwritten 459 459 IF (FILE_TEST(fullfilename_out) EQ 1) THEN BEGIN 460 msg = 'eee : the file ' + fullfilename_out + ' already exists.'461 ras = report(msg)462 return, result460 msg = 'eee : the file ' + fullfilename_out + ' already exists.' 461 ras = report(msg) 462 return, result 463 463 ENDIF 464 464 ; … … 571 571 ; 572 572 for jt=0,jpt-1 do begin 573 jday=time[jt]-julday(1,1,yea[jt])574 print, 'Computing Fluxes ',jt,' / ',jpt-1575 ;576 ; P=msl(*,*,jt)577 ; P=P(ocean)578 ;579 ; wind speed (m/s)580 wn=w[*,*,jt]581 wn=wn[ocean]582 ; Bulk sst (°C)583 ts=sst[*,*,jt]584 ts=ts[ocean]585 ; 2m Air T (°C)586 t=t2m[*,*,jt]587 t=t[ocean]588 ; Sea surface sat. spec. humidity (g/kg)589 qs=qsee(ts,P)590 ; 2m AIr specific humidity (g/kg)591 q=q2m[*,*,jt]592 q=q[ocean]593 ; Downward solar flux (W/m2)594 Rs=swd[*,*,jt]595 Rs=Rs[ocean]596 ylat=gphit[ocean]597 ; cld=calc_cloud(jday,Rs,ylat)598 cld=calc_cloud_vlat(jday,Rs,ylat)599 ; Downward IR flux (W/m2)600 ; Rl=lwdown_clark(ts,q,cld,t,P)601 Rl=lw[*,*,jt]602 Rl=Rl[ocean]603 rain=0.604 lw_clrk=-lwnet_clark(ts,q,cld,t,P)605 ; junk[*,*,jt]=lw_clrk606 ;573 jday=time[jt]-julday(1,1,yea[jt]) 574 print, 'Computing Fluxes ',jt,' / ',jpt-1 575 ; 576 ; P=msl(*,*,jt) 577 ; P=P(ocean) 578 ; 579 ; wind speed (m/s) 580 wn=w[*,*,jt] 581 wn=wn[ocean] 582 ; Bulk sst (°C) 583 ts=sst[*,*,jt] 584 ts=ts[ocean] 585 ; 2m Air T (°C) 586 t=t2m[*,*,jt] 587 t=t[ocean] 588 ; Sea surface sat. spec. humidity (g/kg) 589 qs=qsee(ts,P) 590 ; 2m AIr specific humidity (g/kg) 591 q=q2m[*,*,jt] 592 q=q[ocean] 593 ; Downward solar flux (W/m2) 594 Rs=swd[*,*,jt] 595 Rs=Rs[ocean] 596 ylat=gphit[ocean] 597 ; cld=calc_cloud(jday,Rs,ylat) 598 cld=calc_cloud_vlat(jday,Rs,ylat) 599 ; Downward IR flux (W/m2) 600 ; Rl=lwdown_clark(ts,q,cld,t,P) 601 Rl=lw[*,*,jt] 602 Rl=Rl[ocean] 603 rain=0. 604 lw_clrk=-lwnet_clark(ts,q,cld,t,P) 605 ; junk[*,*,jt]=lw_clrk 606 ; 607 607 ;stop 608 y=cor30a(wn,us,ts,t,Qs,Q,Rs,Rl,rain,zi,P,zu,zt,zq,ylat,jcool,jwave,twave,hwave)609 ; A few punctual missing values (coare does not converge): filled by spatial extrapolation610 tab=fltarr(jpi,jpj)+!values.f_nan611 x=reform(y[*,0])612 tab[ocean]=x613 m=finite(tab)614 help, tab, m, swr615 tab=extrapolate(tab,m)616 swr[*,*,jt]=tab*msk+valmask*(1-msk)617 ;618 tab=fltarr(jpi,jpj)+!values.f_nan619 x=reform(y[*,1])620 tab[ocean]=x621 m=finite(tab)622 help, tab, m, lwr623 ;!!!!!!!!!!!!+++++++++++++++ tab=extrapolate(tab,m)624 print, 'www : extrapolation for lwr is not done'625 tab=tab626 lwr[*,*,jt]=tab*msk+valmask*(1-msk)627 ;628 tab=fltarr(jpi,jpj)+!values.f_nan629 x=reform(y[*,2])630 tab[ocean]=x631 m=finite(tab)632 help, tab, m, lat633 ;!!!!!!!!!!!!+++++++++++++++ tab=extrapolate(tab,m)634 print, 'www : extrapolation for lat is not done'635 tab=tab636 lat[*,*,jt]=tab*msk+valmask*(1-msk)637 tab=fltarr(jpi,jpj)+!values.f_nan638 x=reform(y[*,3])639 tab[ocean]=x640 m=finite(tab)641 help, tab, m, sen642 ;!!!!!!!!!!!!+++++++++++++++ tab=extrapolate(tab,m)643 print, 'www : extrapolation for sen is not done'644 tab=tab645 sen[*,*,jt]=tab*msk+valmask*(1-msk)646 ; tab=fltarr(jpi,jpj)+!values.f_nan & x=reform(lw_clrk) & tab[ocean]=x & m=finite(tab) & tab=extrapolate(tab,m) & lwnet_clrk[*,*,jt]=tab*msk+valmask*(1-msk)647 tab=fltarr(jpi,jpj)+!values.f_nan & x=reform(y[*,5]) & tab[ocean]=x & m=finite(tab) & tab=extrapolate(tab,m) & tau[*,*,jt]=tab*msk+valmask*(1-msk)648 ; tab=fltarr(jpi,jpj)+!values.f_nan & x=reform(y[*,6]) & tab[ocean]=x & m=finite(tab) & tab=extrapolate(tab,m) & Ch[*,*,jt]=tab*msk+valmask*(1-msk)649 ; tab=fltarr(jpi,jpj)+!values.f_nan & x=reform(y[*,7]) & tab[ocean]=x & m=finite(tab) & tab=extrapolate(tab,m) & Ce[*,*,jt]=tab*msk+valmask*(1-msk)650 tab=fltarr(jpi,jpj)+!values.f_nan & x=reform(y[*,8]) & tab[ocean]=x & m=finite(tab) & tab=extrapolate(tab,m) & wg[*,*,jt]=tab*msk+valmask*(1-msk)608 y=cor30a(wn,us,ts,t,Qs,Q,Rs,Rl,rain,zi,P,zu,zt,zq,ylat,jcool,jwave,twave,hwave) 609 ; A few punctual missing values (coare does not converge): filled by spatial extrapolation 610 tab=fltarr(jpi,jpj)+!values.f_nan 611 x=reform(y[*,0]) 612 tab[ocean]=x 613 m=finite(tab) 614 help, tab, m, swr 615 tab=extrapolate(tab,m) 616 swr[*,*,jt]=tab*msk+valmask*(1-msk) 617 ; 618 tab=fltarr(jpi,jpj)+!values.f_nan 619 x=reform(y[*,1]) 620 tab[ocean]=x 621 m=finite(tab) 622 help, tab, m, lwr 623 ;!!!!!!!!!!!!+++++++++++++++ tab=extrapolate(tab,m) 624 print, 'www : extrapolation for lwr is not done' 625 tab=tab 626 lwr[*,*,jt]=tab*msk+valmask*(1-msk) 627 ; 628 tab=fltarr(jpi,jpj)+!values.f_nan 629 x=reform(y[*,2]) 630 tab[ocean]=x 631 m=finite(tab) 632 help, tab, m, lat 633 ;!!!!!!!!!!!!+++++++++++++++ tab=extrapolate(tab,m) 634 print, 'www : extrapolation for lat is not done' 635 tab=tab 636 lat[*,*,jt]=tab*msk+valmask*(1-msk) 637 tab=fltarr(jpi,jpj)+!values.f_nan 638 x=reform(y[*,3]) 639 tab[ocean]=x 640 m=finite(tab) 641 help, tab, m, sen 642 ;!!!!!!!!!!!!+++++++++++++++ tab=extrapolate(tab,m) 643 print, 'www : extrapolation for sen is not done' 644 tab=tab 645 sen[*,*,jt]=tab*msk+valmask*(1-msk) 646 ; tab=fltarr(jpi,jpj)+!values.f_nan & x=reform(lw_clrk) & tab[ocean]=x & m=finite(tab) & tab=extrapolate(tab,m) & lwnet_clrk[*,*,jt]=tab*msk+valmask*(1-msk) 647 tab=fltarr(jpi,jpj)+!values.f_nan & x=reform(y[*,5]) & tab[ocean]=x & m=finite(tab) & tab=extrapolate(tab,m) & tau[*,*,jt]=tab*msk+valmask*(1-msk) 648 ; tab=fltarr(jpi,jpj)+!values.f_nan & x=reform(y[*,6]) & tab[ocean]=x & m=finite(tab) & tab=extrapolate(tab,m) & Ch[*,*,jt]=tab*msk+valmask*(1-msk) 649 ; tab=fltarr(jpi,jpj)+!values.f_nan & x=reform(y[*,7]) & tab[ocean]=x & m=finite(tab) & tab=extrapolate(tab,m) & Ce[*,*,jt]=tab*msk+valmask*(1-msk) 650 tab=fltarr(jpi,jpj)+!values.f_nan & x=reform(y[*,8]) & tab[ocean]=x & m=finite(tab) & tab=extrapolate(tab,m) & wg[*,*,jt]=tab*msk+valmask*(1-msk) 651 651 endfor 652 652 jpt=n_elements(time) … … 674 674 ; 675 675 ncfields = 'tau[longitude,latitude,time]=tau:tau_attr; ' $ 676 677 676 + 'wg[longitude,latitude,time]=wg:wg_attr; ' $ 677 + 'swr[longitude,latitude,time]=swr:swr_attr; ' $ 678 678 ; +'lwr_coare[longitude,latitude,time]=lwr:lwr_attr; ' $ 679 680 681 679 +'lwr[longitude,latitude,time]=lwnet_clrk:lwr_clrk_attr; ' $ 680 +'lhf[longitude,latitude,time]=lat:lhf_attr; ' $ 681 +'shf[longitude,latitude,time]=sen:shf_attr; ' $ 682 682 ; +'Ch[longitude,latitude,time]=Ch:Ch_attr; ' $ 683 683 ; +'Ce[longitude,latitude,time]=Ce:Ce_attr; ' $ 684 685 686 687 684 + 'longitude[]=xlon:lon_attr; ' $ 685 + 'latitude[]=ylat:lat_attr; ' $ 686 + 'time[*time]=time:time_attr ' $ 687 + ' @ globattr' 688 688 ; 689 689 @ncdf_quickwrite -
trunk/src/tropflux.sh
r203 r204 22 22 # Run all needed :file:`*.pro` to create the TropFlux dataset between two dates 23 23 # 24 # We suppose here that all inputs data are already available local y.24 # We suppose here that all inputs data are already available locally. 25 25 # 26 26 # .. option:: -b beginning date <yyyymmdd> … … 29 29 # 30 30 # Some IDL programs are launched here using ${IDL_CMD} command 31 # (see :ref:`project_profile.sh` to know how to set this environnement variable). 31 # (see :ref:`project_profile.sh` to know how to set this 32 # environment variable). 32 33 # 33 34 # Log file is written on … … 44 45 # digraph tropflux { 45 46 # 46 # file_oaflux [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/lh_oaflux_2004.nc"]; 47 48 # log [shape=ellipse,fontname=Courier,label="${PROJECT_LOG}/tropflux.log{YYYYMMDDTHHMMSSZ}"]; 47 # file_oaflux [shape=ellipse, 48 # fontname=Courier, 49 # label="${PROJECT_ID}/lh_oaflux_2004.nc"]; 50 # 51 # log [shape=ellipse, 52 # fontname=Courier, 53 # label="${PROJECT_LOG}/tropflux.log{YYYYMMDDTHHMMSSZ}"]; 49 54 # 50 55 # tropflux [shape=box, … … 116 121 # make it work 117 122 # 118 # if yyyymmdd < 20071231, is it mean ingfull to call all the functions ?123 # if yyyymmdd < 20071231, is it meanningfull to call all the functions ? 119 124 # 120 125 # idl status = 0 even if not ok … … 159 164 # * TropFlux_swr_BLND_19890101_20071231 replace by tropflux_swr_blnd 160 165 # which is now a function 161 # * corr rection of messages when return badly166 # * correction of messages when return badly 162 167 # * reorder for gustiness before tropflux_swr_blnd 163 168 # * cronin_gustiness_ncdf is now a function … … 231 236 if [ ${#} -lt ${minargcount} ] 232 237 then 233 echo "${command} : eee : not enough targuments"238 echo "${command} : eee : not enough arguments" 234 239 echo "${usage}" 235 240 exit 1 … … 309 314 if [[ "${yyyymmdde}" = "${yyyymmddb}" ]] 310 315 then 311 312 316 echo "${command} : eee : yyyymmdde ${yyyymmdde} must be greater than yyyymmddb ${yyyymmddb}" 317 exit 1 313 318 fi 314 319 # … … 364 369 msg = 'eee : pb after oaflux_mask_30n30s ' + string(result) 365 370 err = report(msg) 366 exit371 exit 367 372 ENDIF 368 373 result = interp_erai_dewt(${yyyymmddb}, ${yyyymmdde}, eraitype) -
trunk/src/tropflux_nrt_ncdf.pro
r203 r204 74 74 ; ==== 75 75 ; 76 ; handl indyyyymmdde > 20071231 see attributes also76 ; handle yyyymmdde > 20071231 see attributes also 77 77 ; 78 78 ; coding rules … … 91 91 ; * pro -> func 92 92 ; * rename with lower case TropFlux_NRT_ncdf.pro become tropflux_nrt_ncdf.pro 93 ; * taking project_overw ite into account93 ; * taking project_overwrite into account 94 94 ; * try to add compile_opt seems to be incompatible with ncdf_quickwrite 95 95 ; * hard coded st and en replaced by yyyymmddb and yyyymmdde parameters … … 143 143 ; test if ${PROJECT_OD} defined 144 144 CASE project_od_env OF 145 '' : BEGIN146 147 148 return, result149 150 ELSE: BEGIN151 152 153 154 145 '' : BEGIN 146 msg = 'eee : ${PROJECT_OD} is not defined' 147 ras = report(msg) 148 return, result 149 END 150 ELSE : BEGIN 151 msg = 'iii : ${PROJECT_OD} is ' + project_od_env 152 ras = report(msg) 153 END 154 ENDCASE 155 155 ; 156 156 ; check if output data will be possible … … 159 159 ; existence and protection for reading 160 160 IF (FILE_TEST(iodirout, /DIRECTORY, /EXECUTABLE, /READ) EQ 0) THEN BEGIN 161 msg = 'eee : the directory' + iodirout + ' is not accessible.'162 ras = report(msg)163 return, result161 msg = 'eee : the directory' + iodirout + ' is not accessible.' 162 ras = report(msg) 163 return, result 164 164 ENDIF 165 165 ; … … 179 179 fullfilename_swr_blnd = isafile(iodirout + filename_swr_blnd, NEW=0, /MUST_EXIST) 180 180 IF fullfilename_swr_blnd[0] EQ '' THEN BEGIN 181 msg = 'eee : the file ' + fullfilename_swr_blnd + ' was not found.'182 ras = report(msg)183 return, result181 msg = 'eee : the file ' + fullfilename_swr_blnd + ' was not found.' 182 ras = report(msg) 183 return, result 184 184 ENDIF 185 185 ; … … 192 192 fullfilename_lwr = isafile(iodirout + filename_lwr, NEW=0, /MUST_EXIST) 193 193 IF fullfilename_lwr[0] EQ '' THEN BEGIN 194 msg = 'eee : the file ' + fullfilename_lwr + ' was not found.'195 ras = report(msg)196 return, result194 msg = 'eee : the file ' + fullfilename_lwr + ' was not found.' 195 ras = report(msg) 196 return, result 197 197 ENDIF 198 198 ; … … 205 205 fullfilename_coare = isafile(iodirout + filename_coare, NEW=0, /MUST_EXIST) 206 206 IF fullfilename_coare[0] EQ '' THEN BEGIN 207 msg = 'eee : the file ' + fullfilename_coare + ' was not found.'208 ras = report(msg)209 return, result207 msg = 'eee : the file ' + fullfilename_coare + ' was not found.' 208 ras = report(msg) 209 return, result 210 210 ENDIF 211 211 ; … … 214 214 ; in order to avoid unexpected overwritten 215 215 IF ((FILE_TEST(fullfilename_out) EQ 1) AND (project_overwrite EQ 0)) THEN BEGIN 216 msg = 'eee : the file ' + fullfilename_out + ' already exists.'217 ras = report(msg)218 return, result216 msg = 'eee : the file ' + fullfilename_out + ' already exists.' 217 ras = report(msg) 218 return, result 219 219 ENDIF 220 220 ; … … 279 279 ; 280 280 ncfields = 'swr[longitude,latitude,*time]=swr:sw_attr; ' $ 281 282 283 284 285 286 287 281 +'lwr[longitude,latitude,*time]=lwr:lw_attr; ' $ 282 +'lhf[longitude,latitude,*time]=lhf:lh_attr; ' $ 283 +'shf[longitude,latitude,*time]=shf:sh_attr; ' $ 284 + 'longitude[]=lon:lon_attr; ' $ 285 + 'latitude[]=lat:lat_attr; ' $ 286 + 'time[]=timein:time_attr ' $ 287 + ' @ globattr' 288 288 ; 289 289 @ncdf_quickwrite -
trunk/src/tropflux_swr_blnd.pro
r203 r204 93 93 ; complete description 94 94 ; 95 ; why 20080100, 20100112 as 95 ; why 20080100, 20100112 as date1 and date2 when readind nrt 96 96 ; 97 97 ; why two read_ncdf for nrt … … 118 118 ; * rename with lower case TropFlux_swr_BLND_19890101_20091231.pro become 119 119 ; tropflux_swr_blnd.pro 120 ; * taking project_overw ite into account120 ; * taking project_overwrite into account 121 121 ; 122 122 ; - fplod 20110819T120412Z aedon.locean-ipsl.upmc.fr (Darwin) 123 123 ; 124 124 ; * change 19890101 to 19890100 to read 6939 timesteps in DT file 125 ; even if uggly and understanted SAXO strange behaviour125 ; even if uggly and not understood SAXO strange behaviour 126 126 ; 127 127 ; this resolve crash on cratos idl7: … … 137 137 ; for jt=0,jpt-1 do swr_merged(*,*,jt)=swr_dt(*,*,jt)*a(jt)+(1-a(jt))*swr_nrt(*,*,jt) 138 138 ; 139 ; prob lably because6938+731=7669 and not 7670 when139 ; probably because 6938+731=7669 and not 7670 when 140 140 ; :samp:`dt=read_ncdf('swr', 19890101, 20071231, file=fullfilename_dt,/nostr)` 141 141 ; was used : … … 226 226 CASE project_od_env OF 227 227 '' : BEGIN 228 229 230 return, result228 msg = 'eee : ${PROJECT_OD} is not defined' 229 ras = report(msg) 230 return, result 231 231 END 232 ELSE : BEGIN233 234 232 ELSE : BEGIN 233 msg = 'iii : ${PROJECT_OD} is ' + project_od_env 234 ras = report(msg) 235 235 END 236 236 ENDCASE -
trunk/src/tropflux_swr_dt.pro
r203 r204 68 68 ; ==== 69 69 ; 70 ; handl indyyyymmdde > 2007123170 ; handle yyyymmdde > 20071231 71 71 ; 72 72 ; first date 19991231 vs yyyymmddb = 20000101L 73 73 ; 74 ; NaNf values in ou ptut file while 1.e20 in input file !!74 ; NaNf values in output file while 1.e20 in input file !! 75 75 ; 76 76 ; coding rules … … 98 98 ; * rename with lower case TropFlux_swr_DT_19890101_20071231.pro become 99 99 ; tropflux_swr_dt.pro 100 ; * taking project_overw ite into account100 ; * taking project_overwrite into account 101 101 ; * try to add compile_opt seems to be incompatible with ncdf_quickwrite 102 102 ; * start to homogenize time handling and netcdf writing … … 153 153 ; test if ${PROJECT_OD} defined 154 154 CASE project_od_env OF 155 '' : BEGIN156 157 158 return, result159 160 ELSE: BEGIN161 162 163 164 155 '' : BEGIN 156 msg = 'eee : ${PROJECT_OD} is not defined' 157 ras = report(msg) 158 return, result 159 END 160 ELSE : BEGIN 161 msg = 'iii : ${PROJECT_OD} is ' + project_od_env 162 ras = report(msg) 163 END 164 ENDCASE 165 165 ; 166 166 ; check if output data will be possible … … 226 226 ; 227 227 for jt=0,jpt-1 do begin 228 jtt=(time[jt]-julday(1,1,yea[jt])) < 364229 swr=reform(sw_mean[*,*])230 sw_m[*,*,jt]=swr231 sw_bias[*,*,jt]=(((swr-295.4)*18.36/(200.-295.4)) > 0.) < 18.37228 jtt=(time[jt]-julday(1,1,yea[jt])) < 364 229 swr=reform(sw_mean[*,*]) 230 sw_m[*,*,jt]=swr 231 sw_bias[*,*,jt]=(((swr-295.4)*18.36/(200.-295.4)) > 0.) < 18.37 232 232 endfor 233 233 ; … … 255 255 ; 256 256 ncfields = 'swr[longitude,latitude,*time]=swr:sw_attr; ' $ 257 258 259 260 257 + 'longitude[]=lon:lon_attr; ' $ 258 + 'latitude[]=lat:lat_attr; ' $ 259 + 'time[]=timein:time_attr ' $ 260 + ' @ globattr' 261 261 ; 262 262 @ncdf_quickwrite -
trunk/src/tropflux_swr_nrt.pro
r203 r204 7 7 ; .. function:: tropflux_swr_nrt(yyyymmddb,yyyymmdde) 8 8 ; 9 ; DESCRI TION10 ; ========== 9 ; DESCRIPTION 10 ; =========== 11 11 ; 12 12 ; Correction of swr near real time on OAFLUX grid … … 74 74 ; ==== 75 75 ; 76 ; handl indyyyymmdde > 2007123177 ; 78 ; remove NaNf values in ou ptut file (may be not because of this module)79 ; 80 ; why two sequence init cdf et read_ndcf on olr file ?76 ; handle yyyymmdde > 20071231 77 ; 78 ; remove NaNf values in output file (may be not because of this module) 79 ; 80 ; why two sequence initncdf et read_ndcf on olr file ? 81 81 ; 82 82 ; coding rules … … 100 100 ; * rename with lower case TropFlux_swr_NRT_19890101_20091231.pro become 101 101 ; tropflux_swr_nrt.pro 102 ; * taking project_overw ite into account102 ; * taking project_overwrite into account 103 103 ; * try to add compile_opt seems to be incompatible with ncdf_quickwrite 104 104 ; … … 156 156 CASE project_od_env OF 157 157 '' : BEGIN 158 159 160 return, result158 msg = 'eee : ${PROJECT_OD} is not defined' 159 ras = report(msg) 160 return, result 161 161 END 162 ELSE : BEGIN163 164 162 ELSE : BEGIN 163 msg = 'iii : ${PROJECT_OD} is ' + project_od_env 164 ras = report(msg) 165 165 END 166 166 ENDCASE -
trunk/src/tropflux_wind_stress.pro
r203 r204 119 119 lat_attr={units:'degrees_north',long_name:'Latitude'} 120 120 time_attr={units:'days since 1950-01-01 00:00:00',long_name:'Time axis',time_origin:'1950-JAN-01 00:00:00'} 121 globattr={Source:'TropFlux - Momentum Fluxes for the Global Tropics', Methodology:'Praveen Kumar et al., Clim. Dyn 2011', Producer_Agency:'Joint research coll oboration between IPSL, Paris and NIO, India', Time_range:cda0+' - '+cda1, Creation_date:'20110707', Website:'http://www.locean-ipsl.upmc.fr/tropflux/'}121 globattr={Source:'TropFlux - Momentum Fluxes for the Global Tropics', Methodology:'Praveen Kumar et al., Clim. Dyn 2011', Producer_Agency:'Joint research collaboration between IPSL, Paris and NIO, India', Time_range:cda0+' - '+cda1, Creation_date:'20110707', Website:'http://www.locean-ipsl.upmc.fr/tropflux/'} 122 122 tau_attr={units:'N/m2',missing_value:valmask,long_name:'wind stress magnitude',short_name:'tau',axis:'TYX'} 123 123 taux_attr={units:'N/m2',missing_value:valmask,long_name:'zonal wind stress',short_name:'taux',axis:'TYX'} -
trunk/src/ws_correction_ncdf.pro
r203 r204 38 38 ; digraph ws_correction_ncdf { 39 39 ; 40 ; file_in [shape=ellipse,fontname=Courier,label="${PROJECT_OD}/erai_ws_{yyyymmdd}_{yyyymmdd}_oafluxgrid.nc"]; 41 ; file_out [shape=ellipse,fontname=Courier,label="${PROJECT_OD}/TropFlux_ws_{yyyymmdd}_{yyyymmdd}.nc"]; 40 ; file_in [shape=ellipse, 41 ; fontname=Courier, 42 ; label="${PROJECT_OD}/erai_ws_{yyyymmdd}_{yyyymmdd}_oafluxgrid.nc"]; 43 ; file_out [shape=ellipse, 44 ; fontname=Courier, 45 ; label="${PROJECT_OD}/TropFlux_ws_{yyyymmdd}_{yyyymmdd}.nc"]; 42 46 ; 43 47 ; ws_correction_ncdf [shape=box, … … 101 105 ; - fplod 20120322 102 106 ; 103 ; * taking project_overw ite into account107 ; * taking project_overwrite into account 104 108 ; * try to add compile_opt seems to be incompatible with ncdf_quickwrite 105 109 ; * pro -> function … … 155 159 CASE project_od_env OF 156 160 '' : BEGIN 157 158 159 161 msg = 'eee : ${PROJECT_OD} is not defined' 162 ras = report(msg) 163 return, result 160 164 END 161 ELSE : BEGIN162 163 165 ELSE : BEGIN 166 msg = 'iii : ${PROJECT_OD} is ' + project_od_env 167 ras = report(msg) 164 168 END 165 169 ENDCASE 166 170 ; 167 171 ; check if output data will be possible … … 260 264 help, w_ano 261 265 ; 262 ; applying the correction for var yability based on the scatter266 ; applying the correction for variability based on the scatter 263 267 ;w_ano=w_ano*(1/0.897667) ; (2000-2008) 264 268 w_ano=w_ano*(1/0.903587) ; (2000-2009) -
trunk/src/ws_tropflux_1d_to_1m_ncdf.pro
r203 r204 16 16 ; has been produced by ++ 17 17 ; 18 ; Mont ly ++18 ; Monthly ++ 19 19 ; is written in 20 20 ; :file:`${PROJECT_OD}/ws_tropflux_1m_1989_2010.nc` … … 98 98 ; test if ${PROJECT_OD} defined 99 99 CASE project_od_env OF 100 '' : BEGIN101 102 103 STOP104 105 ELSE: BEGIN106 107 108 109 100 '' : BEGIN 101 msg = 'eee : ${PROJECT_OD} is not defined' 102 ras = report(msg) 103 STOP 104 END 105 ELSE : BEGIN 106 msg = 'iii : ${PROJECT_OD} is ' + project_od_env 107 ras = report(msg) 108 END 109 ENDCASE 110 110 ; 111 111 ; check if output data will be possible … … 114 114 ; existence and protection for reading 115 115 IF (FILE_TEST(iodirout, /DIRECTORY, /EXECUTABLE, /READ) EQ 0) THEN BEGIN 116 msg = 'eee : the directory' + iodirout + ' is not accessible.'117 ras = report(msg)118 STOP116 msg = 'eee : the directory' + iodirout + ' is not accessible.' 117 ras = report(msg) 118 STOP 119 119 ENDIF 120 120 ; … … 167 167 for jt=0,jpt-1 do begin 168 168 ; 169 ind=where((m eq mon(jt)) and (y eq yea(jt)))170 wsm(*,*,jt)=total(ws(*,*,ind),3)/n_elements(ind)169 ind=where((m eq mon(jt)) and (y eq yea(jt))) 170 wsm(*,*,jt)=total(ws(*,*,ind),3)/n_elements(ind) 171 171 ; 172 172 endfor … … 191 191 globattr={Source:'TropFlux - Air-Sea Fluxes for the Global Tropics' $ 192 192 , Methodology:'Praveen Kumar et al., Clim. Dyn 2011' $ 193 , Producer_Agency:'Joint research coll oboration between IPSL, Paris and NIO, India' $193 , Producer_Agency:'Joint research collaboration between IPSL, Paris and NIO, India' $ 194 194 , Time_range:cda0+' - '+cda1 $ 195 195 , Creation_date:creation_date $ -
trunk/src/x_site_location.pro
r203 r204 7 7 ; .. function:: x_site_location(site) 8 8 ; 9 ; DESCRI TPION9 ; DESCRIPTION 10 10 ; =========== 11 11 ; -
trunk/src/y_site_location.pro
r203 r204 7 7 ; .. function:: y_site_location(site) 8 8 ; 9 ; DESCRI TPION9 ; DESCRIPTION 10 10 ; =========== 11 11 ; … … 79 79 y=strmid(site, n+1, n1-n-1) 80 80 y=180+(180-float(y)) 81 endelse81 endelse 82 82 endelse 83 83 return,float(y)
Note: See TracChangeset
for help on using the changeset viewer.