Ignore:
Timestamp:
02/22/11 10:36:38 (13 years ago)
Author:
cetlod
Message:

Improvment of interactive scripts for IPSLCM5A_C configuration

File:
1 edited

Legend:

Unmodified
Added
Removed
  • CONFIG/IPSLCM/IPSLCM5A/Chistorical/COMP/lmdz.driver

    r1237 r1316  
    9292    IGCM_debug_PushStack "ATM_Update" 
    9393 
     94    typeset InitPeriodCo2 InitDateBeginCo2 InitDateEndCo2 
    9495    typeset CO2SBG CO2MBG CO2LU CO2_ppm CO2_ppm_prec fCO2_ff 
    95     typeset PreviousLinelog LastPeriodDateBegin LastPeriodDateEnd LastDatesPeriod LastPREFIX 
    96     typeset PathCO2log Date_r OUT_OCE OUT_SRF 
     96    typeset PathCO2log  
    9797 
    9898    case ${config_UserChoices_PeriodLength} in 
     
    162162 
    163163    if ( ${FirstInitialize} && [ X"${config_ATM_Restart}" = X"n" ]) ; then 
     164        ##--Initialization of fluxes to an undefined value at the first run 
     165        UndefinedValueCo2=-9999 
     166        InitPeriodCo2=0 
     167        InitDateBeginCo2=${UndefinedValueCo2} 
     168        InitYearCo2=$(( ${year} - 1 ))  
     169        InitDateEndCo2=${InitYearCo2}1231 
     170        fCO2_ff=${UndefinedValueCo2}  
     171        CO2SBG=${UndefinedValueCo2} 
     172        CO2LU=${UndefinedValueCo2} 
     173        CO2MBG=${UndefinedValueCo2} 
     174        CO2_ppm_prec=${UndefinedValueCo2} 
     175        # Get the initial value of atmosp. pco2  
     176        CO2_ppm=${lmdz_UserChoices_co2_init} 
     177 
     178        IGCM_sys_Cp ${SUBMIT_DIR}/co2.log.init ${SUBMIT_DIR}/co2.log 
     179        IGCM_sys_Chmod u+w ${SUBMIT_DIR}/co2.log 
     180 
     181        # Save CO2 values in ExeCpuLog variable contents 5 fields 
     182        echo "${InitPeriodCo2} ${InitDateBeginCo2} ${InitDateEndCo2} ${CO2_ppm} ${CO2_ppm_prec} ${fCO2_ff} ${CO2MBG} ${CO2SBG} ${CO2LU}" |   \ 
     183             gawk '{printf("  %11d | %15s | %15s | %22.15g | %20.15g | %11.8g | %11.8g | %12.8g | %12.8g \n", \ 
     184                              $1,$2,$3,$4,$5,$6,$7,$8,$9)}' >> ${SUBMIT_DIR}/co2.log 
     185     
     186        # Get the path where the log file co2.log is 
     187        PathCO2log=${SUBMIT_DIR}  
     188        # Get Previous line in co2.log 
     189        PreviousLinelog=$( tail -1 ${PathCO2log}/co2.log ) 
    164190         
    165         fCO2_ff=0 
    166         CO2SRF=0 
    167         CO2LU=0 
    168         CO2MBG=0 
    169         CO2_ppm=${lmdz_UserChoices_co2_init} 
    170         CO2_ppm_prec=${lmdz_UserChoices_co2_init} 
    171          
    172         IGCM_sys_Cp ${SUBMIT_DIR}/co2.log.init ${SUBMIT_DIR}/co2.log 
    173         IGCM_sys_Chmod u+w ${SUBMIT_DIR}/co2.log 
    174  
    175         echo "${CumulPeriod} ${PeriodDateBegin} ${PeriodDateEnd} ${CO2_ppm} ${CO2_ppm_prec} ${fCO2_ff} ${CO2MBG} ${CO2SRF} ${CO2LU}" |   \ 
    176              gawk '{printf("  %11d | %15s | %15s | %22.15g | %20.15g | %11.8g | %11.8g | %12.8g | %12.8g \n", \ 
    177                               $1,$2,$3,$4,$5,$6,$7,$8,$9)}' >> ${SUBMIT_DIR}/co2.log 
    178191    else 
    179 #       get the fossile fuel file : 
    180         fCO2_ff=$( gawk "{if (match(\$0,\"${year}\ *${month}\")) {print \$5}}" ${SUBMIT_DIR}/PARAM/CMIP5_gridcar_CO2_emissions_fossil_fuel_Andres_1751-2007_monthly_SC_grid1x1.txt ) 
    181         fCO2_ff=$( echo "${fCO2_ff} / 1000." | bc -l  ) 
    182         echo "Fossil Fuel for historical run  :" ${fCO2_ff} 
    183  
    184         # Get restart line in co2.log 
    185192 
    186193        # NEW parameter in config.card (even for Overule all restarts, you must modify the line after this comment ): 
     
    188195        #SubmitRestartPath= 
    189196        if ( ${FirstInitialize} && [ X"${config_ATM_Restart}" = X"y" ]) ; then 
    190             IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/config.card ATM SubmitRestartPath 
    191             PathCO2log=${config_ATM_SubmitRestartPath} 
    192             Date_r=$( IGCM_date_ConvertFormatToGregorian ${config_ATM_RestartDate} ) 
    193             PreviousLinelog=$( grep ${Date_r} ${PathCO2log}/co2.log ) 
    194             OUT_OCE=${config_OCE_RestartPath}/${config_OCE_RestartJobName}/OCE 
    195             OUT_SRF=${config_SRF_RestartPath}/${config_SRF_RestartJobName}/SRF 
    196  
    197             IGCM_sys_Cp ${SUBMIT_DIR}/co2.log.init ${SUBMIT_DIR}/co2.log 
    198             IGCM_sys_Chmod u+w ${SUBMIT_DIR}/co2.log 
    199  
    200             # Save Last Line of control in new co2.log file 
    201             echo ${PreviousLinelog} >> ${SUBMIT_DIR}/co2.log 
     197            IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/config.card ATM SubmitRestartPath 
     198            PathCO2log=${config_ATM_SubmitRestartPath} 
     199            Date_r=$( IGCM_date_ConvertFormatToGregorian ${config_ATM_RestartDate} ) 
     200            PreviousLinelog=$( grep ${Date_r} ${PathCO2log}/co2.log ) 
     201     
     202            IGCM_sys_Cp ${SUBMIT_DIR}/co2.log.init ${SUBMIT_DIR}/co2.log 
     203            IGCM_sys_Chmod u+w ${SUBMIT_DIR}/co2.log 
     204     
     205            # Save Last Line of control in new co2.log file 
     206            InitPeriodCo2=0    
     207            InitDateBeginCo2=$( echo "${PreviousLinelog[*]}" | gawk -F '|' '{gsub(" ",""); print $2}' ) 
     208            InitDateEndCo2=$( echo "${PreviousLinelog[*]}" | gawk -F '|' '{gsub(" ",""); print $3}' ) 
     209            fCO2_ff=$( echo "${PreviousLinelog[*]}" | gawk -F '|' '{gsub(" ",""); print $6}' ) 
     210            CO2SBG=$( echo "${PreviousLinelog[*]}" | gawk -F '|' '{gsub(" ",""); print $8}' ) 
     211            CO2LU=$( echo "${PreviousLinelog[*]}" | gawk -F '|' '{gsub(" ",""); print $9}' ) 
     212            CO2MBG=$( echo "${PreviousLinelog[*]}" | gawk -F '|' '{gsub(" ",""); print $7}' ) 
     213            CO2_ppm_prec=$( echo "${PreviousLinelog[*]}" | gawk -F '|' '{gsub(" ",""); print $5}' ) 
     214            CO2_ppm=$( echo "${PreviousLinelog[*]}" | gawk -F '|' '{gsub(" ",""); print $4}' ) 
     215 
     216            echo "${InitPeriodCo2} ${InitDateBeginCo2} ${InitDateEndCo2} ${CO2_ppm} ${CO2_ppm_prec} ${fCO2_ff} ${CO2MBG} ${CO2SBG} ${CO2LU}" |   \ 
     217                  gawk '{printf("  %11d | %15s | %15s | %22.15g | %20.15g | %11.8g | %11.8g | %12.8g | %12.8g \n", \ 
     218                              $1,$2,$3,$4,$5,$6,$7,$8,$9)}' >> ${SUBMIT_DIR}/co2.log 
    202219        else 
    203             PathCO2log=${SUBMIT_DIR} 
    204             PreviousLinelog=$( tail -1 ${PathCO2log}/co2.log ) 
    205             OUT_OCE=${R_OUT_OCE} 
    206             OUT_SRF=${R_OUT_SRF} 
     220           # Get restart line in co2.log 
     221           PathCO2log=${SUBMIT_DIR} 
     222           PreviousLinelog=$( tail -1 ${PathCO2log}/co2.log ) 
     223           # Get the value of atmosp. pco2 in co2.log 
     224           CO2_ppm=$( echo "${PreviousLinelog[*]}" | gawk -F '|' '{gsub(" ",""); print $4}' ) 
    207225        fi 
    208  
    209         # Get Previous period output PREFIX 
    210         LastPeriodDateBegin=$( echo "${PreviousLinelog[*]}" | gawk -F '|' '{gsub(" ",""); print $2}' ) 
    211         LastPeriodDateEnd=$( echo "${PreviousLinelog[*]}" | gawk -F '|' '{gsub(" ",""); print $3}' ) 
    212         eval LastDatesPeriod=${LastPeriodDateBegin}_${LastPeriodDateEnd} > /dev/null 2>&1 
    213         # Prefix for save files of this period 
    214         if ( ${FirstInitialize} && [ X"${config_ATM_Restart}" = X"y" ]) ; then 
    215             eval LastPREFIX=${config_ATM_RestartJobName}_${LastDatesPeriod}  > /dev/null 2>&1 
    216         else 
    217             eval LastPREFIX=${config_UserChoices_JobName}_${LastDatesPeriod}  > /dev/null 2>&1 
    218         fi 
    219  
    220         # Ocean  
    221         IGCM_sys_TestFileArchive ${OUT_OCE}/Debug/${LastPREFIX}_ocean.output 
    222         if [ $? = 0 ] ; then 
    223  
    224             if [ $DRYRUN -gt 1 ]; then 
    225                 IGCM_sys_Cp ${OUT_OCE}/Debug/${LastPREFIX}_ocean.output ./ 
    226             else 
    227                 IGCM_sys_Get ${OUT_OCE}/Debug/${LastPREFIX}_ocean.output ./ 
    228             fi 
    229             IGCM_comp_PrepareDeletedFiles ./${LastPREFIX}_ocean.output 
    230             CO2MBG=$( ${SUBMIT_DIR}/COMP/lmdz_analyse_pisces_out.awk ${LastPREFIX}_ocean.output ) 
    231             CO2MBG=$( echo ${CO2MBG} | sed -e "s/ *//" ) 
    232         else 
    233             echo "Error : file ${OUT_OCE}/Debug/${LastPREFIX}_ocean.output not found." 
    234             exit 1 
    235         fi 
    236  
    237         # Surface 
    238         IGCM_sys_TestFileArchive ${OUT_SRF}/Debug/${LastPREFIX}_out_orchidee_0000 
    239         if [ $? = 0 ] ; then 
    240             if [ $DRYRUN -gt 1 ]; then 
    241                 IGCM_sys_Cp ${OUT_SRF}/Debug/${LastPREFIX}_out_orchidee_0000 ./ 
    242             else 
    243                 IGCM_sys_Get ${OUT_SRF}/Debug/${LastPREFIX}_out_orchidee_0000 ./ 
    244             fi 
    245             IGCM_comp_PrepareDeletedFiles ./${LastPREFIX}_out_orchidee_0000 
    246             set +A CO2SBG -- $( ${SUBMIT_DIR}/COMP/lmdz_analyse_stomate_out.awk ${LastPREFIX}_out_orchidee_0000 ) 
    247         else 
    248             echo "Error : file ${OUT_SRF}/Debug/${LastPREFIX}_ocean.output not found." 
    249             exit 1 
    250         fi 
    251         CO2SRF=$( echo ${CO2SBG[0]} | sed -e "s/ *//" ) 
    252         CO2LU=$( echo ${CO2SBG[1]} | sed -e "s/ *//" ) 
    253  
    254         # Previous CO2 
    255         CO2_ppm_prec=$( echo "${PreviousLinelog[*]}" | gawk -F '|' '{gsub(" ",""); print $4}' ) 
    256  
    257         # Formula 
    258         CO2_ppm=$( echo "${CO2_ppm_prec} + (${fCO2_ff} + ${CO2MBG} + ${CO2SRF} + ${CO2LU}) / 2.12" | bc -l ) 
    259  
    260         # Save CO2 values in ExeCpuLog variable contents 5 fields 
    261         echo "${CumulPeriod} ${PeriodDateBegin} ${PeriodDateEnd} ${CO2_ppm} ${CO2_ppm_prec} ${fCO2_ff} ${CO2MBG} ${CO2SRF} ${CO2LU}" |   \ 
    262              gawk '{printf("  %11d | %15s | %15s | %22.15g | %20.15g | %11.8g | %11.8g | %12.8g | %12.8g \n", \ 
    263                               $1,$2,$3,$4,$5,$6,$7,$8,$9)}' >> ${SUBMIT_DIR}/co2.log 
    264226 
    265227    fi 
     
    360322    [ ${CumulPeriod} -le ${LMDZ_NbPeriod_adjust} ] && IGCM_sys_Put_Out Bands_${RESOL_ATM_3D}_${NUM_PROC_ATM}prc.dat ${R_OUT_ATM_D}/${config_UserChoices_JobName}_Bands_${RESOL_ATM_3D}_${NUM_PROC_ATM}prc.dat_${CumulPeriod} 
    361323 
     324    typeset CO2SBG_3V CO2SBG CO2MBG CO2SRF CO2LU CO2_ppm CO2_ppm_prec fCO2_ff 
     325 
     326#   get the fossile fuel file : 
     327    fCO2_ff=$( gawk "{if (match(\$0,\"${year}\ *${month}\")) {print \$3}}" ${SUBMIT_DIR}/PARAM/CMIP5_gridcar_CO2_emissions_fossil_fuel_Andres_1751-2007_monthly_SC.txt ) 
     328    echo "Fossil Fuel for historical run  :" ${fCO2_ff} 
     329 
     330    # Get the value of ocean carbon flux 
     331    CO2MBG=$( ${SUBMIT_DIR}/COMP/lmdz_analyse_pisces_out.awk ocean.output ) 
     332    CO2MBG=$( echo ${CO2MBG} | sed -e "s/ *//" ) 
     333    echo "Ocean carbon flux  :" ${CO2MBG} 
     334     
     335    # Get the value of land fluxes 
     336    set +A CO2SBG_3V -- $( ${SUBMIT_DIR}/COMP/lmdz_analyse_stomate_out.awk out_orchidee_0000 ) 
     337    CO2SRF=$( echo ${CO2SBG_3V[0]} | sed -e "s/ *//" ) 
     338    CO2LU=$( echo ${CO2SBG_3V[1]} | sed -e "s/ *//" ) 
     339    CO2SBG=$( echo ${CO2SBG_3V[2]} | sed -e "s/ *//" ) 
     340    echo "Land carbon flux (NEP)         :" ${CO2SRF} 
     341    echo "LU flux          (FLUC)        :" ${CO2LU} 
     342    echo "Total Land carbon flux (NBP)   :" ${CO2SBG} 
     343 
     344    # Previous CO2 
     345    CO2_ppm_prec=$( echo "${PreviousLinelog[*]}" | gawk -F '|' '{gsub(" ",""); print $4}' ) 
     346    echo "Previous CO2  :" ${CO2_ppm_prec} 
     347 
     348    # Formula 
     349    CO2_ppm=$( echo "${CO2_ppm_prec} + (${fCO2_ff} + ${CO2MBG} + ${CO2SBG}) / 2.12" | bc -l ) 
     350    echo "New CO2  :" ${CO2_ppm}  
     351 
     352    # Save CO2 values in ExeCpuLog variable contents 5 fields 
     353    echo "${CumulPeriod} ${PeriodDateBegin} ${PeriodDateEnd} ${CO2_ppm} ${CO2_ppm_prec} ${fCO2_ff} ${CO2MBG} ${CO2SBG} ${CO2LU}" |   \ 
     354         gawk '{printf("  %11d | %15s | %15s | %22.15g | %20.15g | %11.8g | %11.8g | %12.8g | %12.8g \n", \ 
     355                           $1,$2,$3,$4,$5,$6,$7,$8,$9)}' >> ${SUBMIT_DIR}/co2.log 
    362356    echo FINALIZE ATM ! 
    363357 
Note: See TracChangeset for help on using the changeset viewer.