- Timestamp:
- 11/10/22 15:37:00 (17 months ago)
- Location:
- trunk/libIGCM
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/libIGCM/libIGCM_config/libIGCM_config.ksh
r1546 r1565 111 111 if ( [ ! X${config_UserChoices_SpaceName} = X ] && [ ! X${config_UserChoices_ExperimentName} = X ] ) ; then 112 112 FreeName=$( echo ${config_UserChoices_JobName} | sed 's/.*_//' ) 113 if ( [ ! X${config_Ensemble_EnsembleName} = X ] && [ ! X${config_Ensemble_EnsembleDate} = X ] ) ; then 114 R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName} 115 R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName} 116 R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName} 117 R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName} 118 R_CMIP=${CMIP6_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName} 113 114 if ( [ X${config_Post_StorageCMIP} = XSCRATCH ] || [ X${config_Post_StorageCMIP} = Xscratch ] ) ; then 115 IGCM_debug_Print 1 "LIBIGCM CONFIG:: SCRATCH R_BUF=${R_BUF}" 116 StoreCMIP=${R_BUF} 117 elif ( [ X${config_Post_StorageCMIP} = XSTORE ] || [ X${config_Post_StorageCMIP} = Xstore ] ) ; then 118 IGCM_debug_Print 1 "LIBIGCM CONFIG:: SCRATCH R_OUT=${R_OUT}" 119 StoreCMIP=${R_OUT} 120 else 121 IGCM_debug_Print 1 "LIBIGCM CONFIG:: ELSE CMIP_BUF=${CMIP6_BUF}" 122 StoreCMIP=${CMIP6_BUF} 123 fi 124 # Ensemble cases (default all members outputs in same directory) 125 if ( [ ! X${config_Ensemble_EnsembleName} = X ] ) ; then 126 R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName} 127 R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName} 128 R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName} 129 R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName} 130 R_CMIP=${StoreCMIP}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName} 131 IGCM_debug_Print 1 "LIBIGCM CONFIG:: ENSEMBLE R_CMIP=${R_CMIP}" 132 133 # PERTURB Ensemble Outputs 134 if ( [ X${config_Ensemble_EnsembleType} = XEns_PERTURB ] ) ; then 135 if ( [ ! X${config_Ensemble_EnsembleDate} = X ] ) ; then 136 R_SAVE=${R_SAVE}/${config_Ensemble_EnsembleDate}/${FreeName} 137 R_FIGR=${R_FIGR}/${config_Ensemble_EnsembleDate}/${FreeName} 138 R_BUFR=${R_BUFR}/${config_Ensemble_EnsembleDate}/${FreeName} 139 R_DODS=${R_DODS}/${config_Ensemble_EnsembleDate}/${FreeName} 140 R_CMIP=${R_CMIP}/${config_Ensemble_EnsembleDate}/${FreeName} 141 else 142 R_SAVE=${R_SAVE}/${FreeName} 143 R_FIGR=${R_FIGR}/${FreeName} 144 R_BUFR=${R_BUFR}/${FreeName} 145 R_DODS=${R_DODS}/${FreeName} 146 R_CMIP=${R_CMIP}/${FreeName} 147 fi 148 # DATE Ensemble Outputs 149 elif ( [ X${config_Ensemble_EnsembleType} = XEns_DATE ] ) ; then 150 R_FIGR=${R_FIGR}/${FreeName} 151 R_BUFR=${R_BUFR}/${FreeName} 152 R_DODS=${R_DODS}/${FreeName} 153 IGCM_debug_Print 1 "LIBIGCM CONFIG:: ENSEMBLE DATE R_CMIP=${R_CMIP}" 154 if ( [ X${config_Ensemble_EnsembleMergeSave} = X ] || [ X${config_Ensemble_EnsembleMergeSave} = Xn ] || 155 [ X${config_Ensemble_EnsembleMergeSave} = Xno ] ) ; then 156 # One SAVE directory per member, else common output dir for all members 157 R_SAVE=${R_SAVE}/${FreeName} 158 R_CMIP=${R_CMIP}/${FreeName} 159 IGCM_debug_Print 1 "LIBIGCM CONFIG:: ENSEMBLE DATE MERGE R_CMIP=${R_CMIP}" 160 fi 161 fi 119 162 else 120 163 R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} … … 122 165 R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 123 166 R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 124 R_CMIP=${ CMIP6_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}167 R_CMIP=${StoreCMIP}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 125 168 fi 126 169 else … … 137 180 fi 138 181 fi 139 182 183 IGCM_debug_Print 1 "LIBIGCM CONFIG:: R_CMIP = ${R_CMIP}" 184 140 185 #==================================================== 141 186 # Define R_OUT_KSH : Storage place for job output -
trunk/libIGCM/libIGCM_ensemble/libIGCM_ensemble.ksh
r1489 r1565 29 29 # : removed Ens_PERTURB_PERTU_MAP_LIST case 30 30 # 31 # Author: Simona Flavoni & Nicola Lebas32 # Contact: Simona.Flavoni__at__locean -ipsl.upmc.fr31 # Author: Simona Flavoni & Nicolas Lebas 32 # Contact: Simona.Flavoni__at__locean.ipsl.fr & Nicolas.Lebas__at__locean.ipsl.fr 33 33 # IPSL (2019) 34 34 #************************************************************** … … 38 38 { 39 39 IGCM_debug_PushStack "IGCM_ensemble_Init" 40 40 41 41 IGCM_card_DefineVariableFromOption ${F_CFG_ENS} Ens_PERTURB active 42 42 IGCM_card_DefineVariableFromOption ${F_CFG_ENS} Ens_DATE active 43 44 Job_Period=10 # PARAMETER USED in function IGCM_ensemble_FilesUpdate 45 43 44 Job_Period=10 # Default PARAMETER USED in function IGCM_ensemble_FilesUpdate 45 answer="" 46 print - "\nHit Enter or give PERIOD_NB for all member's Job (default is 10)" 47 read answer 48 49 if [ "X${answer}" != "X" ] ; then 50 Job_Period=${answer} 51 fi 52 print "\nPeriodNb in ensemble Jobs is ${Job_Period}" 53 46 54 IGCM_debug_Print 1 "Ens_PERTURB ACTIVE = ${ensemble_Ens_PERTURB_active}" 47 55 IGCM_debug_Print 1 "Ens_DATE ACTIVE = ${ensemble_Ens_DATE_active}" 48 56 echo "" 49 57 50 58 #==================================================== 51 59 # Define ARCHIVE : Dedicated to large files … … 55 63 # Define R_BUF : USELESS and DEPRECATED output tree. 56 64 IGCM_sys_defineArchives 57 65 58 66 IGCM_debug_PopStack "IGCM_ensemble_Init" 59 67 } … … 139 147 # ==> config.card 140 148 # [ENSEMBLE] 141 IGCM_card_WriteOption ${SUBMIT_DIR}/${StartDir}/${MemberDir}/config.card Ensemble EnsembleRun 'y'142 149 IGCM_card_WriteOption ${SUBMIT_DIR}/${StartDir}/${MemberDir}/config.card Ensemble EnsembleName $(eval echo $\ensemble_Ens_${EnsembleType}_NAME) 143 150 IGCM_card_WriteOption ${SUBMIT_DIR}/${StartDir}/${MemberDir}/config.card Ensemble EnsembleDate ${HumanDateBegin} 144 151 IGCM_card_WriteOption ${SUBMIT_DIR}/${StartDir}/${MemberDir}/config.card Ensemble EnsembleType "Ens_${EnsembleType}" 152 IGCM_card_WriteOption ${SUBMIT_DIR}/${StartDir}/${MemberDir}/config.card Ensemble EnsembleMergeSave ${ensemble_Ens_DATE_MERGE_SAVE} 145 153 146 154 # [UserChoices] … … 369 377 IGCM_sys_Mkdir ${SUBMIT_DIR}/${StartDir} 370 378 IGCM_sys_Cd ${SUBMIT_DIR}/${StartDir} 371 ln -s ../../.resol . 372 ln -s ../../.libmpi . 379 ln -s ../../.resol . # TODO: remove for future version (>6.1) 380 ln -s ../../.libmpi . # TODO: remove for future version (>6.1) 381 ln -s ../../SOURCES . 382 ln -s ../../ARCH . 373 383 IGCM_sys_Cd ${RUN_DIR} 374 384 fi … … 470 480 IGCM_sys_Mkdir ${SUBMIT_DIR}/${StartDir} 471 481 IGCM_sys_Cd ${SUBMIT_DIR}/${StartDir} 472 ln -s ../../.resol . 473 ln -s ../../.libmpi . 482 ln -s ../../.resol . # TODO: remove for future version (>6.1) 483 ln -s ../../.libmpi . # TODO: remove for future version (>6.1) 484 ln -s ../../SOURCES . 485 ln -s ../../ARCH . 474 486 IGCM_sys_Cd ${RUN_DIR} 475 487 fi … … 773 785 IGCM_card_DefineVariableFromOption ${F_CFG_ENS} Ens_DATE active 774 786 IGCM_card_DefineVariableFromOption ${F_CFG_ENS} Ens_DATE NAME 775 IGCM_card_DefineVariableFromOption ${F_CFG_ENS} Ens_DATE BEGIN_INIT 776 IGCM_card_DefineVariableFromOption ${F_CFG_ENS} Ens_DATE BEGIN_RESTART 777 IGCM_card_DefineVariableFromOption ${F_CFG_ENS} Ens_DATE END_INIT 787 IGCM_card_DefineVariableFromOption ${F_CFG_ENS} Ens_DATE MERGE_SAVE 778 788 IGCM_card_DefineVariableFromOption ${F_CFG_ENS} Ens_DATE STARTDATE 779 789 IGCM_card_DefineArrayFromOption ${F_CFG_ENS} Ens_DATE NONPERIODIC … … 794 804 IGCM_debug_Print 1 "ACTIVE = ${ensemble_Ens_DATE_active}" 795 805 IGCM_debug_Print 1 "NAME = ${ensemble_Ens_DATE_NAME}" 796 IGCM_debug_Print 1 "BEGIN_INIT = ${ensemble_Ens_DATE_BEGIN_INIT}" 797 IGCM_debug_Print 1 "END_INIT = ${ensemble_Ens_DATE_END_INIT}" 798 IGCM_debug_Print 1 "BEGIN_RESTART = ${ensemble_Ens_DATE_BEGIN_RESTART}" 806 IGCM_debug_Print 1 "MERGE_SAVE = ${ensemble_Ens_DATE_MERGE_SAVE}" 799 807 IGCM_debug_Print 1 "STARTDATE = ${ensemble_Ens_DATE_STARTDATE}" 800 808 IGCM_debug_Print 1 "NONPERIODIC = ${ensemble_Ens_DATE_NONPERIODIC[*]}" … … 828 836 # A few checks for the Non-Periodic case: 829 837 # *************************************** 830 # if [[ ${#ensemble_Ens_DATE_NONPERIODIC[*]} != ${#ensemble_Ens_DATE_RESTART_NONPERIODIC[*]} ]] ; then831 # IGCM_debug_Exit "IGCM_ensemble_DateInit: NONPERIODIC and RESTART_NONPERIODIC lists have different sizes"832 # IGCM_debug_Verif_Exit833 # fi834 838 835 839 if [[ ${#ensemble_Ens_DATE_RESTART_NONPERIODIC[*]} > 0 ]] && [[ ${ensemble_Ens_DATE_RESTART_NONPERIODIC[*]} != _0_ ]]; then … … 837 841 838 842 # Use LENGTH if no NONPERIODIC_LENGTH given 839 if [[ ${#ensemble_Ens_DATE_LENGTH_NONPERIODIC[*]} < ${#ensemble_Ens_DATE_NONPERIODIC[*]} ]] || 840 [[ X"${ensemble_Ens_DATE_LENGTH_NONPERIODIC[0]}" = "XOption" ]] ; then 843 if ( [ ${#ensemble_Ens_DATE_LENGTH_NONPERIODIC[*]} -lt ${#ensemble_Ens_DATE_NONPERIODIC[*]} ] || [[ "X${ensemble_Ens_DATE_LENGTH_NONPERIODIC[0]}" = "XOption" ]] ) ; then 841 844 IGCM_debug_Print 1 "WARNING: LENGTH_NONPERIODIC is not fill (or not correctly). " 842 845 IGCM_debug_Print 1 "Use LENGTH value '${ensemble_Ens_DATE_LENGTH}' for all NONPERIODIC runs" 843 844 while [ ${DateNum} -lt ${#ensemble_Ens_DATE_NONPERIODIC[*]} ] ; do845 ensemble_Ens_DATE_LENGTH_NONPERIODIC[${DateNum}]=${ensemble_Ens_DATE_LENGTH}846 (( DateNum = DateNum + 1 ))847 846 DateNum=0 847 while [ ${DateNum} -lt ${#ensemble_Ens_DATE_RESTART_NONPERIODIC[*]} ] ; do 848 ensemble_Ens_DATE_LENGTH_NONPERIODIC[${DateNum}]=${ensemble_Ens_DATE_LENGTH} 849 (( DateNum = DateNum + 1 )) 850 done 848 851 fi 849 852 … … 864 867 IGCM_debug_Print 1 "WARNING: INITFROM_NONPERIODIC is not fill (or not correctly). Use INITFROM value '${ensemble_Ens_DATE_INITFROM}' for all NONPERIODIC runs" 865 868 DateNum=0 866 while [ ${DateNum} -lt ${#ensemble_Ens_DATE_ NONPERIODIC[*]} ] ; do869 while [ ${DateNum} -lt ${#ensemble_Ens_DATE_RESTART_NONPERIODIC[*]} ] ; do 867 870 ensemble_Ens_DATE_INITFROM_NONPERIODIC[${DateNum}]=${ensemble_Ens_DATE_INITFROM} 868 871 (( DateNum = DateNum + 1 )) … … 874 877 IGCM_debug_Print 1 "WARNING: INITPATH_NONPERIODIC is not fill (or not correctly). Use INITPATH value '${ensemble_Ens_DATE_INITPATH}' for all NONPERIODIC runs" 875 878 DateNum=0 876 while [ ${DateNum} -lt ${#ensemble_Ens_DATE_ NONPERIODIC[*]} ] ; do879 while [ ${DateNum} -lt ${#ensemble_Ens_DATE_RESTART_NONPERIODIC[*]} ] ; do 877 880 ensemble_Ens_DATE_INITPATH_NONPERIODIC[${DateNum}]=${ensemble_Ens_DATE_INITPATH} 878 881 (( DateNum = DateNum + 1 )) … … 934 937 IGCM_sys_Mkdir ${SUBMIT_DIR}/${StartDir} 935 938 IGCM_sys_Cd ${SUBMIT_DIR}/${StartDir} 936 ln -s ../../.resol . 937 ln -s ../../.libmpi . 939 ln -s ../../.resol . # TODO: remove for future version (>6.1) 940 ln -s ../../.libmpi . # TODO: remove for future version (>6.1) 941 ln -s ../../SOURCES . 942 ln -s ../../ARCH . 938 943 IGCM_sys_Cd ${RUN_DIR} 939 944 fi … … 949 954 (( ii=DateNum + 1 )) 950 955 951 MemberDir="${ensemble_Ens_DATE_NAME}${ii}" 956 # Member number on 2 digits (01 02 ... 10 11) 957 if (( ii < 10)) then 958 MemberDir="${ensemble_Ens_DATE_NAME}-0${ii}" 959 else 960 MemberDir="${ensemble_Ens_DATE_NAME}-${ii}" 961 fi 952 962 IGCM_debug_Print 3 "${MemberDir}" 953 963 echo "Create: ${MemberDir}"
Note: See TracChangeset
for help on using the changeset viewer.