Changeset 971 in lmdz_wrf
- Timestamp:
- Jun 29, 2016, 4:57:39 PM (9 years ago)
- Location:
- trunk/tools
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/tools/model_graphics.bash
r962 r971 6 6 # All purpouse 7 7 ######## ###### ##### #### ### ## # 8 9 function list_pairs() { 10 # Function to provide two lists from one in order to obtain all the possibles pairs 11 # listv= ':' separated list of values to construct de couples 12 # $ list_pairs 1:2:3:4:5:6:7:8:9 13 # list_pairs: newlists= 1|2|3|4|5|6|7|8|:2|3|4|5|6|7|8|9| 14 # list_pairs: pairs= 1|2:1|3:1|4:1|5:1|6:1|7:1|8:1|9:2|3:2|4:2|5:2|6:2|7:2|8:2|9:3|4:3|5:3|6:3|7:3|8:3|9:4|5:4|6:4|7:4|8:4|9:5|6:5|7:5|8:5|9:6|7:6|8:6|9:7|8:7|9:8|9 15 16 fname='list_pairs' 17 18 listv=$1 19 20 lv=`echo ${listv} | tr ':' ' '` 21 Nlv=`echo ${listv} | tr ':' ' ' | wc -w | awk '{print $1}'` 22 23 if test ${Nlv} -lt 2; then 24 echo ${errormsg} 25 echo " "${fname}": too few values from list, at least 2 are required!" 26 echo " provided list: "${listv} 27 exit 28 fi 29 30 Nlv_1=`expr ${Nlv} - 1` 31 32 newlist1=`echo ${listv} | tr ':' '\n' | head -n ${Nlv_1} | tr '\n' '|'` 33 newlist2=`echo ${listv} | tr ':' '\n' | tail -n ${Nlv_1} | tr '\n' '|'` 34 35 pairs='' 36 ipair=1 37 il1=1 38 while test ${il1} -le ${Nlv_1}; do 39 lv1=`echo ${listv} | tr ':' '\n' | head -n ${il1} | tail -n 1` 40 il2=`expr ${il1} + 1` 41 while test ${il2} -le ${Nlv}; do 42 lv2=`echo ${listv} | tr ':' '\n' | head -n ${il2} | tail -n 1` 43 if test ${ipair} -eq 1; then 44 pairs=${lv1}'|'${lv2} 45 else 46 pairs=${pairs}':'${lv1}'|'${lv2} 47 fi 48 49 ipair=`expr ${ipair} + 1` 50 il2=`expr ${il2} + 1` 51 done 52 53 il1=`expr ${il1} + 1` 54 done 55 56 echo " "${fname}": newlists= "${newlist1}':'${newlist2} 57 echo " "${fname}": pairs= "${pairs} 58 59 } 8 60 9 61 function uploadvars() { … … 1311 1363 itotv=1 1312 1364 for vark in ${varks}; do 1313 echo " "${vark}" ..." 1314 case ${vark} in 1315 'acc') 1316 varvks=${varacc} 1317 ;; 1318 'combo') 1319 combo=true 1320 varvcombo=${varcombo} 1321 varcos=`echo ${varvcombo} | tr ':' ' '` 1322 varvks='' 1323 ivco=1 1324 for vco in ${varcos}; do 1325 vn=`echo ${vco} | tr '@' ' ' | awk '{print $1}'` 1326 if test ${ivco} -eq 1; then 1327 varvks=${vco} 1328 else 1329 varvks=${varvks}':'${vco} 1330 fi 1331 ivco=`expr ${ivco} + 1` 1332 done 1333 ;; 1334 'diff') 1335 varvks=${vardiff} 1336 ;; 1337 'direct') 1338 varvks=${vardirect} 1339 ;; 1340 'last') 1341 varvks=${varlast} 1342 ;; 1343 'Lmean') 1344 varvks=${varLmean} 1345 ;; 1346 'Lsec') 1347 varvks=${varLsec} 1348 ;; 1349 'lmean') 1350 varvks=${varlmean} 1351 ;; 1352 'lsec') 1353 varvks=${varlsec} 1354 ;; 1355 'pinterp') 1356 varvks=${varpinterp} 1357 ;; 1358 'tmean') 1359 varvks=${vartmean} 1360 ;; 1361 'xmean') 1362 varvks=${varxmean} 1363 ;; 1364 'ymean') 1365 varvks=${varymean} 1366 ;; 1367 'zsum') 1368 varvks=${varzsum} 1369 ;; 1370 '*') 1371 echo ${errmsg} 1372 echo " "${main}": variable kind '"${vark}"' not ready!!" 1373 exit 1374 ;; 1375 esac 1365 if test ! ${vark} = 'diff'; then 1366 echo " "${vark}" ..." 1367 case ${vark} in 1368 'acc') 1369 varvks=${varacc} 1370 ;; 1371 'combo') 1372 combo=true 1373 varvcombo=${varcombo} 1374 varcos=`echo ${varvcombo} | tr ':' ' '` 1375 varvks='' 1376 ivco=1 1377 for vco in ${varcos}; do 1378 vn=`echo ${vco} | tr '@' ' ' | awk '{print $1}'` 1379 if test ${ivco} -eq 1; then 1380 varvks=${vco} 1381 else 1382 varvks=${varvks}':'${vco} 1383 fi 1384 ivco=`expr ${ivco} + 1` 1385 done 1386 ;; 1387 'direct') 1388 varvks=${vardirect} 1389 ;; 1390 'last') 1391 varvks=${varlast} 1392 ;; 1393 'Lmean') 1394 varvks=${varLmean} 1395 ;; 1396 'Lsec') 1397 varvks=${varLsec} 1398 ;; 1399 'lmean') 1400 varvks=${varlmean} 1401 ;; 1402 'lsec') 1403 varvks=${varlsec} 1404 ;; 1405 'pinterp') 1406 varvks=${varpinterp} 1407 ;; 1408 'tmean') 1409 varvks=${vartmean} 1410 ;; 1411 'xmean') 1412 varvks=${varxmean} 1413 ;; 1414 'ymean') 1415 varvks=${varymean} 1416 ;; 1417 'zsum') 1418 varvks=${varzsum} 1419 ;; 1420 '*') 1421 echo ${errmsg} 1422 echo " "${main}": variable kind '"${vark}"' not ready!!" 1423 exit 1424 ;; 1425 esac 1376 1426 1377 1427 # Do we have variables for this kind? 1378 Lvarvks=`expr length ${varvks}'0'`1379 if test ${Lvarvks} -lt 2; then1380 ferrmsg 1 ${main} "variable!kind!"${vark}"!without!variables"1381 fi1382 if test ${ik} -eq 1; then1383 allvars=${varvks}1384 else1385 allvars=${allvars}':'${varvks}1386 fi1387 ik=`expr ${ik} + 1`1388 vars=`echo ${varvks} | tr ':' ' '`1428 Lvarvks=`expr length ${varvks}'0'` 1429 if test ${Lvarvks} -lt 2; then 1430 ferrmsg 1 ${main} "variable!kind!"${vark}"!without!variables" 1431 fi 1432 if test ${ik} -eq 1; then 1433 allvars=${varvks} 1434 else 1435 allvars=${allvars}':'${varvks} 1436 fi 1437 ik=`expr ${ik} + 1` 1438 vars=`echo ${varvks} | tr ':' ' '` 1389 1439 1390 1440 # Variables loop 1391 1441 ## 1392 iv=11393 for var in ${vars}; do1394 echo " "${var}1395 # How to compute it?1396 varcomp=`variable_compute ${iwdir} ${var} ${testfiles} | grep varcomp |\1397 awk '{print $2}'`1398 1399 if test ${itotv} -eq 1; then1400 varcompute=${varcomp}1401 else1402 varcompute=${varcompute}';'${varcomp}1403 fi1404 1405 iv=`expr ${iv} + 1`1406 itotv=`expr ${itotv} + 1`1442 iv=1 1443 for var in ${vars}; do 1444 echo " "${var} 1445 # How to compute it? 1446 varcomp=`variable_compute ${iwdir} ${var} ${testfiles} | grep varcomp | \ 1447 awk '{print $2}'` 1448 1449 if test ${itotv} -eq 1; then 1450 varcompute=${varcomp} 1451 else 1452 varcompute=${varcompute}';'${varcomp} 1453 fi 1454 1455 iv=`expr ${iv} + 1` 1456 itotv=`expr ${itotv} + 1` 1407 1457 1408 1458 # end loop of variables 1409 done 1459 done 1460 fi 1410 1461 # end of kind of variables 1411 1462 done … … 1594 1645 1595 1646 echo " "${main}": "${idp}" direct plots hav been computed" 1596 # LLUIS1597 1647 cd ${rootsh} 1598 exit 1648 1599 1649 # end of experiments 1600 1650 done 1651 1652 # Experiment differences 1653 ## 1654 diffexperiments=`list_pairs $(echo ${exps} | tr ' ' ':') | grep -v newlists | awk '{print $3}'` 1655 diffexps=`echo ${diffexperiments} | tr ':' ' '` 1656 1657 set -x 1658 1659 vdiffs=`echo ${vardiff} | tr ':' ' '` 1660 ivd=1 1661 for vdiff in ${vdiffs}; do 1662 echo ${vdiff}" ..." 1663 if test $(expr index ${vdiff} '|') -ne -1; then 1664 vn=`echo ${vdiff} | tr '|' ' ' | awk '{print $1}'` 1665 ops=`echo ${vdiff} | tr '|' ' ' | awk '{print $2}'` 1666 else 1667 vn=`echo ${vdiff} | tr '|' ' ' | awk '{print $1}'` 1668 ops='None' 1669 fi 1670 fileh=`echo ${varcompute} | tr ';' '\n' | grep ${vdiff} | tr '|' ' ' | awk '{print $3}'` 1671 1672 filen=`stats_filename ${vn} ${ops} ${fileh}` 1673 opss=`echo ${ops} | tr '@' ' '` 1674 for op in ${opss}; do 1675 # Adding 'surnames' to the variable's name 1676 if test ${op} = 'turb'; then 1677 vn=${vn}'turb' 1678 fi 1679 if $(isInlist ${varmeanname} ${op}); then 1680 vn=${vn}'mean' 1681 fi 1682 done 1683 1684 for diffexp in ${diffexps}; do 1685 echo " "${diffexp} 1686 difexp1=`echo ${diffexp} | tr '|' ' ' | awk '{print $1}'` 1687 difexp2=`echo ${diffexp} | tr '|' ' ' | awk '{print $2}'` 1688 1689 owdir=${ofold}/${mod}/${difexp1}-${difexp2} 1690 if test ${ivd} -eq 1; then 1691 mkdir -p ${owdir} 1692 fi 1693 1694 if ${filescratch}; then rm ${owdir}/${filen} >& /dev/null; fi 1695 if test ! -f ${owdir}/${filen}; then 1696 dfile1=${ofold}/${mod}/${difexp1}/${filen} 1697 dfile2=${ofold}/${mod}/${difexp2}/${filen} 1698 1699 dfiles='add|'${dfile1}'|'${vn}',sub|'${dfile2}'|'${vn} 1700 dims='time|pres|lat|lon@'${dfiles} 1701 echo "python ${pyHOME}/nc_var.py -S ${dims} -o compute_opersvarsfiles -v ${vn}" 1702 pyout=`python ${pyHOME}/nc_var.py -S ${dims} -o compute_opersvarsfiles -v ${vn}` 1703 pyn=$? 1704 Spyout=`echo ${pyout} | tr '\n' '#' | tr ' ' '!'` 1705 ferrmsg ${pyn} ${fname} "python!'difference'!failed"${Spyout} 1706 1707 mv opersvarsfiles_${vn}.nc ${owdir}/${filen} 1708 fi 1709 1710 # end experiment pairs 1711 done 1712 # LLUIS 1713 1714 ivd=`expr ${ivd} + 1` 1715 # end of variable diff 1716 done 1717 1718 exit 1719 1601 1720 # end of models 1602 1721 done -
trunk/tools/model_graphics_template.dat
r963 r971 28 28 29 29 # Have new files been added and do they need to be processed? 30 addfiles = true30 addfiles = false 31 31 32 32 # Have new figures been added and do they need to be drawn? 33 addfigures = true33 addfigures = false 34 34 35 35 # Debug … … 76 76 # ymean: y-axis mean values 77 77 # zsum: vertical aggregated values 78 varkinds = last:tmean:xmean: diff:pinterp:combo78 varkinds = last:tmean:xmean:pinterp:diff:combo 79 79 80 80 # variables (providing CF-name, script must provide equivalent variable for each model) … … 82 82 # must exist on the table $pyHOME/variables_values.dat 83 83 # varcombo = [varn];[vark1]@...@[varkN]: variable as consecutive kinds of operation 84 varlast = tas:uas:vas:ps:pr:pracc:rsds:prw:evspsbl:hfss:hfls:hurs:huss:zmla:hufs:wakes:lwakeh:stherm:zmaxth:clt:cll:clm:clh:prc:prls:bils:wss 85 vartmean = tas:uas:vas:ps:pr:pracc:rsds:prw:evspsbl:hfss:hfls:hurs:huss:zmla:hufs:wakes:lwakeh:stherm:zmaxth:clt:cll:clm:clh:prc:prls:bils:wss 86 varxmean = ta:ua:va:hur:hurs:tas:wss:ps 87 vardiff = ualmean:valmean:talmean:huslmean:uas:vas:ps:pr 84 #varlast = tas:uas:vas:ps:pr:pracc:rsds:prw:evspsbl:hfss:hfls:hurs:huss:zmla:hufs:wakes:lwakeh:stherm:zmaxth:clt:cll:clm:clh:prc:prls:bils:wss 85 #vartmean = tas:uas:vas:ps:pr:pracc:rsds:prw:evspsbl:hfss:hfls:hurs:huss:zmla:hufs:wakes:lwakeh:stherm:zmaxth:clt:cll:clm:clh:prc:prls:bils:wss 86 #varxmean = ta:ua:va:hur:hurs:tas:wss:ps 87 #vardiff = tas|last:tas|xmean:tas|tmean 88 #varpinterp = ta:ua:va:hur:ws:hus 89 #varcombo = ta;pinterp@last@xmean:ua;pinterp@last@xmean:va;pinterp@last@xmean:hur;pinterp@last@xmean:ws;pinterp@turb@xmean:hus;pinterp@turb@xmean 90 91 varlast = tas:uas:vas:hfss:hfls:wss 92 vartmean = tas:uas:vas:hfss:hfls:wss 93 varxmean = tas:uas:vas:hfss:hfls:wss 88 94 varpinterp = ta:ua:va:hur:ws:hus 95 vardiff = tas|last:tas|xmean:tas|tmean 89 96 varcombo = ta;pinterp@last@xmean:ua;pinterp@last@xmean:va;pinterp@last@xmean:hur;pinterp@last@xmean:ws;pinterp@turb@xmean:hus;pinterp@turb@xmean 90 97
Note: See TracChangeset
for help on using the changeset viewer.