Changeset 191 for trunk


Ignore:
Timestamp:
07/04/12 17:52:46 (12 years ago)
Author:
pinsard
Message:

introduce new erai dataset : new terminology and new time unit and origin

Location:
trunk/src
Files:
1 added
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/interp_erai_dewt.pro

    r180 r191  
    55; ==================== 
    66; 
    7 ; .. function:: interp_erai_dewt(yyyymmddb,yyyymmdde) 
     7; .. function:: interp_erai_dewt(yyyymmddb,yyyymmdde, eraitype) 
    88; 
    99; DESCRIPTION 
     
    1212; Interpolation of d2 from ERA-I grid to OAFLUX grid 
    1313; 
     14; If eraitype is set to 1, 
    1415; :file:`${PROJECT_ID}/20c3m_erai_d2_TROP_1989_2009.nc` 
    1516; containing 
     
    1819; :ref:`compute_erai_daily_region_2d.sh`. 
    1920; 
     21; If eraitype is set to 2, 
     22; :file:`${PROJECT_ID}/erai_d2m_{yyyyb}_{yyyye}.nc` 
     23; containing 
     24; d2m from ERA-I 
     25; has been produced by 
     26; :ref:`concat_eraiy.sh`. 
     27; 
    2028; :file:`${PROJECT_ID}/mask_oaflux_30N30S.nc` 
    2129; containing OAFLUX grid 
     
    4351;        digraph interp_erai_dewt { 
    4452; 
    45 ;           file_in [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/20c3m_erai_d2_TROP_1989_2009.nc"]; 
     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"]; 
    4655;           mask [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/mask_oaflux_30N30S.nc"]; 
    4756;           file_out [shape=ellipse,fontname=Courier,label="${PROJECT_OD}/erai_d2m_{yyyymmdd}_{yyyymmdd}_oafluxgrid.nc"]; 
     
    5362;           label="${PROJECT}/src/interp_erai_dewt.pro"]; 
    5463; 
    55 ;           {file_in mask} -> {interp_erai_dewt} -> {file_out} 
     64;           {file_in_erai1 file_in_erai2 mask} -> {interp_erai_dewt} -> {file_out} 
    5665; 
    5766;        } 
     
    6574; 
    6675; :ref:`project_profile.sh` 
     76; 
     77; :ref:`compute_erai_daily_region_2d.sh` 
     78; :ref:`concat_eraiy.sh` 
    6779; 
    6880; :func:`report <saxo:report>` 
     
    8092; ======== 
    8193; 
    82 ; :: 
     94; With ERA-I type 1:: 
    8395; 
    8496;  .compile file_interp 
    8597;  yyyymmddb = 20000101L 
    8698;  yyyymmdde = 20001231L 
    87 ;  result = interp_erai_dewt(yyyymmddb, yyyymmdde) 
     99;  eraitype = 1 
     100;  result = interp_erai_dewt(yyyymmddb, yyyymmdde, eraitype) 
     101;  print, result 
     102; 
     103; With ERA-I type 2:: 
     104; 
     105;  .compile file_interp 
     106;  yyyymmddb = 20000101L 
     107;  yyyymmdde = 20001231L 
     108;  eraitype = 2 
     109;  result = interp_erai_dewt(yyyymmddb, yyyymmdde, eraitype) 
    88110;  print, result 
    89111; 
     
    128150; 
    129151; $URL: svn+ssh://pinsard@forge.ipsl.jussieu.fr/ipsl/forge/projets/tropflux/svn/trunk/src/interp_erai_dewt.pro $ 
     152; 
     153; - fplod 20120704T113504Z cratos (Linux) 
     154; 
     155;   * add eraitype parameter 
     156;   * deal with time units (days vs hours) and time origin 
    130157; 
    131158; - fplod 20120320 
     
    170197function interp_erai_dewt $ 
    171198         , yyyymmddb $ 
    172          , yyyymmdde 
     199         , yyyymmdde $ 
     200         , eraitype 
    173201; 
    174202;++compile_opt idl2, strictarrsubs, logical_predicate 
     
    185213result = -1 
    186214; 
    187 usage = 'result = interp_erai_dewt(yyyymmddb, yyyymmdde)' 
     215usage = 'result = interp_erai_dewt(yyyymmddb, yyyymmdde, eraitype)' 
    188216nparam = N_PARAMS() 
    189 IF (nparam NE 2) THEN BEGIN 
     217IF (nparam NE 3) THEN BEGIN 
    190218   ras = report(['Incorrect number of arguments.' $ 
    191219         + '!C' $ 
     
    232260; 
    233261; build data filename 
    234 filename='20c3m_erai_d2_TROP_1989_2009.nc' 
     262IF eraitype EQ 1 THEN BEGIN 
     263    erai_var = 'd2' 
     264    filename='20c3m_erai_d2_TROP_1989_2009.nc' 
     265    tutoday = 24.d 
     266    tmporig = date2jul(19570101L,month=immo,day=iddo,year=iyyyyo) 
     267endif 
     268IF (eraitype eq 2) THEN BEGIN 
     269    erai_var = 'd2m' 
     270    tmpb = date2jul(yyyymmddb,month=immb,day=iddb,year=iyyyyb) 
     271    tmpe = date2jul(yyyymmdde,month=imme,day=idde,year=iyyyye) 
     272    filename = 'erai_' + erai_var + '_' + string(iyyyyb,format='(I4.4)') + '_' + string(iyyyye,format='(I4.4)') + '.nc' 
     273    tutoday = 1.d 
     274    tmporig = date2jul(19500101L,month=immo,day=iddo,year=iyyyyo) 
     275ENDIF 
    235276; 
    236277; check if this file exists 
     
    283324print, 'lat grid ',min(latin),max(latin),latin[1]-latin[0] 
    284325print, 'lon grid ',min(lonin),max(lonin),lonin[1]-lonin[0] 
    285 d2min=read_ncdf("d2",yyyymmddb-.5d,yyyymmdde,file=fullfilename,/nostr) 
    286 ; 
    287 timein=24.d*(time-julday(1,1,1957,0,0,0)) 
     326d2min=read_ncdf(erai_var,yyyymmddb-.5d,yyyymmdde,file=fullfilename,/nostr) 
     327; 
     328timein=tutoday*(time-julday(immo,iddo,iyyyyo,0,0,0)) 
    288329jptin=n_elements(timein) 
    289330da=jul2date(time[0]) 
  • trunk/src/interp_erai_lwr.pro

    r180 r191  
    66; =================== 
    77; 
    8 ; .. function:: interp_erai_lwr(yyyymmddb,yyyymmdde) 
     8; .. function:: interp_erai_lwr(yyyymmddb,yyyymmdde, eraitype) 
    99; 
    1010; DESCRIPTION 
     
    1313; Interpolation of str from ERA-I grid to OAFLUX grid 
    1414; 
     15; If eraitype is set to 1, 
    1516; :file:`${PROJECT_ID}/20c3m_erai_str_TROP_1989_2009.nc` 
    1617; containing str from ERA-I 
     
    1819; :ref:`compute_erai_daily_region_2d.sh`. 
    1920; 
     21; If eraitype is set to 2, 
     22; :file:`${PROJECT_ID}/erai_t2m_{yyyyb}_{yyyye}.nc` 
     23; containing 
     24; lwr from ERA-I 
     25; has been produced by 
     26; :ref:`concat_eraiy.sh`. 
     27; 
    2028; :file:`${PROJECT_ID}/mask_oaflux_30N30S.nc` 
    2129; containing OAFLUX mask 
     
    4351;        digraph interp_erai_lwr { 
    4452; 
    45 ;           file_in [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/20c3m_erai_str_TROP_1989_2009.nc"]; 
     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"]; 
    4655;           mask [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/mask_oaflux_30N30S.nc"]; 
    4756;           file_out [shape=ellipse,fontname=Courier,label="${PROJECT_OD}/erai_lwr_{yyyymmdd}_{yyyymmdd}_oafluxgrid.nc"]; 
     
    5362;           label="${PROJECT}/src/interp_erai_lwr.pro"]; 
    5463; 
    55 ;           {file_in mask} -> {interp_erai_lwr} -> {file_out} 
     64;           {file_in_erai1 file_in_erai2 mask} -> {interp_erai_lwr} -> {file_out} 
    5665; 
    5766;        } 
     
    6574; 
    6675; :ref:`project_profile.sh` 
     76; 
     77; :ref:`compute_erai_daily_region_2d.sh` 
     78; :ref:`concat_eraiy.sh` 
    6779; 
    6880; :func:`report <saxo:report>` 
     
    8092; ======== 
    8193; 
    82 ; :: 
     94; With ERA-I type 1:: 
    8395; 
    8496;  .compile file_interp 
     97;  eraitype = 1 
    8598;  yyyymmddb = 20000101L 
    8699;  yyyymmdde = 20001231L 
    87 ;  result = interp_erai_lwr(yyyymmddb, yyyymmdde) 
     100;  result = interp_erai_lwr(yyyymmddb, yyyymmdde, eraitype) 
     101;  print, result 
     102; 
     103; With ERA-I type 2:: 
     104; 
     105;  .compile file_interp 
     106;  eraitype = 2 
     107;  yyyymmddb = 20000101L 
     108;  yyyymmdde = 20001231L 
     109;  result = interp_erai_lwr(yyyymmddb, yyyymmdde, eraitype) 
    88110;  print, result 
    89111; 
     
    131153; $URL: svn+ssh://pinsard@forge.ipsl.jussieu.fr/ipsl/forge/projets/tropflux/svn/trunk/src/interp_erai_lwr.pro $ 
    132154; 
     155; - fplod 20120704T113504Z cratos (Linux) 
     156; 
     157;   * add eraitype parameter 
     158;   * deal with time units (days vs hours) and time origin 
     159; 
    133160; - fplod 20120320 
    134161; 
     
    195222function interp_erai_lwr $ 
    196223         , yyyymmddb $ 
    197          , yyyymmdde 
     224         , yyyymmdde $ 
     225         , eraitype 
    198226; 
    199227;++compile_opt idl2, strictarrsubs, logical_predicate 
     
    210238result = -1 
    211239; 
    212 usage = 'result = interp_erai_lwr(yyyymmddb, yyyymmdde)' 
     240usage = 'result = interp_erai_lwr(yyyymmddb, yyyymmdde, eraitype)' 
    213241nparam = N_PARAMS() 
    214 IF (nparam NE 2) THEN BEGIN 
     242IF (nparam NE 3) THEN BEGIN 
    215243   ras = report(['Incorrect number of arguments.' $ 
    216244         + '!C' $ 
     
    260288; 
    261289; build data filename 
    262 filename='20c3m_erai_str_TROP_1989_2009.nc' 
     290IF eraitype EQ 1 THEN BEGIN 
     291    erai_var = 'str' 
     292    filename='20c3m_erai_str_TROP_1989_2009.nc' 
     293    tutoday = 24.d 
     294    tmporig = date2jul(19570101L,month=immo,day=iddo,year=iyyyyo) 
     295endif 
     296IF (eraitype eq 2) THEN BEGIN 
     297    erai_var = 'lwr' 
     298    tmpb = date2jul(yyyymmddb,month=immb,day=iddb,year=iyyyyb) 
     299    tmpe = date2jul(yyyymmdde,month=imme,day=idde,year=iyyyye) 
     300    filename = 'erai_' + erai_var + '_' + string(iyyyyb,format='(I4.4)') + '_' + string(iyyyye,format='(I4.4)') + '.nc' 
     301    tutoday = 1.d 
     302    tmporig = date2jul(19500101L,month=immo,day=iddo,year=iyyyyo) 
     303ENDIF 
    263304; 
    264305; check if this file exists 
     
    306347; 
    307348initncdf, fullfilename 
    308 lwrin=read_ncdf("str",yyyymmddb-.5d,yyyymmdde,file=fullfilename,/nostr) 
     349lwrin=read_ncdf(erai_var,yyyymmddb-.5d,yyyymmdde,file=fullfilename,/nostr) 
    309350lwrin=-1*lwrin 
    310 timein=24.d*(time-julday(1,1,1957,0,0,0)) 
     351timein=tutoday*(time-julday(immo,iddo,iyyyyo,0,0,0)) 
    311352jptin=n_elements(timein) 
    312353da=jul2date(time[0]) 
  • trunk/src/interp_erai_msl.pro

    r180 r191  
    55; =================== 
    66; 
    7 ; .. function:: interp_erai_msl(yyyymmddb,yyyymmdde) 
     7; .. function:: interp_erai_msl(yyyymmddb,yyyymmdde, eraitype) 
    88; 
    99; DESCRIPTION 
     
    1212; Interpolation of msl from ERA-I grid to OAFLUX grid 
    1313; 
     14; If eraitype is set to 1, 
    1415; :file:`${PROJECT_ID}/20c3m_erai_msl_TROP_1989_2009.nc` 
    1516; containing 
     
    1819; :ref:`compute_erai_daily_region_2d.sh`. 
    1920; 
     21; If eraitype is set to 2, 
     22; :file:`${PROJECT_ID}/erai_msl_{yyyyb}_{yyyye}.nc` 
     23; containing 
     24; msl from ERA-I 
     25; has been produced by 
     26; :ref:`concat_eraiy.sh`. 
     27; 
    2028; :file:`${PROJECT_ID}/mask_oaflux_30N30S.nc` 
    2129; containing 
     
    4452;        digraph interp_erai_msl { 
    4553; 
    46 ;           file_in [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/20c3m_erai_msl_TROP_1989_2009.nc"]; 
     54;           file_in_erai1 [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/20c3m_erai_msl_TROP_1989_2009.nc"]; 
     55;           file_in_erai2 [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/erai_msl_{yyyyb}_{yyyye}.nc"]; 
    4756;           mask [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/mask_oaflux_30N30S.nc"]; 
    4857;           file_out [shape=ellipse,fontname=Courier,label="${PROJECT_OD}/erai_msl_{yyyymmdd}_{yyyymmdd}_oafluxgrid.nc"]; 
     
    5463;           label="${PROJECT}/src/interp_erai_msl.pro"]; 
    5564; 
    56 ;           {file_in mask} -> {interp_erai_msl} -> {file_out} 
     65;           {file_in_erai1 file_in_erai2 mask} -> {interp_erai_msl} -> {file_out} 
    5766; 
    5867;        } 
     
    6675; 
    6776; Used by :ref:`tropflux.sh` 
     77; 
     78; :ref:`compute_erai_daily_region_2d.sh` 
     79; :ref:`concat_eraiy.sh` 
    6880; 
    6981; :func:`report <saxo:report>` 
     
    8193; ======== 
    8294; 
    83 ; :: 
     95; With ERA-I type 1:: 
    8496; 
    8597;  .compile file_interp 
    8698;  yyyymmddb = 20000101L 
    8799;  yyyymmdde = 20001231L 
    88 ;  result = interp_erai_msl(yyyymmddb, yyyymmdde) 
     100;  eraitype = 1 
     101;  result = interp_erai_msl(yyyymmddb, yyyymmdde, eraitype) 
     102;  print, result 
     103; 
     104; With ERA-I type 2:: 
     105; 
     106;  .compile file_interp 
     107;  yyyymmddb = 20000101L 
     108;  yyyymmdde = 20001231L 
     109;  eraitype = 2 
     110;  result = interp_erai_msl(yyyymmddb, yyyymmdde, eraitype) 
    89111;  print, result 
    90112; 
     
    92114; ==== 
    93115; 
    94 ; use real output of :ref:`compute_erai_daily_region_2d.sh` 
     116; use real output of :ref:`compute_erai_daily_region_2d.sh` if eraitype is set to 1 
    95117; 
    96118; get_erai.py + grib to netcdf conversion 
     
    116138; 
    117139; $URL$ 
     140; 
     141; - fplod 20120704T113504Z cratos (Linux) 
     142; 
     143;   * add eraitype parameter 
     144;   * conversion mPa to hPa 
     145;   * deal with time units (days vs hours) and time origin 
    118146; 
    119147; - fplod 20120320 
     
    150178function interp_erai_msl $ 
    151179         , yyyymmddb $ 
    152          , yyyymmdde 
     180         , yyyymmdde $ 
     181         , eraitype 
    153182; 
    154183;++compile_opt idl2, strictarrsubs, logical_predicate 
     
    165194result = -1 
    166195; 
    167 usage = 'result = interp_erai_msl(yyyymmddb, yyyymmdde)' 
     196usage = 'result = interp_erai_msl(yyyymmddb, yyyymmdde, eraitype)' 
    168197nparam = N_PARAMS() 
    169 IF (nparam NE 2) THEN BEGIN 
     198IF (nparam NE 3) THEN BEGIN 
    170199   ras = report(['Incorrect number of arguments.' $ 
    171200   + '!C' $ 
     
    212241; 
    213242; build data filename 
    214 filename='20c3m_erai_msl_TROP_1989_2009.nc' 
     243IF eraitype EQ 1 THEN BEGIN 
     244    erai_var = 'msl' 
     245    filename='20c3m_erai_msl_TROP_1989_2009.nc' 
     246    tutoday = 24.d 
     247    tmporig = date2jul(19570101L,month=immo,day=iddo,year=iyyyyo) 
     248endif 
     249IF (eraitype eq 2) THEN BEGIN 
     250    erai_var = 'msl' 
     251    tmpb = date2jul(yyyymmddb,month=immb,day=iddb,year=iyyyyb) 
     252    tmpe = date2jul(yyyymmdde,month=imme,day=idde,year=iyyyye) 
     253    filename = 'erai_' + erai_var + '_' + string(iyyyyb,format='(I4.4)') + '_' + string(iyyyye,format='(I4.4)') + '.nc' 
     254    tutoday = 1.d 
     255    tmporig = date2jul(19500101L,month=immo,day=iddo,year=iyyyyo) 
     256ENDIF 
    215257; 
    216258; check if this file exists 
     
    222264   ras = report(msg) 
    223265   return, result 
    224 ENDIF 
     266ENDIF ELSE BEGIN 
     267   msg = 'iii : the file ' + fullfilename + ' found.' 
     268   ras = report(msg) 
     269ENDELSE 
    225270; 
    226271; test if ${PROJECT_OD} defined 
     
    263308print, 'lat grid ',min(latin),max(latin),latin[1]-latin[0] 
    264309print, 'lon grid ',min(lonin),max(lonin),lonin[1]-lonin[0] 
    265 ;++mslin=read_ncdf("msl",yyyymmddb-.5d,yyymmdde,file=fullfilename,/nostr) 
    266 mslin=read_ncdf("msl",19880101,20100930,file=fullfilename,/nostr) 
    267 ; 
    268 timein=24.d*(time-julday(1,1,1957,0,0,0)) 
     310mslin=read_ncdf(erai_var,yyyymmddb,yyyymmdde,file=fullfilename,/nostr) 
     311; 
     312help, time 
     313timein=tutoday*(time-julday(immo,iddo,iyyyyo,0,0,0)) 
    269314jptin=n_elements(timein) 
    270315da=jul2date(time[0]) 
     
    287332; 
    288333; conversion to hPa 
    289 ncdf_getatt, fullfilename, 'msl', units=units 
     334ncdf_getatt, fullfilename, erai_var, units=units 
    290335CASE units OF 
    291336    'Pascal': BEGIN 
    292337        mslin=mslin/100 
     338    END 
     339    'mPa': BEGIN 
     340        mslin=mslin*10 
    293341    END 
    294342    ELSE: BEGIN 
  • trunk/src/interp_erai_sst.pro

    r180 r191  
    66; =================== 
    77; 
    8 ; .. function:: interp_erai_sst(yyyymmddb,yyyymmdde) 
     8; .. function:: interp_erai_sst(yyyymmddb,yyyymmdde, eraitype) 
    99; 
    1010; DESCRIPTION 
     
    1313; Interpolation of sst from ERA-I grid to OAFLUX grid 
    1414; 
     15; If eraitype is set to 1, 
    1516; :file:`${PROJECT_ID}/20c3m_erai_sstk_TROP_1989_2009.nc` 
    1617; containing sst from ERA-I 
    1718; has been produced by 
    1819; :ref:`compute_erai_daily_region_2d.sh`. 
     20; 
     21; If eraitype is set to 2, 
     22; :file:`${PROJECT_ID}/erai_sst_{yyyyb}_{yyyye}.nc` 
     23; containing sst from ERA-I 
     24; has been produced by 
     25; :ref:`concat_eraiy.sh`. 
    1926; 
    2027; :file:`${PROJECT_ID}/mask_oaflux_30N30S.nc` 
     
    4451;        digraph interp_erai_sst { 
    4552; 
    46 ;           file_in [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/20c3m_erai_sstk_TROP_1989_2009.nc"]; 
     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"]; 
    4755;           mask [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/mask_oaflux_30N30S.nc"]; 
    4856;           file_out [shape=ellipse,fontname=Courier,label="${PROJECT_OD}/erai_sst_{yyyymmdd}_{yyyymmdd}_oafluxgrid.nc"]; 
     
    5462;           label="${PROJECT}/src/interp_erai_sst.pro"]; 
    5563; 
    56 ;           {file_in mask} -> {interp_erai_sst} -> {file_out} 
     64;           {file_in_erai1 file_in_erai2 mask} -> {interp_erai_sst} -> {file_out} 
    5765; 
    5866;        } 
     
    6674; 
    6775; :ref:`project_profile.sh` 
     76; 
     77; :ref:`compute_erai_daily_region_2d.sh` 
     78; :ref:`concat_eraiy.sh` 
    6879; 
    6980; :func:`report <saxo:report>` 
     
    8192; ======== 
    8293; 
    83 ; :: 
     94; With ERA-I type 1:: 
    8495; 
    8596;  .compile file_interp 
    8697;  yyyymmddb = 20000101L 
    8798;  yyyymmdde = 20001231L 
    88 ;  result = interp_erai_sst(yyyymmddb, yyyymmdde) 
     99;  eraitype = 1 
     100;  result = interp_erai_sst(yyyymmddb, yyyymmdde, eraitype) 
    89101;  print, result 
    90102; 
     103; With ERA-I type 2:: 
     104; 
     105;  .compile file_interp 
     106;  yyyymmddb = 20000101L 
     107;  yyyymmdde = 20001231L 
     108;  eraitype = 2 
     109;  result = interp_erai_sst(yyyymmddb, yyyymmdde, eraitype) 
    91110; 
    92111; TODO 
     
    99118; coding rules 
    100119; 
    101 ; use real output of :ref:`compute_erai_daily_region_2d.sh`. 
     120; use real output of :ref:`compute_erai_daily_region_2d.sh` if eraitype is set to 1. 
    102121; 
    103122; scientific validation (strange look of data with ncview now) 
     
    121140; 
    122141; $URL: svn+ssh://pinsard@forge.ipsl.jussieu.fr/ipsl/forge/projets/tropflux/svn/trunk/src/interp_erai_sst.pro $ 
     142; 
     143; - fplod 20120704T113504Z cratos (Linux) 
     144; 
     145;   * add eraitype parameter 
     146;   * deal with time units (days vs hours) and time origin 
    123147; 
    124148; - fplod 20120320 
     
    160184function interp_erai_sst $ 
    161185         , yyyymmddb $ 
    162          , yyyymmdde 
     186         , yyyymmdde $ 
     187         , eraitype 
    163188; 
    164189;++compile_opt idl2, strictarrsubs, logical_predicate 
     
    175200result = -1 
    176201; 
    177 usage = 'result = interp_erai_lwr(yyyymmddb, yyyymmdde)' 
     202usage = 'result = interp_erai_lwr(yyyymmddb, yyyymmdde, eraitype)' 
    178203nparam = N_PARAMS() 
    179 IF (nparam NE 2) THEN BEGIN 
     204IF (nparam NE 3) THEN BEGIN 
    180205   ras = report(['Incorrect number of arguments.' $ 
    181206   + '!C' $ 
     
    222247; 
    223248; build data filename 
    224 filename='20c3m_erai_sstk_TROP_1989_2009.nc' 
     249IF eraitype EQ 1 THEN BEGIN 
     250    erai_var = 'sstk' 
     251    filename='20c3m_erai_sstk_TROP_1989_2009.nc' 
     252    tutoday = 24.d 
     253    tmporig = date2jul(19570101L,month=immo,day=iddo,year=iyyyyo) 
     254endif 
     255IF (eraitype eq 2) THEN BEGIN 
     256    erai_var = 'sst' 
     257    tmpb = date2jul(yyyymmddb,month=immb,day=iddb,year=iyyyyb) 
     258    tmpe = date2jul(yyyymmdde,month=imme,day=idde,year=iyyyye) 
     259    filename = 'erai_' + erai_var + '_' + string(iyyyyb,format='(I4.4)') + '_' + string(iyyyye,format='(I4.4)') + '.nc' 
     260    tutoday = 1.d 
     261    tmporig = date2jul(19500101L,month=immo,day=iddo,year=iyyyyo) 
     262ENDIF 
    225263; 
    226264; check if this file exists 
     
    273311print, 'lat grid ',min(latin),max(latin),latin[1]-latin[0] 
    274312print, 'lon grid ',min(lonin),max(lonin),lonin[1]-lonin[0] 
    275 sstkin=read_ncdf("sstk",yyyymmddb-.5d,yyyymmdde,file=fullfilename,/nostr) 
    276 ; 
    277 timein=24.d*(time-julday(1,1,1957,0,0,0)) 
     313sstkin=read_ncdf(erai_var,yyyymmddb-.5d,yyyymmdde,file=fullfilename,/nostr) 
     314; 
     315timein=tutoday*(time-julday(immo,iddo,iyyyyo,0,0,0)) 
    278316jptin=n_elements(timein) 
    279317da=jul2date(time[0]) 
  • trunk/src/interp_erai_t2m.pro

    r180 r191  
    55; =================== 
    66; 
    7 ; .. function:: interp_erai_t2m(yyyymmddb,yyyymmdde) 
     7; .. function:: interp_erai_t2m(yyyymmddb,yyyymmdde, eraitype) 
    88; 
    99; DESCRIPTION 
     
    1212; Interpolation of t2 from ERA-I grid to OAFLUX grid 
    1313; 
     14; If eraitype is set to 1, 
    1415; :file:`${PROJECT_ID}/20c3m_erai_t2_TROP_1989_2009.nc` 
    1516; containing 
     
    1819; :ref:`compute_erai_daily_region_2d.sh`. 
    1920; 
     21; If eraitype is set to 2, 
     22; :file:`${PROJECT_ID}/erai_t2m_{yyyyb}_{yyyye}.nc` 
     23; containing 
     24; t2m from ERA-I 
     25; has been produced by 
     26; :ref:`concat_eraiy.sh`. 
     27; 
    2028; :file:`${PROJECT_ID}/mask_oaflux_30N30S.nc` 
    2129; containing OAFLUX grid 
     
    4351;        digraph interp_erai_t2m { 
    4452; 
    45 ;           file_in [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/20c3m_erai_t2_TROP_1989_2009.nc"]; 
     53;           file_in_erai1 [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/20c3m_erai_t2_TROP_1989_2009.nc"]; 
     54;           file_in_erai2 [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/erai_t2m_{yyyyb}_{yyyye}.nc"]; 
    4655;           mask [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/mask_oaflux_30N30S.nc"]; 
    4756;           file_out [shape=ellipse,fontname=Courier,label="${PROJECT_OD}/erai_t2m_{yyyymmdd}_{yyyymmdd}_oafluxgrid.nc"]; 
     
    5362;           label="${PROJECT}/src/interp_erai_t2m.pro"]; 
    5463; 
    55 ;           {file_in mask} -> {interp_erai_t2m} -> {file_out} 
     64;           {file_in_erai1 file_in_erai2 mask} -> {interp_erai_t2m} -> {file_out} 
    5665; 
    5766;        } 
     
    6776; 
    6877; :ref:`compute_erai_daily_region_2d.sh` 
     78; :ref:`concat_eraiy.sh` 
    6979; 
    7080; :func:`oaflux_mask_30n30s` 
     
    8696; ======== 
    8797; 
    88 ; :: 
     98; With ERA-I type 1:: 
    8999; 
    90100;  .compile file_interp 
    91101;  yyyymmddb = 20000101L 
    92102;  yyyymmdde = 20001231L 
    93 ;  result = interp_erai_t2m(yyyymmddb, yyyymmdde) 
     103;  eraitype = 1 
     104;  result = interp_erai_t2m(yyyymmddb, yyyymmdde, eraitype) 
     105;  print, result 
     106; 
     107; With ERA-I type 2:: 
     108; 
     109;  .compile file_interp 
     110;  yyyymmddb = 20000101L 
     111;  yyyymmdde = 20001231L 
     112;  eraitype = 2 
     113;  result = interp_erai_t2m(yyyymmddb, yyyymmdde, eraitype) 
    94114;  print, result 
    95115; 
     
    167187; $URL: svn+ssh://pinsard@forge.ipsl.jussieu.fr/ipsl/forge/projets/tropflux/svn/trunk/src/interp_erai_t2m.pro $ 
    168188; 
     189; - fplod 20120704T113504Z cratos (Linux) 
     190; 
     191;   * add eraitype parameter 
     192;   * deal with time units (days vs hours) and time origin 
     193; 
    169194; - fplod 20120319 
    170195; 
     
    239264function interp_erai_t2m $ 
    240265         , yyyymmddb $ 
    241          , yyyymmdde 
     266         , yyyymmdde $ 
     267         , eraitype 
    242268; 
    243269;++compile_opt idl2, strictarrsubs, logical_predicate 
     
    254280result = -1 
    255281; 
    256 usage = 'result = interp_erai_t2m(yyyymmddb, yyyymmdde)' 
     282usage = 'result = interp_erai_t2m(yyyymmddb, yyyymmdde, eraitype)' 
    257283nparam = N_PARAMS() 
    258 IF (nparam NE 2) THEN BEGIN 
     284IF (nparam NE 3) THEN BEGIN 
    259285   ras = report(['Incorrect number of arguments.' $ 
    260286         + '!C' $ 
     
    301327; 
    302328; build t2 filename 
    303 filename_t2='20c3m_erai_t2_TROP_1989_2009.nc' 
     329IF eraitype EQ 1 THEN BEGIN 
     330    erai_var = 't2' 
     331    filename_t2 = '20c3m_erai_t2_TROP_1989_2009.nc' 
     332    tutoday = 24.d 
     333    tmporig = date2jul(19570101L,month=immo,day=iddo,year=iyyyyo) 
     334endif 
     335IF (eraitype eq 2) THEN BEGIN 
     336    erai_var = 't2m' 
     337    tmpb = date2jul(yyyymmddb,month=immb,day=iddb,year=iyyyyb) 
     338    tmpe = date2jul(yyyymmdde,month=imme,day=idde,year=iyyyye) 
     339    filename_t2 = 'erai_' + erai_var + '_' + string(iyyyyb,format='(I4.4)') + '_' + string(iyyyye,format='(I4.4)') + '.nc' 
     340    tutoday = 1.d 
     341    tmporig = date2jul(19500101L,month=immo,day=iddo,year=iyyyyo) 
     342ENDIF 
    304343; 
    305344; check if this file exists 
     
    376415;++print, 'The first 10 time values (variable time) = ', time[0:9] 
    377416;++print, 'time steps after read_ncdf (variable jpt) ', jpt 
    378 ;t2min=ncdf_lec(fullfilename_t2,var='t2') 
     417;t2min=ncdf_lec(fullfilename_t2,var=erai_var) 
    379418 
    380 t2min=read_ncdf('t2',yyyymmddb-.5d,yyyymmdde,file=fullfilename_t2,/nost) 
     419t2min=read_ncdf(erai_var,yyyymmddb-.5d,yyyymmdde,file=fullfilename_t2,/nost) 
    381420;; time:units = "hours since 1957-01-01 00:00:0.0" ; 
    382 timein=24.d*(time-julday(1,1,1957,0,0,0)) 
     421timein=tutoday*(time-julday(immo,iddo,iyyyyo,0,0,0)) 
    383422jptin=n_elements(timein) 
    384423da=jul2date(time[0]) 
     
    408447  tab=reform(t2min[*,*,jt]) 
    409448  t2mout[*,*,jt]=call_interp2d(tab,lonin,latin,mskin $ 
    410       , lonout,latout,method='bilinear' $ 
     449      , lonout,latout,method="bilinear" $ 
    411450      , OUTMASK_IND=mskout, SET_OUTMSKVAL=mskout) 
    412451  t2mout[*,*,jt]=t2mout[*,*,jt]*mskout+(1.-mskout)*1.e20 
     
    428467time_attr={units:units, long_name:long_name, time_origin:' 1957-JAN-01 00:00:00'} 
    429468globattr={source:'Data are from ECMWF ERA-Interim reanalysis', timerange:cda0+' - '+cda1} 
    430 ncdf_getatt, fullfilename_t2, 't2', units=units 
    431 ncdf_getatt, fullfilename_t2, 't2', long_name=long_name 
     469ncdf_getatt, fullfilename_t2, erai_var, units=units 
     470ncdf_getatt, fullfilename_t2, erai_var, long_name=long_name 
    432471t2m_attr={units:units, long_name:long_name, missing_value:1e20, short_name:'t2m',axis:'TYX'} 
    433472; 
  • trunk/src/interp_erai_ws.pro

    r180 r191  
    66; ================== 
    77; 
    8 ; .. function:: interp_erai_ws(yyyymmddb,yyyymmdde) 
     8; .. function:: interp_erai_ws(yyyymmddb,yyyymmdde, eraitype) 
    99; 
    1010; DESCRIPTION 
     
    1313; Interpolation of u10 and v10 from ERA-I grid to OAFLUX grid 
    1414; 
     15; If eraitype is set to 1, 
    1516; :file:`${PROJECT_ID}/20c3m_erai_u10_TROP_1989_2009.nc` 
    1617; containing 
     
    1920; :ref:`compute_erai_daily_region_2d.sh`. 
    2021; 
     22; If eraitype is set to 1, 
    2123; :file:`${PROJECT_ID}/20c3m_erai_v10_TROP_1989_2009.nc` 
    2224; containing 
     
    2527; :ref:`compute_erai_daily_region_2d.sh`. 
    2628; 
     29; If eraitype is set to 2, 
     30; :file:`${PROJECT_ID}/erai_u10_{yyyyb}_{yyyye}.nc` 
     31; containing 
     32; u10 from ERA-I 
     33; has been produced by 
     34; :ref:`concat_eraiy.sh`. 
     35; 
     36; If eraitype is set to 2, 
     37; :file:`${PROJECT_ID}/erai_v10_{yyyyb}_{yyyye}.nc` 
     38; containing 
     39; v10 from ERA-I 
     40; has been produced by 
     41; :ref:`concat_eraiy.sh`. 
     42; 
    2743; :file:`${PROJECT_ID}/mask_oaflux_30N30S.nc` 
    2844; containing OAFLUX grid 
     
    4965;        digraph interp_erai_ws { 
    5066; 
    51 ;           file_u10 [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/20c3m_erai_u10_TROP_1989_2009.nc"]; 
    52 ;           file_v10 [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/20c3m_erai_v10_TROP_1989_2009.nc"]; 
     67;           file_u10_erai1 [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/20c3m_erai_u10_TROP_1989_2009.nc"]; 
     68;           file_v10_erai1 [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/20c3m_erai_v10_TROP_1989_2009.nc"]; 
     69;           file_u10_erai2 [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/erai_u10_{yyyyb}_{yyyye}.nc"]; 
     70;           file_v10_erai2 [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/erai_v10_{yyyyb}_{yyyye}.nc"]; 
    5371;           mask [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/mask_oaflux_30N30S.nc"]; 
    5472;           file_out [shape=ellipse,fontname=Courier,label="${PROJECT_OD}/erai_ws_19890101_20091231_oafluxgrid.nc"]; 
     
    6078;           label="${PROJECT}/src/interp_erai_ws.pro"]; 
    6179; 
    62 ;           {file_u10 file_v10 mask} -> {interp_erai_ws} -> {file_out} 
     80;           {file_u10_erai1 file_v10_erai1 file_u10_erai2 file_v10_erai2 mask} -> {interp_erai_ws} -> {file_out} 
    6381; 
    6482;        } 
     
    7290; 
    7391; Used by :ref:`tropflux.sh` 
     92; 
     93; :ref:`compute_erai_daily_region_2d.sh` 
     94; :ref:`concat_eraiy.sh` 
    7495; 
    7596; :func:`report <saxo:report>` 
     
    87108; ======== 
    88109; 
    89 ; :: 
     110; With ERA-I type 1:: 
    90111; 
    91112;  .compile file_interp 
    92113;  yyyymmddb = 20000101L 
    93114;  yyyymmdde = 20001231L 
    94 ;  result = interp_erai_ws(yyyymmddb, yyyymmdde) 
     115;  eraitype = 1 
     116;  result = interp_erai_ws(yyyymmddb, yyyymmdde, eraitype) 
    95117;  print, result 
     118; 
     119; With ERA-I type 2:: 
     120; 
     121;  .compile file_interp 
     122;  yyyymmddb = 20000101L 
     123;  yyyymmdde = 20001231L 
     124;  eraitype = 2 
     125;  result = interp_erai_ws(yyyymmddb, yyyymmdde, eraitype) 
    96126; 
    97127; TODO 
     
    153183; $URL: svn+ssh://pinsard@forge.ipsl.jussieu.fr/ipsl/forge/projets/tropflux/svn/trunk/src/interp_erai_ws.pro $ 
    154184; 
     185; - fplod 20120704T113504Z cratos (Linux) 
     186; 
     187;   * add eraitype parameter 
     188;   * deal with time units (days vs hours) and time origin 
     189; 
    155190; - fplod 20120320 
    156191; 
     
    196231function interp_erai_ws $ 
    197232         , yyyymmddb $ 
    198          , yyyymmdde 
     233         , yyyymmdde $ 
     234         , eraitype 
    199235; 
    200236;++compile_opt idl2, strictarrsubs, logical_predicate 
     
    205241result = -1 
    206242; 
    207 usage = 'result = interp_erai_lwr(yyyymmddb, yyyymmdde)' 
     243usage = 'result = interp_erai_lwr(yyyymmddb, yyyymmdde, eraitype)' 
    208244nparam = N_PARAMS() 
    209 IF (nparam NE 2) THEN BEGIN 
     245IF (nparam NE 3) THEN BEGIN 
    210246ras = report(['Incorrect number of arguments.' $ 
    211247      + '!C' $ 
     
    258294; 
    259295; build u10 data filename 
    260 filename='20c3m_erai_u10_TROP_1989_2009.nc' 
     296IF eraitype EQ 1 THEN BEGIN 
     297    erai_var = 'u10' 
     298    filename='20c3m_erai_u10_TROP_1989_2009.nc' 
     299    tutoday = 24.d 
     300    tmporig = date2jul(19570101L,month=immo,day=iddo,year=iyyyyo) 
     301endif 
     302IF (eraitype eq 2) THEN BEGIN 
     303    erai_var = 'u10' 
     304    tmpb = date2jul(yyyymmddb,month=immb,day=iddb,year=iyyyyb) 
     305    tmpe = date2jul(yyyymmdde,month=imme,day=idde,year=iyyyye) 
     306    filename = 'erai_' + erai_var + '_' + string(iyyyyb,format='(I4.4)') + '_' + string(iyyyye,format='(I4.4)') + '.nc' 
     307    tutoday = 1.d 
     308    tmporig = date2jul(19500101L,month=immo,day=iddo,year=iyyyyo) 
     309ENDIF 
    261310; 
    262311; check if this file exists 
     
    304353; 
    305354initncdf, fullfilename 
    306 u10in=read_ncdf("u10", yyyymmddb - .5d, yyyymmdde, file=fullfilename,/nostr) 
    307 ; 
    308 timein=24.d*(time-julday(1,1,1957,0,0,0)) 
     355u10in=read_ncdf(erai_var, yyyymmddb - .5d, yyyymmdde, file=fullfilename,/nostr) 
     356; 
     357timein=tutoday*(time-julday(immo,iddo,iyyyyo,0,0,0)) 
    309358jpt=n_elements(timein) 
    310359da=jul2date(time[0]) 
     
    316365; 
    317366; build v10 data filename 
    318 filename='20c3m_erai_v10_TROP_1989_2009.nc' 
     367IF eraitype EQ 1 THEN BEGIN 
     368    erai_var = 'v10' 
     369    filename='20c3m_erai_v10_TROP_1989_2009.nc' 
     370endif 
     371IF (eraitype eq 2) THEN BEGIN 
     372    erai_var = 'v10' 
     373    tmpb = date2jul(yyyymmddb,month=immb,day=iddb,year=iyyyyb) 
     374    tmpe = date2jul(yyyymmdde,month=imme,day=idde,year=iyyyye) 
     375    filename = 'erai_' + erai_var + '_' + string(iyyyyb,format='(I4.4)') + '_' + string(iyyyye,format='(I4.4)') + '.nc' 
     376ENDIF 
    319377; 
    320378; check if this file exists 
     
    328386ENDIF 
    329387initncdf, fullfilename 
    330 v10in=read_ncdf("v10", yyyymmddb - .5d, yyyymmdde, file=fullfilename,/nostr) 
     388v10in=read_ncdf(erai_var, yyyymmddb - .5d, yyyymmdde, file=fullfilename,/nostr) 
    331389; 
    332390initncdf, fullfilename 
     
    337395print, 'lon grid ',min(lonin),max(lonin),lonin[1]-lonin[0] 
    338396; 
    339 timein=24.d*(time-julday(1,1,1957,0,0,0)) 
     397timein=tutoday*(time-julday(immo,iddo,iyyyyo,0,0,0)) 
    340398jptin=n_elements(timein) 
    341399da=jul2date(time[0]) 
  • trunk/src/tropflux.sh

    r188 r191  
    1515# :: 
    1616# 
    17 #  $ tropflux.sh -b yyyymmdd -e yyyymmdd 
     17#  $ tropflux.sh [-f] -b yyyymmdd -e yyyymmdd 
    1818# 
    1919# DESCRIPTION 
     
    2626# .. option:: -b beginning date <yyyymmdd> 
    2727# .. option:: -e end date <yyyymmdd> 
     28# .. option:: -f to overwrite existing files 
    2829# 
    2930# Some IDL programs are launched here using ${IDL_CMD} command 
     
    8990# 
    9091# Use : 
     92# :ref:`concat_eraiy.sh`, 
    9193# :func:`oaflux_mask_30n30s`, :func:`interp_erai_t2m`, 
    9294# :func:`interp_erai_msl`, :func:`interp_erai_dewt`, :func:`interp_erai_lwr`, 
     
    9698# :func:`t2m_correction_ncdf`, :func:`ws_correction_ncdf`, 
    9799# :func:`tropflux_swr_dt`, :func:`tropflux_swr_nrt`, :func:`tropflux_swr_blnd`, 
    98 # :func:`tropflux_nrt_cdf`,:func:`tropflux_wind_stress` 
     100# :func:`tropflux_nrt_ncdf`,:func:`tropflux_wind_stress` 
    99101# etc. 
    100102# 
     
    108110# make it work 
    109111# 
    110 # if yyyymmdd < 20071231, is it meaningfull to call all the fucntions ? 
     112# if yyyymmdd < 20071231, is it meaningfull to call all the functions ? 
    111113# 
    112114# idl status = 0 even if not ok 
     
    120122# 
    121123# $URL$ 
     124# 
     125# - fplod 20120704T123711Z cratos (Linux) 
     126# 
     127#   * typo 
     128#   * add usage of concat_eraiy.sh 
     129#   * really implement -f option 
    122130# 
    123131# - pinsard 20120329 
     
    210218# default 
    211219debug=0 
     220force=0 
    212221yyyymmddb=20000101 
    213222yyyymmdde=20000302 
     
    234243        yyyymmdde=${2} 
    235244        shift 
     245     ;; 
     246     -f) 
     247        force=1 
    236248     ;; 
    237249     -h) 
     
    328340echo "" 1>> ${log} 
    329341# 
     342# prepare era-i files 
     343concat_eraiy.sh -b ${yyyymmddb} -e ${yyyymmdde} 
     344# ++ test if ok see TODO in concat_eraiy.sh 
    330345cat >> ${PROJECT}/src/tropflux_${$}.pro << EOF 
    331346pro tropflux_${$} 
     
    335350; define overwrite status 
    336351; set to 1 to overwrite existing files 
    337 project_overwrite = 1 
     352project_overwrite = ${force}  
     353; define eraitype 
     354eraitype=2 
    338355; 
    339356result = oaflux_mask_30n30s() 
     
    343360   exit 
    344361ENDIF 
    345 result = interp_erai_dewt(${yyyymmddb}, ${yyyymmdde}) 
     362result = interp_erai_dewt(${yyyymmddb}, ${yyyymmdde}, eraitype) 
    346363IF result < 0 THEN BEGIN 
    347364   msg = 'eee : pb after interp_erai_dewt ' + string(result) 
     
    349366   exit 
    350367ENDIF 
    351 result = interp_erai_lwr(${yyyymmddb}, ${yyyymmdde}) 
     368result = interp_erai_lwr(${yyyymmddb}, ${yyyymmdde}, eraitype) 
    352369IF result < 0 THEN BEGIN 
    353370   msg = 'eee : pb after interp_erai_lwr ' + string(result) 
     
    355372   exit 
    356373ENDIF 
    357 result = interp_erai_msl(${yyyymmddb}, ${yyyymmdde}) 
     374result = interp_erai_msl(${yyyymmddb}, ${yyyymmdde}, eraitype) 
    358375IF result < 0 THEN BEGIN 
    359376   msg = 'eee : pb after interp_erai_msl ' + string(result) 
     
    361378   exit 
    362379ENDIF 
    363 result = interp_erai_sst(${yyyymmddb}, ${yyyymmdde}) 
     380result = interp_erai_sst(${yyyymmddb}, ${yyyymmdde}, eraitype) 
    364381IF result < 0 THEN BEGIN 
    365382   msg = 'eee : pb after interp_erai_sst ' + string(result) 
     
    367384   exit 
    368385ENDIF 
    369 result = interp_erai_t2m(${yyyymmddb}, ${yyyymmdde}) 
     386result = interp_erai_t2m(${yyyymmddb}, ${yyyymmdde}, eraitype) 
    370387IF result < 0 THEN BEGIN 
    371388   msg = 'eee : pb after interp_erai_t2m ' + string(result) 
     
    373390   exit 
    374391ENDIF 
    375 result = interp_erai_ws(${yyyymmddb}, ${yyyymmdde}) 
     392result = interp_erai_ws(${yyyymmddb}, ${yyyymmdde}, eraitype) 
    376393IF result < 0 THEN BEGIN 
    377394   msg = 'eee : pb after interp_erai_ws ' + string(result) 
     
    453470   exit 
    454471ENDIF 
    455 result = tropflux_nrt_ncf(${yyyymmddb}, ${yyyymmdde}) 
     472result = tropflux_nrt_ncdf(${yyyymmddb}, ${yyyymmdde}) 
    456473IF result < 0 THEN BEGIN 
    457474   msg = 'eee : pb after tropflux_nrt_ncdf' + string(result) 
Note: See TracChangeset for help on using the changeset viewer.