c ###################################################################### character*72 function MaterialName(MaterialID) C ###################################################################### C # C # Decode material index MaterialID and return its name MaterialName c # implicit none c * integer MaterialID c ==== pure metals ===================================================== if(MaterialID.eq.1001) then c * Silver (Ag) MaterialName='Ag' elseif(MaterialID.eq.1002) then c * Aluminium (Al) MaterialName='Al' elseif(MaterialID.eq.1003) then c * Copper (Cu) MaterialName='Cu' elseif(MaterialID.eq.1004) then c * Manganese (Mn) MaterialName='Mn' elseif(MaterialID.eq.1005) then c * Titanuim (Ti) MaterialName='Ti' elseif(MaterialID.eq.1006) then c * Tungsten (W) MaterialName='W' c ==== metallic alloys ================================================= elseif(MaterialID.eq.2001) then c * Al-6063 structural alloy MaterialName='Al-6063' elseif(MaterialID.eq.2101) then c * Cu-6%Sn bronze MaterialName='Cu-6Sn' elseif(MaterialID.eq.2102) then c * Cu-11%Sn bronze MaterialName='Cu-10Sn' elseif(MaterialID.eq.2103) then c * Cu-15%Sn bronze MaterialName='Cu-15Sn' elseif(MaterialID.eq.2111) then c * Cu-10%Ni alloy MaterialName='Cu-10Ni' elseif(MaterialID.eq.2112) then c * Cu-30%Ni alloy MaterialName='Cu-30Ni' elseif(MaterialID.eq.2113) then c * Cu-45%Ni alloy (akin to Monel) MaterialName='Cu-45Ni' elseif(MaterialID.eq.2121) then c * Cu-0.5%Mn alloy MaterialName='Cu-05Mn' elseif(MaterialID.eq.2122) then c * Cu-12%Mn alloy (akin to Manganine) MaterialName='Cu-12Mn' elseif(MaterialID.eq.2201) then c * Haynes International Nickel superalloy C276 (Hastelloy-C276) MaterialName='Hastelloy-C276' elseif(MaterialID.eq.2202) then c * SMC Nickel-Chromium superalloy 718 (Inconel-718) MaterialName='Inconel-718' elseif(MaterialID.eq.2203) then c * SMC Nickel alloy 908 (Incoloy-908) MaterialName='Incoloy-908' elseif(MaterialID.eq.2301) then c * Stainless Steel AISI-304 MaterialName='AISI-304' elseif(MaterialID.eq.2302) then c * Stainless Steel AISI-316 MaterialName='AISI-316' elseif(MaterialID.eq.2401) then c * Ti-6Al-4V alloy MaterialName='Ti-6Al-4V' elseif(MaterialID.eq.2501) then c * Sn-40%Pb solder MaterialName='Sn-40Pb' elseif(MaterialID.eq.2502) then c * Sn-4%Ag solder MaterialName='Sn-4Ag' c ==== insulators ====================================================== elseif(MaterialID.eq.3001) then c * Alumina ceramic (Al2O3) MaterialName='Alumina' elseif(MaterialID.eq.3002) then c * Epoxy MaterialName='Epoxy' elseif(MaterialID.eq.3003) then c * Glass-fiber reinforced epoxy (G10/G11 class) - warp (fibers) direction MaterialName='GE-warp' elseif(MaterialID.eq.3004) then c * Glass-fiber reinforced epoxy (G10/G11 class) - normal direction MaterialName='GE-normal' elseif(MaterialID.eq.3005) then c * Polyimide (Kapton(R)) MaterialName='Polyimide' c ==== superconductors ================================================= elseif(MaterialID.eq.4001) then c * Niobium-Titanium (Nb-47.5%Ti) MaterialName='Nb-Ti' elseif(MaterialID.eq.4002) then c * Niobium-Tin (Nb3Sn) MaterialName='Nb3Sn' elseif(MaterialID.eq.4003) then c * Niobium-Alluminium (Nb3Al) MaterialName='Nb3Al' elseif(MaterialID.eq.4004) then c * Magnesium-diborure (MgB2) MaterialName='MgB2' elseif(MaterialID.eq.4101) then c * BSCCO-2212 MaterialName='BSCCO-2212' elseif(MaterialID.eq.4102) then c * BSCCO-2223 MaterialName='BSCCO-2223' elseif(MaterialID.eq.4103) then c * YBCO-123 MaterialName='YBCO-123' c ==== unknown material ID ============================================= else write(6,*) 'ERROR - unknown material ID:',MaterialID MaterialName=char(0) endif c * return end c ###################################################################### integer function MaterialID(MaterialName) c ###################################################################### c # c # decode material name MaterialName and return its index MaterialID c # implicit none c * character*(*) MaterialName c * integer StringLength,CompareStrings c ==== pure metals ===================================================== if(CompareStrings(MaterialName,'Ag').eq.0) then c * Silver (Ag) MaterialID=1001 elseif(CompareStrings(MaterialName,'Al').eq.0) then c * Aluminium (Al) MaterialID=1002 elseif(CompareStrings(MaterialName,'Cu').eq.0) then c * Copper (Cu) MaterialID=1003 elseif(CompareStrings(MaterialName,'Mn').eq.0) then c * Manganese (Mn) MaterialID=1004 elseif(CompareStrings(MaterialName,'Ti').eq.0) then c * Titanuim (Ti) MaterialID=1005 elseif(CompareStrings(MaterialName,'W').eq.0) then c * Tungsten (W) MaterialID=1006 c ==== metallic alloys ================================================= elseif(CompareStrings(MaterialName,'Al-6063').eq.0) then c * Al-6063 structural alloy MaterialID=2001 elseif(CompareStrings(MaterialName,'Cu-6Sn').eq.0) then c * Cu-6%Sn bronze MaterialID=2101 elseif(CompareStrings(MaterialName,'Cu-10Sn').eq.0) then c * Cu-10%Sn bronze MaterialID=2102 elseif(CompareStrings(MaterialName,'Cu-15Sn').eq.0) then c * Cu-15%Sn bronze MaterialID=2103 elseif(CompareStrings(MaterialName,'Cu-10Ni').eq.0) then c * Cu-10%Ni alloy MaterialID=2111 elseif(CompareStrings(MaterialName,'Cu-30Ni').eq.0) then c * Cu-30%Ni alloy MaterialID=2112 elseif(CompareStrings(MaterialName,'Cu-45Ni').eq.0) then c * Cu-45%Ni alloy (akin to Monel) MaterialID=2113 elseif(CompareStrings(MaterialName,'Cu-05Mn').eq.0) then c * Cu-0.5%Mn alloy MaterialID=2121 elseif(CompareStrings(MaterialName,'Cu-12Mn').eq.0) then c * Cu-12%Mn alloy (akin to Manganine) MaterialID=2122 elseif(CompareStrings(MaterialName,'Hastelloy-C276').eq.0) then c * Haynes International Nickel superalloy C276 (Hastelloy-C276) MaterialID=2201 elseif(CompareStrings(MaterialName,'Inconel-718').eq.0) then c * SMC Nickel-Chromium superalloy 718 (Inconel-718) MaterialID=2202 elseif(CompareStrings(MaterialName,'Incoloy-908').eq.0) then c * SMC Nickel alloy 908 (Incoloy-908) MaterialID=2203 elseif(CompareStrings(MaterialName,'AISI-304').eq.0) then c * Stainless Steel AISI-304 MaterialID=2301 elseif(CompareStrings(MaterialName,'AISI-316').eq.0) then c * Stainless Steel AISI-316 MaterialID=2302 elseif(CompareStrings(MaterialName,'Ti-6Al-4V').eq.0) then c * Ti-6Al-4V alloy MaterialID=2401 elseif(CompareStrings(MaterialName,'Sn-40Pb').eq.0) then c * Sn-40%Pb solder MaterialID=2501 elseif(CompareStrings(MaterialName,'Sn-4Ag').eq.0) then c * Sn-4%Ag solder MaterialID=2502 c ==== insulators ====================================================== elseif(CompareStrings(MaterialName,'Alumina').eq.0) then c * Alumina ceramic (Al2O3) MaterialID=3001 elseif(CompareStrings(MaterialName,'Epoxy').eq.0) then c * Epoxy MaterialID=3002 elseif(CompareStrings(MaterialName,'GE-warp').eq.0) then c * Glass-fiber reinforced epoxy (G10/G11 class) - warp (fibers) direction MaterialID=3003 elseif(CompareStrings(MaterialName,'GE-normal').eq.0) then c * Glass-fiber reinforced epoxy (G10/G11 class) - normal direction MaterialID=3004 elseif(CompareStrings(MaterialName,'Polyimide').eq.0) then c * Polyimide (Kapton(R)) MaterialID=3005 c ==== superconductors ================================================= elseif(CompareStrings(MaterialName,'Nb-Ti').eq.0) then c * Niobium-Titanium (Nb-47.5%Ti) MaterialID=4001 elseif(CompareStrings(MaterialName,'Nb3Sn').eq.0) then c * Niobium-Tin (Nb3Sn) MaterialID=4002 elseif(CompareStrings(MaterialName,'Nb3Al').eq.0) then c * Niobium-Alluminium (Nb3Al) MaterialID=4003 elseif(CompareStrings(MaterialName,'MgB2').eq.0) then c * Magnesium-diborure (MgB2) MaterialID=4004 elseif(CompareStrings(MaterialName,'BSCCO-2212').eq.0) then c * BSCCO-2212 MaterialID=4101 elseif(CompareStrings(MaterialName,'BSCCO-2223').eq.0) then c * BSCCO-2223 MaterialID=4102 elseif(CompareStrings(MaterialName,'YBCO-123').eq.0) then c * YBCO-123 MaterialID=4103 c ==== unknown material name =========================================== else write(6,*) 'ERROR - unknown material:', & MaterialName(1:StringLength(MaterialName)) MaterialID=0 endif c * return end c ###################################################################### character*72 function MaterialType(MaterialId) c ###################################################################### c # c # decode material index MaterialId and return its type MaterialType c # implicit none c * integer MaterialId c ==== pure metals ===================================================== if(MaterialId.eq.1001 .or. & MaterialId.eq.1002 .or. & MaterialId.eq.1003 .or. & MaterialId.eq.1004 .or. & MaterialId.eq.1005 .or. & MaterialId.eq.1006) then MaterialType = 'Metal' c ==== metallic alloys ================================================= elseif(MaterialId.eq.2001 .or. & MaterialId.eq.2101 .or. & MaterialId.eq.2102 .or. & MaterialId.eq.2103 .or. & MaterialId.eq.2111 .or. & MaterialId.eq.2112 .or. & MaterialId.eq.2113 .or. & MaterialId.eq.2121 .or. & MaterialId.eq.2122 .or. & MaterialId.eq.2201 .or. & MaterialId.eq.2202 .or. & MaterialId.eq.2203 .or. & MaterialId.eq.2301 .or. & MaterialId.eq.2302 .or. & MaterialId.eq.2401 .or. & MaterialId.eq.2501 .or. & MaterialId.eq.2502) then MaterialType = 'Alloy' c ==== insulators ====================================================== elseif(MaterialId.eq.3001 .or. & MaterialId.eq.3002 .or. & MaterialId.eq.3003 .or. & MaterialId.eq.3004 .or. & MaterialId.eq.3005) then MaterialType = 'Insulator' c ==== superconductors ================================================= elseif(MaterialId.eq.4001 .or. & MaterialId.eq.4002 .or. & MaterialId.eq.4003 .or. & MaterialId.eq.4004 .or. & MaterialId.eq.4101 .or. & MaterialId.eq.4102 .or. & MaterialId.eq.4103) then MaterialType = 'SuperConductor' else c ==== unknown material name =========================================== write(6,*) 'ERROR - unknown material ID:', & MaterialId MaterialType=char(0) endif c * return end c ###################################################################### real function Density(MaterialID,T) c ###################################################################### c # c # Density of materials c # implicit none c * integer MaterialID real T c * real dAg,dAl,dCu,dMn,dTi,dW real dAl6063 real dCuMn,dCuSn,dCuNi real dHastelloyC276,dIncoloy908,dInconel718 real dAISI304,dAISI316 real dTi6Al4V real dSn40Pb,dSn4Ag real dAlumina,dEpoxy,dGEWarp,dGENormal,dPolyimide real dNbTi,dNb3Sn,dNb3Al,dMgB2 real dBSCCO2212,dBSCCO2223,dYBCO123 c ==== pure metals ===================================================== if(MaterialID.eq.1001) then c * Silver (Ag) Density=dAg(T) elseif(MaterialID.eq.1002) then c * Aluminium (Al) Density=dAl(T) elseif(MaterialID.eq.1003) then c * Copper (Cu) Density=dCu(T) elseif(MaterialID.eq.1004) then c * Manganese (Mn) Density=dMn(T) elseif(MaterialID.eq.1005) then c * Titanuim (Ti) Density=dTi(T) elseif(MaterialID.eq.1006) then c * Tungsten (W) Density=dW(T) c ==== metallic alloys ================================================= elseif(MaterialID.eq.2001) then c * Al-6063 structural alloy Density=dAl6063(T) elseif(MaterialID.eq.2101) then c * Cu-6%Sn bronze Density=dCuSn(T,6.0) elseif(MaterialID.eq.2102) then c * Cu-10%Sn bronze Density=dCuSn(T,10.0) elseif(MaterialID.eq.2103) then c * Cu-15%Sn bronze Density=dCuSn(T,15.0) elseif(MaterialID.eq.2111) then c * Cu-10%Ni alloy Density=dCuNi(T,10.0) elseif(MaterialID.eq.2112) then c * Cu-30%Ni alloy Density=dCuNi(T,30.0) elseif(MaterialID.eq.2113) then c * Cu-45%Ni alloy (akin to Monel) Density=dCuNi(T,45.0) elseif(MaterialID.eq.2121) then c * Cu-0.5%Mn alloy Density=dCuMn(T,0.5) elseif(MaterialID.eq.2122) then c * Cu-12%Mn alloy (akin to Manganine) Density=dCuMn(T,12.0) elseif(MaterialID.eq.2201) then c * Haynes International Nickel superalloy C276 (Hastelloy-C276) Density=dHastelloyC276(T) elseif(MaterialID.eq.2202) then c * SMC Nickel-Chromium superalloy 718 (Inconel-718) Density=dInconel718(T) elseif(MaterialID.eq.2203) then c * SMC Nickel alloy 908 (Incoloy-908) Density=dIncoloy908(T) elseif(MaterialID.eq.2301) then c * Stainless Steel AISI-304 Density=dAISI304(T) elseif(MaterialID.eq.2302) then c * Stainless Steel AISI-316 Density=dAISI316(T) elseif(MaterialID.eq.2401) then c * Ti-6Al-4V alloy Density=dTi6Al4V(T) elseif(MaterialID.eq.2501) then c * Sn-40Pb solder Density=dSn40Pb(T) elseif(MaterialID.eq.2502) then c * Sn-4Ag solder Density=dSn4Ag(T) c ==== insulators ====================================================== elseif(MaterialID.eq.3001) then c * Alumina ceramic (Al2O3) Density=dAlumina(T) elseif(MaterialID.eq.3002) then c * Epoxy Density=dEpoxy(T) elseif(MaterialID.eq.3003) then c * Glass-fiber reinforced epoxy (G10/G11 class) - warp (fibers) direction Density=dGEWarp(T) elseif(MaterialID.eq.3004) then c * Glass-fiber reinforced epoxy (G10/G11 class) - normal direction Density=dGENormal(T) elseif(MaterialID.eq.3005) then c * Polyimide (Kapton(R)) Density=dPolyimide(T) c ==== superconductors ================================================= elseif(MaterialID.eq.4001) then c * Niobium-Titanium (Nb-47.5%Ti) Density=dNbTi(T) elseif(MaterialID.eq.4002) then c * Niobium-Tin (Nb3Sn) Density=dNb3Sn(T) elseif(MaterialID.eq.4003) then c * Niobium-Alluminium (Nb3Al) Density=dNb3Al(T) elseif(MaterialID.eq.4004) then c * Magnesium-diborure (MgB2) Density=dMgB2(T) elseif(MaterialID.eq.4101) then c * BSCCO-2212 Density=dBSCCO2212(T) elseif(MaterialID.eq.4102) then c * BSCCO-2223 Density=dBSCCO2223(T) elseif(MaterialID.eq.4103) then c * YBCO123 Density=dYBCO123(T) c ==== unknown material ID ============================================= else write(6,*) 'ERROR - unknown material ID:',MaterialID Density=0.0 endif c * return end c ###################################################################### real function Conductivity(MaterialID,T,B,RRR) c ###################################################################### c # c # Thermal conductivity of materials c # implicit none c * integer MaterialID real T,B,RRR c * real kAg,kAl,kCu,kMn,kTi,kW real kAl6063 real kCuMn,kCuSn,kCuNi real kHastelloyC276,kIncoloy908,kInconel718 real kAISI304,kAISI316 real kTi6Al4V real kSn40Pb,kSn4Ag real kAlumina,kEpoxy,kGEWarp,kGENormal,kPolyimide real kNbTi,kNb3Sn,kNb3Al,kMgB2 real kBSCCO2212,kBSCCO2223,kYBCO123 c ==== pure metals ===================================================== if(MaterialID.eq.1001) then c * Silver (Ag) Conductivity=kAg(T,B,RRR) elseif(MaterialID.eq.1002) then c * Aluminium (Al) Conductivity=kAl(T,B,RRR) elseif(MaterialID.eq.1003) then c * Copper (Cu) Conductivity=kCu(T,B,RRR) elseif(MaterialID.eq.1004) then c * Manganese (Mn) Conductivity=kMn(T,B,RRR) elseif(MaterialID.eq.1005) then c * Titanuim (Ti) Conductivity=kTi(T,B,RRR) elseif(MaterialID.eq.1006) then c * Tungsten (W) Conductivity=kW(T,B,RRR) c ==== metallic alloys ================================================= elseif(MaterialID.eq.2001) then c * Al-6063 structural alloy Conductivity=kAl6063(T) elseif(MaterialID.eq.2101) then c * Cu-6%Sn bronze Conductivity=kCuSn(T,6.0) elseif(MaterialID.eq.2102) then c * Cu-10%Sn bronze Conductivity=kCuSn(T,10.0) elseif(MaterialID.eq.2103) then c * Cu-15%Sn bronze Conductivity=kCuSn(T,15.0) elseif(MaterialID.eq.2111) then c * Cu-10%Ni alloy Conductivity=kCuNi(T,10.0) elseif(MaterialID.eq.2112) then c * Cu-30%Ni alloy Conductivity=kCuNi(T,30.0) elseif(MaterialID.eq.2113) then c * Cu-45%Ni alloy (akin to Monel) Conductivity=kCuNi(T,45.0) elseif(MaterialID.eq.2121) then c * Cu-0.5%Mn alloy Conductivity=kCuMn(T,0.5) elseif(MaterialID.eq.2122) then c * Cu-12%Mn alloy (akin to Manganine) Conductivity=kCuMn(T,12.0) elseif(MaterialID.eq.2201) then c * Haynes International Nickel superalloy C276 (Hastelloy-C276) Conductivity=kHastelloyC276(T) elseif(MaterialID.eq.2202) then c * SMC Nickel-Chromium superalloy 718 (Inconel-718) Conductivity=kInconel718(T) elseif(MaterialID.eq.2203) then c * SMC Nickel alloy 908 (Incoloy-908) Conductivity=kIncoloy908(T) elseif(MaterialID.eq.2301) then c * Stainless Steel AISI-304 Conductivity=kAISI304(T) elseif(MaterialID.eq.2302) then c * Stainless Steel AISI-316 Conductivity=kAISI316(T) elseif(MaterialID.eq.2401) then c * Ti-6Al-4V alloy Conductivity=kTi6Al4V(T) elseif(MaterialID.eq.2501) then c * Sn-40%Pb solder Conductivity=kSn40Pb(T) elseif(MaterialID.eq.2502) then c * Sn-4%Ag solder Conductivity=kSn4Ag(T) c ==== insulators ====================================================== elseif(MaterialID.eq.3001) then c * Alumina ceramic (Al2O3) Conductivity=kAlumina(T) elseif(MaterialID.eq.3002) then c * Epoxy Conductivity=kEpoxy(T) elseif(MaterialID.eq.3003) then c * Glass-fiber reinforced epoxy (G10/G11 class) - warp (fibers) direction Conductivity=kGEWarp(T) elseif(MaterialID.eq.3004) then c * Glass-fiber reinforced epoxy (G10/G11 class) - normal direction Conductivity=kGENormal(T) elseif(MaterialID.eq.3005) then c * Polyimide (Kapton(R)) Conductivity=kPolyimide(T) c ==== superconductors ================================================= elseif(MaterialID.eq.4001) then c * Niobium-Titanium (Nb-47.5%Ti) Conductivity=kNbTi(T) elseif(MaterialID.eq.4002) then c * Niobium-Tin (Nb3Sn) Conductivity=kNb3Sn(T) elseif(MaterialID.eq.4003) then c * Niobium-Alluminium (Nb3Al) Conductivity=kNb3Al(T) elseif(MaterialID.eq.4004) then c * Magnesium-diborure (MgB2) Conductivity=kMgB2(T) elseif(MaterialID.eq.4101) then c * BSCCO-2212 Conductivity=kBSCCO2212(T) elseif(MaterialID.eq.4102) then c * BSCCO-2223 Conductivity=kBSCCO2223(T) elseif(MaterialID.eq.4103) then c * YBCO123 Conductivity=kYBCO123(T) c ==== unknown material ID ============================================= else write(6,*) 'ERROR - unknown material ID:',MaterialID Conductivity=0.0 endif c * return end c ###################################################################### real function Resistivity(MaterialID,T,B,RRR) c ###################################################################### c # c # Electrical resistivity of materials, valid for pure metals and c # metallic alloys. For superconductors the normal state resistivity is c # returned, irrespective of temperature and field. For insulators a c # dummy, high value (1 MOhm m) is returned c # implicit none c * integer MaterialID real T,B,RRR c * real rAg,rAl,rCu,rMn,rTi,rW real rAl6063 real rCuMn,rCuSn,rCuNi real rHastelloyC276,rIncoloy908,rInconel718 real rAISI304,rAISI316 real rTi6Al4V real rSn40Pb,rSn4Ag real rNbTi,rNb3Sn,rNb3Al,rMgB2 real rBSCCO2212,rBSCCO2223,rYBCO123 c * real RInsulator parameter(RInsulator=1.0e9) c ---------------------------------------------------------------------- c write(6,*) 'compute resistivity' c write(6,*) 'Material ID :',MaterialID c write(6,*) 'T :',T c write(6,*) 'B :',B c write(6,*) 'RRR :',RRR c ---------------------------------------------------------------------- c ==== pure metals ===================================================== if(MaterialID.eq.1001) then c * Silver (Ag) Resistivity=rAg(T,B,RRR) elseif(MaterialID.eq.1002) then c * Aluminium (Al) Resistivity=rAl(T,B,RRR) elseif(MaterialID.eq.1003) then c * Copper (Cu) Resistivity=rCu(T,B,RRR) elseif(MaterialID.eq.1004) then c * Manganese (Mn) Resistivity=rMn(T,B,RRR) elseif(MaterialID.eq.1005) then c * Titanuim (Ti) Resistivity=rTi(T,B,RRR) elseif(MaterialID.eq.1006) then c * Tungsten (W) Resistivity=rW(T,B,RRR) c ==== metallic alloys ================================================= elseif(MaterialID.eq.2001) then c * Al-6063 structural alloy Resistivity=rAl6063(T) elseif(MaterialID.eq.2101) then c * Cu-6%Sn bronze Resistivity=rCuSn(T,6.0) elseif(MaterialID.eq.2102) then c * Cu-10%Sn bronze Resistivity=rCuSn(T,10.0) elseif(MaterialID.eq.2103) then c * Cu-15%Sn bronze Resistivity=rCuSn(T,15.0) elseif(MaterialID.eq.2111) then c * Cu-10%Ni alloy Resistivity=rCuNi(T,10.0) elseif(MaterialID.eq.2112) then c * Cu-30%Ni alloy Resistivity=rCuNi(T,30.0) elseif(MaterialID.eq.2113) then c * Cu-45%Ni alloy (akin to Monel) Resistivity=rCuNi(T,45.0) elseif(MaterialID.eq.2121) then c * Cu-0.5%Mn alloy Resistivity=rCuMn(T,0.5) elseif(MaterialID.eq.2122) then c * Cu-12%Mn alloy (akin to Manganine) Resistivity=rCuMn(T,12.0) elseif(MaterialID.eq.2201) then c * Haynes International Nickel superalloy C276 (Hastelloy-C276) Resistivity=rHastelloyC276(T) elseif(MaterialID.eq.2202) then c * SMC Nickel-Chromium superalloy 718 (Inconel-718) Resistivity=rInconel718(T) elseif(MaterialID.eq.2203) then c * SMC Nickel alloy 908 (Incoloy-908) Resistivity=rIncoloy908(T) elseif(MaterialID.eq.2301) then c * Stainless Steel AISI-304 Resistivity=rAISI304(T) elseif(MaterialID.eq.2302) then c * Stainless Steel AISI-316 Resistivity=rAISI316(T) elseif(MaterialID.eq.2401) then c * Ti-6Al-4V alloy Resistivity=rTi6Al4V(T) elseif(MaterialID.eq.2501) then c * Sn-40%Pb solder Resistivity=rSn40Pb(T) elseif(MaterialID.eq.2502) then c * Sn-4%Ag solder Resistivity=rSn4Ag(T) c ==== insulators ====================================================== elseif(MaterialID.eq.3001) then c * Alumina ceramic (Al2O3) Resistivity=RInsulator elseif(MaterialID.eq.3002) then c * Epoxy Resistivity=RInsulator elseif(MaterialID.eq.3003 .or. MaterialID.eq.3004) then c * Glass-fiber reinforced epoxy (G10/G11 class) Resistivity=RInsulator elseif(MaterialID.eq.3005) then c * Polyimide (Kapton(R)) Resistivity=RInsulator c ==== superconductors ================================================= elseif(MaterialID.eq.4001) then c * Niobium-Titanium (Nb-47.5%Ti) Resistivity=rNbTi(T) elseif(MaterialID.eq.4002) then c * Niobium-Tin (Nb3Sn) Resistivity=rNb3Sn(T) elseif(MaterialID.eq.4003) then c * Niobium-Alluminium (Nb3Al) Resistivity=rNb3Al(T) elseif(MaterialID.eq.4004) then c * Magnesium-diborure (MgB2) Resistivity=rMgB2(T) elseif(MaterialID.eq.4101) then c * BSCCO-2212 Resistivity=rBSCCO2212(T) elseif(MaterialID.eq.4102) then c * BSCCO-2223 Resistivity=rBSCCO2223(T) elseif(MaterialID.eq.4103) then c * YBCO0-123 Resistivity=rYBCO123(T) c ==== unknown material ID ============================================= else write(6,*) 'ERROR - unknown material ID:',MaterialID Resistivity=0.0 endif c * return end c ###################################################################### real function SpecificHeat(MaterialID,T,B,angle,eps) c ###################################################################### c # c # Specific heat of materials, state variables are defined for the case c # of superconductors c # implicit none c * integer MaterialID real T,B,angle,eps c * real cAg,cAl,cCu,cMn,cTi,cW real cAl6063 real cCuMn,cCuSn,cCuNi real cHastelloyC276,cIncoloy908,cInconel718 real cAISI304,cAISI316 real cTi6Al4V real cSn40Pb,cSn4Ag real cAlumina,cEpoxy,cGEWarp,cGENormal,cPolyimide real cNbTi,cNb3Sn,cNb3Al,cMgB2 real cBSCCO2212,cBSCCO2223,cYBCO123 c * real Tc0m,Bc20m,C0,p,q,n,nu,Ca1,Ca2,emax,e0a c ==== pure metals ===================================================== if(MaterialID.eq.1001) then c * Silver (Ag) SpecificHeat=cAg(T) elseif(MaterialID.eq.1002) then c * Aluminium (Al) SpecificHeat=cAl(T) elseif(MaterialID.eq.1003) then c * Copper (Cu) SpecificHeat=cCu(T) elseif(MaterialID.eq.1004) then c * Manganese (Mn) SpecificHeat=cMn(T) elseif(MaterialID.eq.1005) then c * Titanuim (Ti) SpecificHeat=cTi(T) elseif(MaterialID.eq.1006) then c * Tungsten (W) SpecificHeat=cW(T) c ==== metallic alloys ================================================= elseif(MaterialID.eq.2001) then c * Al-6063 structural alloy SpecificHeat=cAl6063(T) elseif(MaterialID.eq.2101) then c * Cu-6%Sn bronze SpecificHeat=cCuSn(T,6.0) elseif(MaterialID.eq.2102) then c * Cu-10%Sn bronze SpecificHeat=cCuSn(T,10.0) elseif(MaterialID.eq.2103) then c * Cu-15%Sn bronze SpecificHeat=cCuSn(T,15.0) elseif(MaterialID.eq.2111) then c * Cu-10%Ni alloy SpecificHeat=cCuNi(T,10.0) elseif(MaterialID.eq.2112) then c * Cu-30%Ni alloy SpecificHeat=cCuNi(T,30.0) elseif(MaterialID.eq.2113) then c * Cu-45%Ni alloy (akin to Monel) SpecificHeat=cCuNi(T,45.0) elseif(MaterialID.eq.2121) then c * Cu-0.5%Mn alloy SpecificHeat=cCuMn(T,0.5) elseif(MaterialID.eq.2122) then c * Cu-12%Mn alloy (akin to Manganine) SpecificHeat=cCuMn(T,12.0) elseif(MaterialID.eq.2201) then c * Haynes International Nickel superalloy C276 (Hastelloy-C276) SpecificHeat=cHastelloyC276(T) elseif(MaterialID.eq.2202) then c * SMC Nickel-Chromium superalloy 718 (Inconel-718) SpecificHeat=cInconel718(T) elseif(MaterialID.eq.2203) then c * SMC Nickel alloy 908 (Incoloy-908) SpecificHeat=cIncoloy908(T) elseif(MaterialID.eq.2301) then c * Stainless Steel AISI-304 SpecificHeat=cAISI304(T) elseif(MaterialID.eq.2302) then c * Stainless Steel AISI-316 SpecificHeat=cAISI316(T) elseif(MaterialID.eq.2401) then c * Ti-6Al-4V alloy SpecificHeat=cTi6Al4V(T) elseif(MaterialID.eq.2501) then c * Sn-40%Pb solder SpecificHeat=cSn40Pb(T) elseif(MaterialID.eq.2502) then c * Sn-4%Ag solder SpecificHeat=cSn4Ag(T) c ==== insulators ====================================================== elseif(MaterialID.eq.3001) then c * Alumina ceramic (Al2O3) SpecificHeat=cAlumina(T) elseif(MaterialID.eq.3002) then c * Epoxy SpecificHeat=cEpoxy(T) elseif(MaterialID.eq.3003) then c * Glass-fiber reinforced epoxy (G10/G11 class) - warp (fibers) direction SpecificHeat=cGEWarp(T) elseif(MaterialID.eq.3004) then c * Glass-fiber reinforced epoxy (G10/G11 class) - normal direction SpecificHeat=cGENormal(T) elseif(MaterialID.eq.3005) then c * Polyimide (Kapton(R)) SpecificHeat=cPolyimide(T) c ==== superconductors ================================================= elseif(MaterialID.eq.4001) then c * Niobium-Titanium (Nb-47.5%Ti) call GetStandardVals(MaterialID,Tc0M,Bc20M,C0, & p,q,n,nu,Ca1,Ca2,emax,e0a) SpecificHeat=cNbTi(T,B, & Tc0m,Bc20m,nu) elseif(MaterialID.eq.4002) then c * Niobium-Tin (Nb3Sn) - ITER Jc parameterization call GetStandardVals(MaterialID,Tc0M,Bc20M,C0, & p,q,n,nu,Ca1,Ca2,emax,e0a) SpecificHeat=cNb3Sn(T,B,eps, & Tc0m,Bc20m,nu,Ca1,Ca2,emax,e0a) elseif(MaterialID.eq.4003) then c * Niobium-Alluminium (Nb3Al) call GetStandardVals(MaterialID,Tc0M,Bc20M,C0, & p,q,n,nu,Ca1,Ca2,emax,e0a) SpecificHeat=cNb3Al(T,B,eps) elseif(MaterialID.eq.4004) then c * Magnesium-diborure (MgB2) call GetStandardVals(MaterialID,Tc0M,Bc20M,C0, & p,q,n,nu,Ca1,Ca2,emax,e0a) SpecificHeat=cMgB2(T,B,eps) elseif(MaterialID.eq.4101) then c * BSCCO-2212 call GetStandardVals(MaterialID,Tc0M,Bc20M,C0, & p,q,n,nu,Ca1,Ca2,emax,e0a) SpecificHeat=cBSCCO2212(T,B,angle,eps) elseif(MaterialID.eq.4102) then c * BSCCO-2223 call GetStandardVals(MaterialID,Tc0M,Bc20M,C0, & p,q,n,nu,Ca1,Ca2,emax,e0a) SpecificHeat=cBSCCO2223(T,B,angle,eps) elseif(MaterialID.eq.4103) then c * YBCO-123 call GetStandardVals(MaterialID,Tc0M,Bc20M,C0, & p,q,n,nu,Ca1,Ca2,emax,e0a) SpecificHeat=cYBCO123(T,B,angle,eps) c ==== unknown material ID ============================================= else write(6,*) 'INTERNAL ERROR - unknown material ID:',MaterialID SpecificHeat=0.0 endif c * return end c ###################################################################### real function CriticalTemperature(MaterialID,B,angle,eps) c ###################################################################### c # c # Critical temperature of superconductors c # implicit none c * integer MaterialID real B,angle,eps c * real TcNbTi,TcNb3Sn,TcNb3Al,TcMgB2 real TcBSCCO2212,TcBSCCO2223,TcYBCO123 c * real Tc0m,Bc20m,C0,p,q,n,nu,Ca1,Ca2,emax,e0a c ==== superconductors ================================================= if(MaterialID.eq.4001) then c * Niobium-Titanium (Nb-47.5%Ti) call GetStandardVals(MaterialID,Tc0M,Bc20M,C0, & p,q,n,nu,Ca1,Ca2,emax,e0a) CriticalTemperature=TcNbTi(B, & Tc0m,Bc20m,nu) elseif(MaterialID.eq.4002) then c * Niobium-Tin (Nb3Sn) - ITER Jc parameterization call GetStandardVals(MaterialID,Tc0M,Bc20M,C0, & p,q,n,nu,Ca1,Ca2,emax,e0a) CriticalTemperature=TcNb3Sn(B,eps, & Tc0m,Bc20m,nu,Ca1,Ca2,emax,e0a) elseif(MaterialID.eq.4003) then c * Niobium-Alluminium (Nb3Al) call GetStandardVals(MaterialID,Tc0M,Bc20M,C0, & p,q,n,nu,Ca1,Ca2,emax,e0a) CriticalTemperature=TcNb3Al(B,eps) elseif(MaterialID.eq.4004) then c * Magnesium-diborure (MgB2) call GetStandardVals(MaterialID,Tc0M,Bc20M,C0, & p,q,n,nu,Ca1,Ca2,emax,e0a) CriticalTemperature=TcMgB2(B,eps) elseif(MaterialID.eq.4101) then c * BSCCO-2212 call GetStandardVals(MaterialID,Tc0M,Bc20M,C0, & p,q,n,nu,Ca1,Ca2,emax,e0a) CriticalTemperature=TcBSCCO2212(B,angle,eps) elseif(MaterialID.eq.4102) then c * BSCCO-2223 call GetStandardVals(MaterialID,Tc0M,Bc20M,C0, & p,q,n,nu,Ca1,Ca2,emax,e0a) CriticalTemperature=TcBSCCO2223(B,angle,eps) elseif(MaterialID.eq.4103) then c * YBCO-123 call GetStandardVals(MaterialID,Tc0M,Bc20M,C0, & p,q,n,nu,Ca1,Ca2,emax,e0a) CriticalTemperature=TcYBCO123(B,angle,eps) c ==== unknown material ID ============================================= else write(6,*) 'ERROR - unknown SC material ID:',MaterialID CriticalTemperature=0.0 endif c * return end c ###################################################################### real function CriticalField(MaterialID,T,angle,eps) c ###################################################################### c # c # Critical field of superconductors c # implicit none c * integer MaterialID real T,angle,eps c * real BcNbTi,BcNb3Sn,BcNb3Al,BcMgB2 real BcBSCCO2212,BcBSCCO2223,BcYBCO123 c * real Tc0m,Bc20m,C0,p,q,n,nu,Ca1,Ca2,emax,e0a c ==== superconductors ================================================= if(MaterialID.eq.4001) then c * Niobium-Titanium (Nb-47.5%Ti) call GetStandardVals(MaterialID,Tc0M,Bc20M,C0, & p,q,n,nu,Ca1,Ca2,emax,e0a) CriticalField=BcNbTi(T, & Tc0m,Bc20m,nu) elseif(MaterialID.eq.4002) then c * Niobium-Tin (Nb3Sn) - ITER Jc parameterization call GetStandardVals(MaterialID,Tc0M,Bc20M,C0, & p,q,n,nu,Ca1,Ca2,emax,e0a) CriticalField=BcNb3Sn(T,eps, & Tc0m,Bc20m,nu,Ca1,Ca2,emax,e0a) elseif(MaterialID.eq.4003) then c * Niobium-Alluminium (Nb3Al) call GetStandardVals(MaterialID,Tc0M,Bc20M,C0, & p,q,n,nu,Ca1,Ca2,emax,e0a) CriticalField=BcNb3Al(T,eps) elseif(MaterialID.eq.4004) then c * Magnesium-diborure (MgB2) call GetStandardVals(MaterialID,Tc0M,Bc20M,C0, & p,q,n,nu,Ca1,Ca2,emax,e0a) CriticalField=BcMgB2(T,eps) elseif(MaterialID.eq.4101) then c * BSCCO-2212 call GetStandardVals(MaterialID,Tc0M,Bc20M,C0, & p,q,n,nu,Ca1,Ca2,emax,e0a) CriticalField=BcBSCCO2212(T,eps) elseif(MaterialID.eq.4102) then c * BSCCO-2223 call GetStandardVals(MaterialID,Tc0M,Bc20M,C0, & p,q,n,nu,Ca1,Ca2,emax,e0a) CriticalField=BcBSCCO2223(T,eps) elseif(MaterialID.eq.4103) then c * YBCO-123 call GetStandardVals(MaterialID,Tc0M,Bc20M,C0, & p,q,n,nu,Ca1,Ca2,emax,e0a) CriticalField=BcYBCO123(T,eps) c ==== unknown material ID ============================================= else write(6,*) 'ERROR - unknown SC material ID:',MaterialID CriticalField=0.0 endif c * return end c ###################################################################### real function CriticalCurrentDensity(MaterialID,T,B,angle,eps) c ###################################################################### c # c # Critical current density of superconductors c # implicit none c * integer MaterialID real T,B,angle,eps c * real JcNbTi,JcNb3Sn,JcNb3Al,JcMgB2 real JcBSCCO2212,JcBSCCO2223,JcYBCO123 c * real Tc0m,Bc20m,C0,p,q,n,nu,Ca1,Ca2,emax,e0a c ==== superconductors ================================================= if(MaterialID.eq.4001) then c * Niobium-Titanium (Nb-47.5%Ti) call GetStandardVals(MaterialID,Tc0M,Bc20M,C0, & p,q,n,nu,Ca1,Ca2,emax,e0a) CriticalCurrentDensity=JcNbTi(T,B, & Tc0m,Bc20m,C0,p,q,n,nu) elseif(MaterialID.eq.4002) then c * Niobium-Tin (Nb3Sn) - ITER Jc parameterization call GetStandardVals(MaterialID,Tc0M,Bc20M,C0, & p,q,n,nu,Ca1,Ca2,emax,e0a) CriticalCurrentDensity=JcNb3Sn(T,B,eps, & Tc0m,Bc20m,C0,p,q,nu,Ca1,Ca2,emax,e0a) elseif(MaterialID.eq.4003) then c * Niobium-Alluminium (Nb3Al) call GetStandardVals(MaterialID,Tc0M,Bc20M,C0, & p,q,n,nu,Ca1,Ca2,emax,e0a) CriticalCurrentDensity=JcNb3Al(T,B,eps) elseif(MaterialID.eq.4004) then c * Magnesium-diborure (MgB2) call GetStandardVals(MaterialID,Tc0M,Bc20M,C0, & p,q,n,nu,Ca1,Ca2,emax,e0a) CriticalCurrentDensity=JcMgB2(T,B,eps) elseif(MaterialID.eq.4101) then c * BSCCO-2212 call GetStandardVals(MaterialID,Tc0M,Bc20M,C0, & p,q,n,nu,Ca1,Ca2,emax,e0a) CriticalCurrentDensity=JcBSCCO2212(T,B,angle,eps) elseif(MaterialID.eq.4102) then c * BSCCO-2223 call GetStandardVals(MaterialID,Tc0M,Bc20M,C0, & p,q,n,nu,Ca1,Ca2,emax,e0a) CriticalCurrentDensity=JcBSCCO2223(T,B,angle,eps) elseif(MaterialID.eq.4103) then c * YBCO-123 call GetStandardVals(MaterialID,Tc0M,Bc20M,C0, & p,q,n,nu,Ca1,Ca2,emax,e0a) CriticalCurrentDensity=JcYBCO123(T,B,angle,eps) c ==== unknown material ID ============================================= else write(6,*) 'ERROR - unknown SC material ID:',MaterialID CriticalCurrentDensity=0.0 endif c * return end c ###################################################################### real function CurrentSharing(MaterialID,B,angle,eps,Jop) c ###################################################################### c # c # Current sharing temperature of superconductors c # implicit none c * integer MaterialID real B,angle,eps,Jop c * real TcsNbTi,TcsNb3Sn,TcsNb3Al,TcsMgB2 real TcsBSCCO2212,TcsBSCCO2223,TcsYBCO123 c * real Tc0m,Bc20m,C0,p,q,n,nu,Ca1,Ca2,emax,e0a c ==== superconductors ================================================= if(MaterialID.eq.4001) then c * Niobium-Titanium (Nb-47.5%Ti) call GetStandardVals(MaterialID,Tc0M,Bc20M,C0, & p,q,n,nu,Ca1,Ca2,emax,e0a) CurrentSharing=TcsNbTi(B,Jop, & Tc0m,Bc20m,C0,p,q,n,nu) elseif(MaterialID.eq.4002) then c * Niobium-Tin (Nb3Sn) - ITER Jc parameterization call GetStandardVals(MaterialID,Tc0M,Bc20M,C0, & p,q,n,nu,Ca1,Ca2,emax,e0a) CurrentSharing=TcsNb3Sn(B,eps,Jop, & Tc0m,Bc20m,C0,p,q,nu,Ca1,Ca2,emax,e0a) elseif(MaterialID.eq.4003) then c * Niobium-Alluminium (Nb3Al) call GetStandardVals(MaterialID,Tc0M,Bc20M,C0, & p,q,n,nu,Ca1,Ca2,emax,e0a) CurrentSharing=TcsNb3Al(B,eps,Jop) elseif(MaterialID.eq.4004) then c * Magnesium-diborure (MgB2) call GetStandardVals(MaterialID,Tc0M,Bc20M,C0, & p,q,n,nu,Ca1,Ca2,emax,e0a) CurrentSharing=TcsMgB2(B,eps,Jop) elseif(MaterialID.eq.4101) then c * BSCCO-2212 call GetStandardVals(MaterialID,Tc0M,Bc20M,C0, & p,q,n,nu,Ca1,Ca2,emax,e0a) CurrentSharing=TcsBSCCO2212(B,angle,eps,Jop) elseif(MaterialID.eq.4102) then c * BSCCO-2223 call GetStandardVals(MaterialID,Tc0M,Bc20M,C0, & p,q,n,nu,Ca1,Ca2,emax,e0a) CurrentSharing=TcsBSCCO2223(B,angle,eps,Jop) elseif(MaterialID.eq.4103) then c * YBCO-123 call GetStandardVals(MaterialID,Tc0M,Bc20M,C0, & p,q,n,nu,Ca1,Ca2,emax,e0a) CurrentSharing=TcsYBCO123(B,angle,eps,Jop) c ==== unknown material ID ============================================= else write(6,*) 'ERROR - unknown SC material ID:',MaterialID CurrentSharing=0.0 endif c * return end c ###################################################################### subroutine GetStandardVals(MaterialID,Tc0M,Bc20M,C0, & p,q,n,nu,Ca1,Ca2,emax,e0a) c ###################################################################### c # c # Fitting constants for superconductors scaling c # implicit none integer MaterialID real Tc0m,Bc20m,C0,p,q,n,nu,Ca1,Ca2,emax,e0a c * Niobium-Titanium (Nb-47.5%Ti) real Tc0NbTi,Bc20NbTi,C0NbTi real pNbTi,qNbTi,nNbTi,nuNbTi c * common /NbTiData/ Tc0NbTi,Bc20NbTi,C0NbTi, & pNbTi,qNbTi,nNbTi,nuNbTi c * Niobium-Tin (Nb3Sn) - ITER Jc parameterization real Tc0Nb3Sn,Bc20Nb3Sn,C0Nb3Sn real pNb3Sn,qNb3Sn,nuNb3Sn real Ca1Nb3Sn,Ca2Nb3Sn,emaxNb3Sn,e0aNb3Sn c * common /Nb3SnData/ Tc0Nb3Sn,Bc20Nb3Sn,C0Nb3Sn, & pNb3Sn,qNb3Sn,nuNb3Sn, & Ca1Nb3Sn,Ca2Nb3Sn,emaxNb3Sn,e0aNb3Sn c * Niobium-Alluminium (Nb3Al) c * Magnesium-diborure (MgB2) c * BSCCO-2212 c * BSCCO-2223 c * YBCO-123 c * dummy values Tc0M = 0.0 Bc20M = 0.0 C0 = 0.0 p = 0.0 q = 0.0 n = 0.0 nu = 0.0 Ca1 = 0.0 Ca2 = 0.0 emax = 0.0 e0a = 0.0 c ==== superconductors ================================================= if(MaterialID.eq.4001) then c * Niobium-Titanium (Nb-47.5%Ti) Tc0M = Tc0NbTi Bc20M = Bc20NbTi C0 = C0NbTi p = pNbTi q = qNbTi n = nNbTi nu = nuNbTi elseif(MaterialID.eq.4002) then c * Niobium-Tin (Nb3Sn) - ITER Jc parameterization Tc0M = Tc0Nb3Sn Bc20M = Bc20Nb3Sn C0 = C0Nb3Sn p = pNb3Sn q = qNb3Sn nu = nuNb3Sn Ca1 = Ca1Nb3Sn Ca2 = Ca2Nb3Sn emax = emaxNb3Sn e0a = e0aNb3Sn elseif(MaterialID.eq.4003) then c * Niobium-Alluminium (Nb3Al) elseif(MaterialID.eq.4004) then c * Magnesium-diborure (MgB2) elseif(MaterialID.eq.4101) then c * BSCCO-2212 elseif(MaterialID.eq.4102) then c * BSCCO-2223 elseif(MaterialID.eq.4103) then c * YBCO-123 c ==== unknown material ID ============================================= else write(6,*) 'ERROR - unknown SC material ID:',MaterialID endif return end