Page MenuHomec4science

COSOlver_create_input.m
No OneTemporary

File Metadata

Created
Wed, Mar 12, 21:59

COSOlver_create_input.m

function resfile = COSOlver_create_input(input)
% COSOlver_create_input creates a COSOlver input file fort.90 from matlab structure input
%
% Note : - The field of input should match the NAMELIST of fort.f90 read by COSolver
%
%
%
% Author : Baptiste J. Frei, SPC, December 2019
fprintf('Inputs : \n');
fprintf('------------ \n');
%struct2table(input)
% Output Format
formatToPrintFloat = '%.10f';
% Open/create file fort.f90
fileID = fopen('fort.90','w+'); % ... discard existing contents
fprintf(fileID,' ! COSOlver Input File created with create_input routine \n');
% Write BASIC
if isfield(input,'BASIC')
fprintf(fileID,'&BASIC \n');
% Get fieldnames of BASIC
BASIC_fields = fieldnames(input.BASIC);
for ibasic=1:length(BASIC_fields)
if ischar(input.BASIC.(BASIC_fields{ibasic}))
ToPrint = [BASIC_fields{ibasic},'=',input.BASIC.(BASIC_fields{ibasic})];
else
ToPrint = [BASIC_fields{ibasic},'=',...
num2str(input.BASIC.(BASIC_fields{ibasic}))];
end
fprintf(fileID,[ToPrint,'\n']);
end
fprintf(fileID,'/ \n');
else
error('BASIC is not a field ... ! Cannot create input file..')
end
%
fprintf(fileID,'\n');
%
% Write MODEL_PAR
if isfield(input,'MODEL_PAR')
fprintf(fileID,'&MODEL_PAR \n');
% Get fieldnames of MODEL_PAR
MODEL_PAR_fields = fieldnames(input.MODEL_PAR);
for imod=1:length(MODEL_PAR_fields)
if ischar(input.MODEL_PAR.(MODEL_PAR_fields{imod}))
ToPrint = [MODEL_PAR_fields{imod},'=',input.MODEL_PAR.(MODEL_PAR_fields{imod})];
else
ToPrint = [MODEL_PAR_fields{imod},'=',...
num2str(input.MODEL_PAR.(MODEL_PAR_fields{imod}))];
end
fprintf(fileID,[ToPrint,'\n']);
end
fprintf(fileID,'/ \n');
else
error('MODEL_PAR is not a field ... ! Cannot create input file..')
end
%
fprintf(fileID,'\n');
%
% Write OPERATOR_MODEL
if isfield(input,'OPERATOR_MODEL')
fprintf(fileID,'&OPERATOR_MODEL \n');
% Get fieldnames of OPERATOR_MODEL
OPERATOR_MODEL_fields = fieldnames(input.OPERATOR_MODEL);
for iop=1:length(OPERATOR_MODEL_fields)
if ischar(input.OPERATOR_MODEL.(OPERATOR_MODEL_fields{iop}))
ToPrint = [OPERATOR_MODEL_fields{iop},'=',input.OPERATOR_MODEL.(OPERATOR_MODEL_fields{iop})];
else
ToPrint = [OPERATOR_MODEL_fields{iop},'=',...
num2str(input.OPERATOR_MODEL.(OPERATOR_MODEL_fields{iop}))];
end
fprintf(fileID,[ToPrint,'\n']);
end
fprintf(fileID,'/ \n');
else
error('OPERATOR MODEL is not a field ... ! Cannot create input file..')
end
%
fclose(fileID);
fprintf(['Input file fort.f90 created succesfully in ',pwd,' \n']);
OPERATOR_MODEL = input.OPERATOR_MODEL;
BASIC = input.BASIC;
MODEL_PAR = input.MODEL_PAR;
% Constructs suffix for resfile
SUFFIX_resfileCei = ['Coll',...
'_GKE_', num2str(OPERATOR_MODEL.GKE),...
'_GKI_', num2str(OPERATOR_MODEL.GKI),...
'_ETEST_',num2str(OPERATOR_MODEL.ETEST),...
'_EBACK_',num2str(OPERATOR_MODEL.EBACK),...
'_Pmaxe_',num2str(BASIC.Pmaxe),...
'_Jmaxe_',num2str(BASIC.Jmaxe),...
'_Pmaxi_',num2str(BASIC.Pmaxi),...
'_Jmaxi_',num2str(BASIC.Jmaxi),...
'_pamaxx_',num2str(BASIC.pamaxx),...
'_tau_',num2str(MODEL_PAR.tau,'%0.4f'),...
'_mu_',num2str(MODEL_PAR.mu,'%0.4f')];
SUFFIX_resfileCie = ['Coll',...
'_GKE_', num2str(OPERATOR_MODEL.GKE),...
'_GKI_', num2str(OPERATOR_MODEL.GKI),...
'_ITEST_',num2str(OPERATOR_MODEL.ITEST),...
'_IBACK_',num2str(OPERATOR_MODEL.IBACK),...
'_Pmaxe_',num2str(BASIC.Pmaxe),...
'_Jmaxe_',num2str(BASIC.Jmaxe),...
'_Pmaxi_',num2str(BASIC.Pmaxi),...
'_Jmaxi_',num2str(BASIC.Jmaxi),...
'_pamaxx_',num2str(BASIC.pamaxx),...
'_tau_',num2str(MODEL_PAR.tau,'%0.4f'),...
'_mu_',num2str(MODEL_PAR.mu,'%0.4f')];
SUFFIX_resfileCaa = ['Coll',...
'_GKE_', num2str(OPERATOR_MODEL.GKE),...
'_GKI_', num2str(OPERATOR_MODEL.GKI),...
'_ESELF_',num2str(OPERATOR_MODEL.ESELF),...
'_ISELF_',num2str(OPERATOR_MODEL.ISELF),...
'_Pmaxe_',num2str(BASIC.Pmaxe),...
'_Jmaxe_',num2str(BASIC.Jmaxe),...
'_Pmaxi_',num2str(BASIC.Pmaxi),...
'_Jmaxi_',num2str(BASIC.Jmaxi),...
'_pamaxx_',num2str(BASIC.pamaxx)];
if( OPERATOR_MODEL.GKI || OPERATOR_MODEL.GKE)
SUFFIX_resfileCei = [SUFFIX_resfileCei,'_kperp_',num2str(MODEL_PAR.kperp,'%0.4f'),'.h5'];
SUFFIX_resfileCie = [SUFFIX_resfileCie,'_kperp_',num2str(MODEL_PAR.kperp,'%0.4f'),'.h5'];
SUFFIX_resfileCaa = [SUFFIX_resfileCaa,'_kperp_',num2str(MODEL_PAR.kperp,'%0.4f'),'.h5'];
else
SUFFIX_resfileCei = [SUFFIX_resfileCei,'.h5'];
SUFFIX_resfileCie = [SUFFIX_resfileCie,'.h5'];
SUFFIX_resfileCaa = [SUFFIX_resfileCaa,'.h5'];
end
resfile.resfileCei = ['ei_',SUFFIX_resfileCei];
resfile.resfileCie = ['ie_',SUFFIX_resfileCie] ;
resfile.resfileCaa = ['self_',SUFFIX_resfileCaa] ;
end % End function

Event Timeline