= Smoothfiles = Smooth``Files section is a "get files" section with frequency informations for all initial map and files get in libIGCM configurations. It is an optionnal section. All frequency values are in Cumul``Period unit. See section Smooth``Modulo below for usage of frequency vector. == How to use Smoothfile section ? == lmdz.card : {{{ [SmoothFiles] 52 # With AR5 aerosols (including ASSO4M(=SO4), CSSO4M, AIBCM, ASBCM, AIPOMM, ASPOMM, ASSSM, CSSSM, SSSSM, CIDUSTM) 53 # With AR5 ozone(tropo + strato from LMDZOR-INCA-REPROBUS simulations) 54 List= (${R_BC}/ATM/${config_UserChoices_TagName}/${RESOL_ATM}/AR5/HISTORIQUE/aerosols_11YearsClim_${year}_v3.nc, aerosols${year}.nc, 1:12:), \ 55 (${R_BC}/ATM/${config_UserChoices_TagName}/${RESOL_ATM}/AR5/HISTORIQUE/climoz_LMDZ_${year}_v2.nc, climoz_LMDZ.nc, 1:12:) }}} orchidee.card : {{{ [SmoothFiles] 17 List=(${R_BC}/SRF/${config_UserChoices_TagName}/PFTmap_1850to2005_AR5_LUHa.rc2/PFTmap_IPCC_${year_p1}.nc, PFTmap.nc, 12:12:) }}} == History for versions of Smootfile function == === Original branch === Smooth``Files branch begin at commit #6 see first import in changset [8]. It use a new function IGCM_Smooth``Modulo to analyse A string of min max and modulo like definition of Scilab vectors. {{{ IGCM_SmoothModulo StringModulo value }}} === Merge in the trunk === Original branch has been merged in trunk in changset [247]. === Change the test for re-submission === Changeset [260] : * Minor changes regarding smooth files handling * We do not want to erase them between gcm execution * We use that for aerosols forcing and ozone forcing updates {{{ 385 if [ X${ret} = Xtrue ] ; then 385 if ( [ X${ret} = Xtrue ] || [ ${Period} -eq 1 ] ) ; then }}} This force the file to be get in the fist Period of a re-submission. Changeset [409] : [[BR]] For Smooth file, first access is always true for Period=1. Get Files when Smooth``Min<=Cumul``Period<=Smooth``Max and modulo [min]:[modulo:][max] is true. [BR] see ticket #44 {{{ 384 if ( [ X${ret} = Xtrue ] || [ ${Period} -eq 1 ] ) ; then 387 if ( [ X${ret} = Xtrue ] || ( [ ${Period} -eq 1 ] && [ ${CumulPeriod} -ge ${SmoothMin} ] && [ ${CumulPeriod} -le ${SmoothMax} ) ) ; then }}} This force the file to be get in the fist Period of a re-submission '''AND''' Smooth``Min <= Cumul``Period <= Smooth``Max. === Bug on re-submission === Changeset [412] : {{{ 386 eval ret=$( IGCM_SmoothModulo ${SmoothDef} ${CumulPeriod} ) 387 if ( [ X${ret} = Xtrue ] || ( [ ${Period} -eq 1 ] && [ ${CumulPeriod} -ge ${SmoothMin} ] && [ ${CumulPeriod} -le ${SmoothMax} ) ) ; then }}} {{{ 391 aux=$( IGCM_SmoothModulo ${SmoothDef} ${CumulPeriod} ) 392 j=1 393 for val in ${aux} ; do 394 [ ${j} -eq 1 ] && SmoothMin=${val} 395 [ ${j} -eq 2 ] && SmoothMax=${val} 396 [ ${j} -eq 3 ] && ret=${val} 397 (( j=j+1 )) 398 done 399 if ( [ X${ret} = Xtrue ] || ( [ ${Period} -eq 1 ] && [ ${CumulPeriod} -ge ${SmoothMin} ] && [ ${CumulPeriod} -le ${SmoothMax} ] ) ) ; then }}} You should only use this version. == Smooth``Modulo function == Definition of Smooth modulo function Function IGCM_Smooth``Modulo analyses a string of "min max and modulo" like definition of Scilab vectors. usage : {{{ IGCM_SmoothModulo StringModulo value }}} String``Modulo : A string of min:module:max like definition of Scilab vectors. {{{ [min]:[modulo:][max] }}} where : * [] value are optionnals; * empty min equal 1 * empty max equal infinity * modulo not given or empty equal 1 * empty string or just ':' equal always. Then all is optionnal (but only one ':' that means "always"). Example : * 1:12: for a 1M Period``Length means in all january only through the end (defaut end corresponds to Date``End) * 1:12:124 for a 1M Period``Length meansthen same, but only if Cumul``Period < 125. * :12:124 is the same a previous (default init is 1). * 1:124 means always before Cumul``Period < 125. * : always. You can use Boundary``Files section to do this.