Changeset 1316 for CONFIG/IPSLCM


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

Improvment of interactive scripts for IPSLCM5A_C configuration

Location:
CONFIG/IPSLCM/IPSLCM5A
Files:
9 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 
  • CONFIG/IPSLCM/IPSLCM5A/Chistorical/COMP/lmdz_analyse_stomate_out.awk

    r1237 r1316  
    2525#========================== 
    2626BEGIN { 
    27 # print "traitement de " ARGV[1] 
     27 # print "traitement de " ARGV[1] 
    2828 
    2929  nbarg=ARGC 
     
    5454  counterLU=0 
    5555 
     56  fluxNBP_found=0 
     57  counterNBP=0 
     58 
    5659  CO2file[1]="" 
    5760  LUfile[1]="" 
     61  NBPfile[1]="" 
    5862} 
    5963 
     
    7983    CO2file[counterCO2]=felts[2] 
    8084  } 
    81   else if (match($0, ".*GLOBAL net cflux_prod_total_sum.*")) { 
     85  else if (match($0, ".*GLOBAL net_cflux_prod_monthly.*")) { 
    8286    myprint("fluxLU_found = 1") 
    8387    fluxLU_found=1 
     
    8791    myprint("nb  :" nb) 
    8892    for (elt in felts) { 
     93        myprint(elt "- elt  :" felts[elt]) 
     94    } 
     95    myprint("elts_co2  :" felts[2]) 
     96 
     97    LUfile[counterLU]=felts[2] 
     98  } 
     99 
     100  else if (match($0, ".*GLOBAL net_biosp_prod_monthly.*")) { 
     101    myprint("fluxNBP_found = 1") 
     102    fluxNBP_found=1 
     103    counterNBP=counterNBP+1 
     104 
     105    nb=split($0,felts, "=") 
     106    myprint("nb  :" nb) 
     107    for (elt in felts) { 
    89108        myprint(elt "- elt  :" felts[elt]) 
    90109    } 
    91     myprint("elts_lu  :" felts[2]) 
     110    myprint("elts_nbp  :" felts[2]) 
    92111 
    93     LUfile[counterLU]=felts[2] 
     112    NBPfile[counterNBP]=felts[2] 
    94113  } 
    95114} 
     
    106125            myprint("value  :" CO2file[i]) 
    107126        } 
    108          
    109         if ( fluxLU_found == 1 ) { 
    110             myprint("LU value for " file) 
    111             myprint("counterLU  :" counterLU) 
    112             for (i=1; i<=counterLU; i++) {   
    113                 print LUfile[i] 
    114                 myprint("value  :" LUfile[i]) 
     127 
     128        if ( fluxLU_found == 1 ) { 
     129            myprint("LU value for " file) 
     130            myprint("counterLU  :" counterLU) 
     131            for (i=1; i<=counterLU; i++) { 
     132                print LUfile[i] 
     133                myprint("value  :" LUfile[i]) 
     134            } 
     135 
     136            if ( fluxNBP_found == 1 ) { 
     137               myprint("NBP value for " file) 
     138               myprint("counterNBP  :" counterNBP) 
     139               for (i=1; i<=counterNBP; i++) {   
     140                    print NBPfile[i] 
     141                    myprint("value  :" NBPfile[i]) 
     142               } 
     143             
     144               exit_value=0 
     145               exit 0 
    115146            } 
    116              
     147            else { 
     148                 myprint("ERROR : NO NBP value for " file) 
     149                 print "0003" 
     150                 exit 1 
     151            } 
     152 
    117153            exit_value=0 
    118154            exit 0 
    119         } 
    120         else { 
    121             myprint("ERROR : NO LU value for " file) 
    122             print "0002" 
    123             exit 1 
    124         } 
    125  
    126         exit_value=0 
    127         exit 0 
     155        } 
     156        else { 
     157            myprint("ERROR : NO LU value for " file) 
     158            print "0002" 
     159            print "0003" 
     160            exit 1 
     161        } 
    128162    } 
    129163    else { 
    130         myprint("ERROR : NO CO2 value for " file) 
    131         print "0001" 
    132         print "0002" 
    133         exit 1 
    134     } 
    135      
     164         myprint("ERROR : NO CO2 value for " file) 
     165         print "0001" 
     166         print "0002" 
     167         print "0003" 
     168         exit 1 
     169       } 
    136170  } 
    137171  else { 
  • CONFIG/IPSLCM/IPSLCM5A/Chistorical/COMP/pisces.driver

    r1019 r1316  
    1010    grep "^ *$1 *=" $2 | sed -e "s% *\!.*%%" 
    1111} 
     12 
    1213 
    1314    ##--Variables used by MBG -- 
     
    5859    fi 
    5960 
    60     ##-- GHG forcing for the current year 
    61     IPCC_PIS_CO2=`grep Annee_${year} CO2_1765_2005.txt | awk -F= '{print $2}'` 
     61    ##-- GHG forcing for the current year. Normally constant 
     62    PathCO2log=${SUBMIT_DIR} 
     63    PreviousLinelog=$( tail -1 ${PathCO2log}/co2.log ) 
     64    IPCC_PIS_CO2=$( echo "${PreviousLinelog[*]}" | gawk -F '|' '{gsub(" ",""); print $4}' ) 
    6265 
    6366    ##-- Update namelist_top and namelist_pisces  
     
    7376        namelist_pisces > namelist_pisces.tmp 
    7477 
    75     IGCM_sys_Mv namelist_pisces.tmp namelist_pisces 
     78    IGCM_sys_Mv namelist_pisces.tmp  namelist_pisces 
    7679 
    7780 
  • CONFIG/IPSLCM/IPSLCM5A/Chistorical/config.card

    r1237 r1316  
    99[UserChoices] 
    1010#============================ 
    11 JobName=EXP00 
     11JobName=Chistorical00 
    1212#----- Short Name of Experiment 
    1313ExperimentName=historical 
     
    5656OverRule=y 
    5757#D- Last day of the experience used as restart for all components 
    58 RestartDate=1899-12-31 
     58RestartDate=1850-12-31 
    5959#D- Define restart simulation name for all components 
    6060# For historical simulation you have to start from an other simulation 
    61 RestartJobName=XXXXXXX 
     61RestartJobName=CpiControl00 
    6262#D- Path Server Group Login 
    63 RestartPath=${ARCHIVE}/IGCM_OUT/IPSLCM5A/DEVT/piControl 
     63RestartPath=${ARCHIVE}/IGCM_OUT/IPSLCM5A/DEVT/CpiControl 
    6464 
    6565#======================================================================== 
  • CONFIG/IPSLCM/IPSLCM5A/CpiControl/COMP/lmdz.driver

    r1235 r1316  
    141141 
    142142    if ( ${FirstInitialize} ) ; then 
    143          
    144         fCO2_ff=0 
    145         CO2SRF=0 
    146         CO2LU=0 
    147         CO2MBG=0 
    148         CO2_ppm=${lmdz_UserChoices_co2_init} 
    149         CO2_ppm_prec=${lmdz_UserChoices_co2_init} 
    150          
    151         IGCM_sys_Cp ${SUBMIT_DIR}/co2.log.init ${SUBMIT_DIR}/co2.log 
    152         IGCM_sys_Chmod u+w ${SUBMIT_DIR}/co2.log 
    153  
    154         echo "${CumulPeriod} ${PeriodDateBegin} ${PeriodDateEnd} ${CO2_ppm} ${CO2_ppm_prec} ${fCO2_ff} ${CO2MBG} ${CO2SRF} ${CO2LU}" |   \ 
    155              gawk '{printf("  %11d | %15s | %15s | %22.15g | %20.15g | %11.8g | %11.8g | %12.8g | %12.8g \n", \ 
     143        ##--Initialization of fluxes to an undefined value at the first run 
     144        UndefinedValueCo2=-9999 
     145        InitPeriodCo2=0 
     146        InitDateBeginCo2=${UndefinedValueCo2} 
     147        InitYearCo2=$(( ${year} - 1 ))  
     148        InitDateEndCo2=${InitYearCo2}1231 
     149        fCO2_ff=${UndefinedValueCo2}  
     150        CO2SBG=${UndefinedValueCo2} 
     151        CO2LU=${UndefinedValueCo2} 
     152        CO2MBG=${UndefinedValueCo2} 
     153        CO2_ppm_prec=${UndefinedValueCo2} 
     154        # Get the initial value of atmosp. pco2  
     155        CO2_ppm=${lmdz_UserChoices_co2_init} 
     156 
     157        IGCM_sys_Cp ${SUBMIT_DIR}/co2.log.init ${SUBMIT_DIR}/co2.log 
     158        IGCM_sys_Chmod u+w ${SUBMIT_DIR}/co2.log 
     159     
     160        # Save CO2 values in ExeCpuLog variable contents 5 fields 
     161        echo "${InitPeriodCo2} ${InitDateBeginCo2} ${InitDateEndCo2} ${CO2_ppm} ${CO2_ppm_prec} ${fCO2_ff} ${CO2MBG} ${CO2SBG} ${CO2LU}" |   \ 
     162             gawk '{printf("  %11d | %15s | %15s | %22.15g | %20.15g | %11.8g | %11.8g | %12.8g | %12.8g \n", \ 
    156163                              $1,$2,$3,$4,$5,$6,$7,$8,$9)}' >> ${SUBMIT_DIR}/co2.log 
     164     
     165        # Get the path where the log file co2.log is 
     166        PathCO2log=${SUBMIT_DIR}  
     167        # Get Previous line in co2.log 
     168        PreviousLinelog=$( tail -1 ${PathCO2log}/co2.log ) 
    157169 
    158170    else 
    159  
    160 #       For Control, no fossil fuel emission : 
    161         fCO2_ff=0 
    162         echo "Fossil Fuel for control run  :" ${fCO2_ff} 
    163  
    164         # Get Previous line in co2.log 
    165         PreviousLinelog=$( tail -1 ${SUBMIT_DIR}/co2.log ) 
    166  
    167         # Get Previous period output PREFIX 
    168         LastPeriodDateBegin=$( echo "${PreviousLinelog[*]}" | gawk -F '|' '{gsub(" ",""); print $2}' ) 
    169         LastPeriodDateEnd=$( echo "${PreviousLinelog[*]}" | gawk -F '|' '{gsub(" ",""); print $3}' ) 
    170         eval LastDatesPeriod=${LastPeriodDateBegin}_${LastPeriodDateEnd} > /dev/null 2>&1 
    171         # Prefix for save files of this period 
    172         eval LastPREFIX=${config_UserChoices_JobName}_${LastDatesPeriod}  > /dev/null 2>&1 
    173  
    174         # Ocean 
    175          
    176         IGCM_sys_TestFileArchive ${R_OUT_OCE}/Debug/${LastPREFIX}_ocean.output 
    177         if [ $? = 0 ] ; then 
    178  
    179             if [ $DRYRUN -gt 1 ]; then 
    180                 IGCM_sys_Cp ${R_OUT_OCE}/Debug/${LastPREFIX}_ocean.output ./ 
    181             else 
    182                 IGCM_sys_Get ${R_OUT_OCE}/Debug/${LastPREFIX}_ocean.output ./ 
    183             fi 
    184             IGCM_comp_PrepareDeletedFiles ./${LastPREFIX}_ocean.output 
    185             CO2MBG=$( ${SUBMIT_DIR}/COMP/lmdz_analyse_pisces_out.awk ${LastPREFIX}_ocean.output ) 
    186             CO2MBG=$( echo ${CO2MBG} | sed -e "s/ *//" ) 
    187         else 
    188             echo "Error : file ${R_OUT_OCE}/Debug/${LastPREFIX}_ocean.output not found." 
    189             exit 1 
    190         fi 
    191  
    192         # Surface 
    193         IGCM_sys_TestFileArchive ${R_OUT_SRF}/Debug/${LastPREFIX}_out_orchidee_0000 
    194         if [ $? = 0 ] ; then 
    195             if [ $DRYRUN -gt 1 ]; then 
    196                 IGCM_sys_Cp ${R_OUT_SRF}/Debug/${LastPREFIX}_out_orchidee_0000 ./ 
    197             else 
    198                 IGCM_sys_Get ${R_OUT_SRF}/Debug/${LastPREFIX}_out_orchidee_0000 ./ 
    199             fi 
    200             IGCM_comp_PrepareDeletedFiles ./${LastPREFIX}_out_orchidee_0000 
    201             set +A CO2SBG -- $( ${SUBMIT_DIR}/COMP/lmdz_analyse_stomate_out.awk ${LastPREFIX}_out_orchidee_0000 ) 
    202         else 
    203             echo "Error : file ${R_OUT_OCE}/Debug/${LastPREFIX}_ocean.output not found." 
    204             exit 1 
    205         fi 
    206         CO2SRF=$( echo ${CO2SBG[0]} | sed -e "s/ *//" ) 
    207         CO2LU=$( echo ${CO2SBG[1]} | sed -e "s/ *//" ) 
    208  
    209         # Previous CO2 
    210         CO2_ppm_prec=$( echo "${PreviousLinelog[*]}" | gawk -F '|' '{gsub(" ",""); print $4}' ) 
    211  
    212         # Formula 
    213         CO2_ppm=$( echo "${CO2_ppm_prec} + (${fCO2_ff} + ${CO2MBG} + ${CO2SRF} + ${CO2LU}) / 2.12" | bc -l ) 
    214  
    215         # Save CO2 values in ExeCpuLog variable contents 5 fields 
    216         echo "${CumulPeriod} ${PeriodDateBegin} ${PeriodDateEnd} ${CO2_ppm} ${CO2_ppm_prec} ${fCO2_ff} ${CO2MBG} ${CO2SRF} ${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 
     171        # Get restart line in co2.log 
     172        PathCO2log=${SUBMIT_DIR} 
     173        PreviousLinelog=$( tail -1 ${PathCO2log}/co2.log )  
     174        # Get the value of atmosp. pco2 in co2.log 
     175        CO2_ppm=$( echo "${PreviousLinelog[*]}" | gawk -F '|' '{gsub(" ",""); print $4}' ) 
    219176 
    220177    fi 
     
    306263    [ ${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} 
    307264 
     265    typeset CO2SBG_3V CO2SBG CO2MBG CO2SRF CO2LU CO2_ppm CO2_ppm_prec fCO2_ff 
     266 
     267    # For Control, no fossil fuel emission : 
     268    fCO2_ff=0 
     269    echo "Fossil Fuel for control run  :" ${fCO2_ff} 
     270 
     271    # Get the value of ocean carbon flux 
     272    CO2MBG=$( ${SUBMIT_DIR}/COMP/lmdz_analyse_pisces_out.awk ocean.output ) 
     273    CO2MBG=$( echo ${CO2MBG} | sed -e "s/ *//" ) 
     274    echo "Ocean carbon flux  :" ${CO2MBG} 
     275 
     276    # Get the value of land fluxes 
     277    set +A CO2SBG_3V -- $( ${SUBMIT_DIR}/COMP/lmdz_analyse_stomate_out.awk out_orchidee_0000 ) 
     278    CO2SRF=$( echo ${CO2SBG_3V[0]} | sed -e "s/ *//" ) 
     279    CO2LU=$( echo ${CO2SBG_3V[1]} | sed -e "s/ *//" ) 
     280    CO2SBG=$( echo ${CO2SBG_3V[2]} | sed -e "s/ *//" ) 
     281    echo "Land carbon flux (NEP)         :" ${CO2SRF} 
     282    echo "LU flux          (FLUC)        :" ${CO2LU} 
     283    echo "Total Land carbon flux (NBP)   :" ${CO2SBG} 
     284 
     285    # Previous CO2 
     286    CO2_ppm_prec=$( echo "${PreviousLinelog[*]}" | gawk -F '|' '{gsub(" ",""); print $4}' ) 
     287    echo "Previous CO2  :" ${CO2_ppm_prec} 
     288     
     289    # Formula 
     290    CO2_ppm=$( echo "${CO2_ppm_prec} + (${fCO2_ff} + ${CO2MBG} + ${CO2SBG}) / 2.12" | bc -l ) 
     291    echo "New CO2  :" ${CO2_ppm} 
     292 
     293    # Save CO2 values in ExeCpuLog variable contents 5 fields 
     294    echo "${CumulPeriod} ${PeriodDateBegin} ${PeriodDateEnd} ${CO2_ppm} ${CO2_ppm_prec} ${fCO2_ff} ${CO2MBG} ${CO2SBG} ${CO2LU}" |   \ 
     295         gawk '{printf("  %11d | %15s | %15s | %22.15g | %20.15g | %11.8g | %11.8g | %12.8g | %12.8g \n", \ 
     296                           $1,$2,$3,$4,$5,$6,$7,$8,$9)}' >> ${SUBMIT_DIR}/co2.log 
     297 
    308298    echo FINALIZE ATM ! 
    309299 
  • CONFIG/IPSLCM/IPSLCM5A/CpiControl/COMP/lmdz_analyse_stomate_out.awk

    r1234 r1316  
    2525#========================== 
    2626BEGIN { 
    27 # print "traitement de " ARGV[1] 
     27 # print "traitement de " ARGV[1] 
    2828 
    2929  nbarg=ARGC 
     
    5454  counterLU=0 
    5555 
     56  fluxNBP_found=0 
     57  counterNBP=0 
     58 
    5659  CO2file[1]="" 
    5760  LUfile[1]="" 
     61  NBPfile[1]="" 
    5862} 
    5963 
     
    7983    CO2file[counterCO2]=felts[2] 
    8084  } 
    81   else if (match($0, ".*GLOBAL net cflux_prod_total_sum.*")) { 
     85  else if (match($0, ".*GLOBAL net_cflux_prod_monthly.*")) { 
    8286    myprint("fluxLU_found = 1") 
    8387    fluxLU_found=1 
     
    8791    myprint("nb  :" nb) 
    8892    for (elt in felts) { 
     93        myprint(elt "- elt  :" felts[elt]) 
     94    } 
     95    myprint("elts_co2  :" felts[2]) 
     96 
     97    LUfile[counterLU]=felts[2] 
     98  } 
     99 
     100  else if (match($0, ".*GLOBAL net_biosp_prod_monthly.*")) { 
     101    myprint("fluxNBP_found = 1") 
     102    fluxNBP_found=1 
     103    counterNBP=counterNBP+1 
     104 
     105    nb=split($0,felts, "=") 
     106    myprint("nb  :" nb) 
     107    for (elt in felts) { 
    89108        myprint(elt "- elt  :" felts[elt]) 
    90109    } 
    91     myprint("elts_lu  :" felts[2]) 
     110    myprint("elts_nbp  :" felts[2]) 
    92111 
    93     LUfile[counterLU]=felts[2] 
     112    NBPfile[counterNBP]=felts[2] 
    94113  } 
    95114} 
     
    106125            myprint("value  :" CO2file[i]) 
    107126        } 
    108          
    109         if ( fluxLU_found == 1 ) { 
    110             myprint("LU value for " file) 
    111             myprint("counterLU  :" counterLU) 
    112             for (i=1; i<=counterLU; i++) {   
    113                 print LUfile[i] 
    114                 myprint("value  :" LUfile[i]) 
     127 
     128        if ( fluxLU_found == 1 ) { 
     129            myprint("LU value for " file) 
     130            myprint("counterLU  :" counterLU) 
     131            for (i=1; i<=counterLU; i++) { 
     132                print LUfile[i] 
     133                myprint("value  :" LUfile[i]) 
     134            } 
     135 
     136            if ( fluxNBP_found == 1 ) { 
     137               myprint("NBP value for " file) 
     138               myprint("counterNBP  :" counterNBP) 
     139               for (i=1; i<=counterNBP; i++) {   
     140                    print NBPfile[i] 
     141                    myprint("value  :" NBPfile[i]) 
     142               } 
     143             
     144               exit_value=0 
     145               exit 0 
    115146            } 
    116              
     147            else { 
     148                 myprint("ERROR : NO NBP value for " file) 
     149                 print "0003" 
     150                 exit 1 
     151            } 
     152 
    117153            exit_value=0 
    118154            exit 0 
    119         } 
    120         else { 
    121             myprint("ERROR : NO LU value for " file) 
    122             print "0002" 
    123             exit 1 
    124         } 
    125  
    126         exit_value=0 
    127         exit 0 
     155        } 
     156        else { 
     157            myprint("ERROR : NO LU value for " file) 
     158            print "0002" 
     159            print "0003" 
     160            exit 1 
     161        } 
    128162    } 
    129163    else { 
    130         myprint("ERROR : NO CO2 value for " file) 
    131         print "0001" 
    132         print "0002" 
    133         exit 1 
    134     } 
    135      
     164         myprint("ERROR : NO CO2 value for " file) 
     165         print "0001" 
     166         print "0002" 
     167         print "0003" 
     168         exit 1 
     169       } 
    136170  } 
    137171  else { 
  • CONFIG/IPSLCM/IPSLCM5A/CpiControl/COMP/pisces.driver

    r972 r1316  
    2323    PAT_TOP_LRSTTR=$( supergrep ln_rsttr          ${SUBMIT_DIR}/PARAM/namelist_top_${RESOL_OCE} ) 
    2424    PAT_TOP_NRSTTR=$( supergrep nrsttr            ${SUBMIT_DIR}/PARAM/namelist_top_${RESOL_OCE} ) 
     25    PAT_PIS_ATCCO2=$( supergrep atcco2            ${SUBMIT_DIR}/PARAM/namelist_pisces_${RESOL_OCE} ) 
    2526    PAT_PIS_LRIVER=$( supergrep ln_river          ${SUBMIT_DIR}/PARAM/namelist_pisces_${RESOL_OCE} ) 
    2627 
     
    6061    fi 
    6162 
     63    ##-- GHG forcing for the current year. Normally constant 
     64    PathCO2log=${SUBMIT_DIR} 
     65    PreviousLinelog=$( tail -1 ${PathCO2log}/co2.log ) 
     66    IPCC_PIS_CO2=$( echo "${PreviousLinelog[*]}" | gawk -F '|' '{gsub(" ",""); print $4}' ) 
     67 
    6268    ##-- Update namelist_top and namelist_pisces  
    6369 
     
    6874    IGCM_sys_Mv namelist_top.tmp namelist_top 
    6975 
    70     sed -e "s%${PAT_PIS_LRIVER}%          ln_river=${PISCES_LRIVER}%"                \ 
     76    sed -e "s%${PAT_PIS_ATCCO2}%          atcco2=${IPCC_PIS_CO2}%"                \ 
     77        -e "s%${PAT_PIS_LRIVER}%          ln_river=${PISCES_LRIVER}%"                \ 
    7178        namelist_pisces > namelist_pisces.tmp 
    7279 
  • CONFIG/IPSLCM/IPSLCM5A/CpiControl/co2.log.init

    r1232 r1316  
    1   CumulPeriod | PeriodDateBegin |   PeriodDateEnd | Monthly CO2 for Period | Previous Monthly CO2 | fossil flux | PISCES flux | ORCHIDEE NEP | ORCHIDEE LUC  
     1  CumulPeriod | PeriodDateBegin |   PeriodDateEnd | Monthly CO2 for Period | Previous Monthly CO2 | fossil flux | PISCES flux | ORCHIDEE NBP | ORCHIDEE LUC  
  • CONFIG/IPSLCM/IPSLCM5A/CpiControl/config.card

    r1233 r1316  
    2222#-- "YYYY-MM-DD" 
    2323DateBegin=1850-01-01 
    24 DateEnd=1850-12-31 
     24DateEnd=1899-12-31 
    2525#============================ 
    2626#-- 1Y, 1M, 5D, 1D Period Length of one trunk of simulation 
Note: See TracChangeset for help on using the changeset viewer.