Q: How to use FindMaxium for a list of parameters? How to use FindMaxium for a list of parameters?  In the following code, if I assign single values to z and Rth, it works fine.   How do I do the same for a list?
ClearAll["Global`*"]
a = 310; 
b = 300;  
c = 0.1; 
d = 6; 
z = {1/300, 2/300, 3/300, 4/300, 5/300};
R = 6; 
Rth = {1, 2, 3, 4, 5}
S = Sqrt[z*R/Rth]

FindMaximum[{S^2*(X - Y)^2*Rload/(R + Rload)^2, -( a - X)/c + (X - Y)/Rth + S^2*X*(X - Y)/(R + 
Rload) - 0.5*S^2*Rload*(X - Y)^2/(R + Rload)^2 == 0, (Y - b)/d - (X - Y)/Rth - S^2*Y*(X - 
Y)/(R + Rload) - 0.5*S^2*Rload*(X - Y)^2/(R + Rload)^2 == 0, X > 300, Y > 300, Rload > 0}, 
{X, Y, Rload}]


A: Update Add CSV export
result = {#~Join~fm[Sequence @@ #]} & /@ values // 
    Map[Last, #, {4}] & // Map[Flatten] // 
  Prepend[{"z", "Rth", "Maximum", "X", "Y", "Rload"}]

Export["result.csv", result]


Expanding on @MarcoB's comment
a = 310;
b = 300;
c = 0.1;
d = 6;
R = 6;

fm[z_, Rth_] := 
 With[{S = Sqrt[z*R/Rth]}, 
  FindMaximum[{S^2*(X - Y)^2*
     Rload/(R + Rload)^2, -(a - X)/c + (X - Y)/Rth + 
      S^2*X*(X - Y)/(R + Rload) - 
      0.5*S^2*Rload*(X - Y)^2/(R + Rload)^2 == 
     0, (Y - b)/d - (X - Y)/Rth - S^2*Y*(X - Y)/(R + Rload) - 
      0.5*S^2*Rload*(X - Y)^2/(R + Rload)^2 == 0, X > 300, Y > 300, 
    Rload > 0}, {X, Y, Rload}]]

z = {1/300, 2/300, 3/300, 4/300, 5/300};
Rth = {1, 2, 3, 4, 5};
values = Tuples[{z, Rth}];

{#, fm[Sequence @@ #]} & /@ values // Flatten[#, 1] &


A: ClearAll["Global`*"]
a = 310;
b = 300;
c = 1/10;
d = 6;
R = 6;
S = Sqrt[z*R/Rth];

Prepend[
  data = ReverseSortBy[
    Table[
      Flatten[
       {z, Rth, {#[[1]], {X, Y, Rload} /. #[[2]]} &@
         FindMaximum[{
           S^2*(X - Y)^2*Rload/(R + Rload)^2,
           -(a - X)/c + (X - Y)/Rth + S^2*X*(X - Y)/(R + Rload) - 
             1/2*S^2*Rload*(X - Y)^2/(R + Rload)^2 == 0,
           (Y - b)/d - (X - Y)/Rth - S^2*Y*(X - Y)/(R + Rload) - 
             1/2*S^2*Rload*(X - Y)^2/(R + Rload)^2 == 0,
           X > 300, Y > 300, Rload > 0},
          {X, Y, Rload}]}],
      {z, {1/300, 2/300, 3/300, 4/300, 5/300}},
      {Rth, {1, 2, 3, 4, 5}}] //
     Flatten[#, 1] &,
    #[[3]] &],
  {"z", "Rth", "Maximum", "X", "Y", "Rload"}] //
 Grid[#, Frame -> All] &


