; szss96_param.pro -- translated by f2idl ; using argument information from param.f and param_f.c ; and documentation information from param.f ;+ ; NAME: ; szss96_param ; ; PURPOSE: ; Return the default parameters ; CALLING SEQUENCE: ; szss96_param,KM_OUT,IYELLE,MQCO,IZHU,RCH4X0,CH4NE,RCO,P00,TSUR0,DT,ITIME,EPSTCR ; ; OUTPUTS: ; ; KM_OUT - number of layers ; IYELLE - flag. IYELLE=1 => thin limit; IYELLE=2 => opaque effect ; MQCO - flag. MQCO=0 => QCO=0; MQCO=1 => CO cooling included ; IZHU - flag. IZHU=0 => no V-V; IZHU=1 => with V-V transitions; for 3.3 mu band ; RCH4X0 - CH4 volume mixing ratio at surface ; CH4NE - mass mixing ratio of CH4 falls exponentially ; RCO - CO volume mixing ratio ; P00 - fixed surface pressure in Pascal ; TSUR0 - fixed surface temperature ; DT - time interval in seconds ; ITIME - total steps in time integration = 60, 180, 360, 450 ; EPSTCR - criterion for converged temperature variation ; : ; ; PHILOSOPHY: ; It is better to write code that writes code than to write code ;- PRO szss96_param,KM_OUT,IYELLE,MQCO,IZHU,RCH4X0,CH4NE,RCO,P00,TSUR0,DT,ITIME,EPSTCR ; -------------------- This function name fcn = 'szss96_param' ; -------------------- assign parameters (including dimensions) KM = 106 LM = 5 ;------------------------- ; setup the output variables that will be passed to the fortran ; routine KM_OUT = 0L IYELLE = 0L MQCO = 0L IZHU = 0L RCH4X0 = 0.d CH4NE = 0.d RCO = 0.d P00 = 0.d TSUR0 = 0.d DT = 0.d ITIME = 0L EPSTCR = 0.d ;------------------------- ; check all variables if n_params() ne 12 then begin print,'szss96_param: wrong number of arguments' return endif if size(KM_OUT,/type) ne 3 then begin print,'szss96_param: KM_OUT of wrong data type' return endif if size(KM_OUT,/n_dim) ne 0 then begin print,'szss96_param: KM_OUT of wrong n_dim' return endif if size(IYELLE,/type) ne 3 then begin print,'szss96_param: IYELLE of wrong data type' return endif if size(IYELLE,/n_dim) ne 0 then begin print,'szss96_param: IYELLE of wrong n_dim' return endif if size(MQCO,/type) ne 3 then begin print,'szss96_param: MQCO of wrong data type' return endif if size(MQCO,/n_dim) ne 0 then begin print,'szss96_param: MQCO of wrong n_dim' return endif if size(IZHU,/type) ne 3 then begin print,'szss96_param: IZHU of wrong data type' return endif if size(IZHU,/n_dim) ne 0 then begin print,'szss96_param: IZHU of wrong n_dim' return endif if size(RCH4X0,/type) ne 5 then begin print,'szss96_param: RCH4X0 of wrong data type' return endif if size(RCH4X0,/n_dim) ne 0 then begin print,'szss96_param: RCH4X0 of wrong n_dim' return endif if size(CH4NE,/type) ne 5 then begin print,'szss96_param: CH4NE of wrong data type' return endif if size(CH4NE,/n_dim) ne 0 then begin print,'szss96_param: CH4NE of wrong n_dim' return endif if size(RCO,/type) ne 5 then begin print,'szss96_param: RCO of wrong data type' return endif if size(RCO,/n_dim) ne 0 then begin print,'szss96_param: RCO of wrong n_dim' return endif if size(P00,/type) ne 5 then begin print,'szss96_param: P00 of wrong data type' return endif if size(P00,/n_dim) ne 0 then begin print,'szss96_param: P00 of wrong n_dim' return endif if size(TSUR0,/type) ne 5 then begin print,'szss96_param: TSUR0 of wrong data type' return endif if size(TSUR0,/n_dim) ne 0 then begin print,'szss96_param: TSUR0 of wrong n_dim' return endif if size(DT,/type) ne 5 then begin print,'szss96_param: DT of wrong data type' return endif if size(DT,/n_dim) ne 0 then begin print,'szss96_param: DT of wrong n_dim' return endif if size(ITIME,/type) ne 3 then begin print,'szss96_param: ITIME of wrong data type' return endif if size(ITIME,/n_dim) ne 0 then begin print,'szss96_param: ITIME of wrong n_dim' return endif if size(EPSTCR,/type) ne 5 then begin print,'szss96_param: EPSTCR of wrong data type' return endif if size(EPSTCR,/n_dim) ne 0 then begin print,'szss96_param: EPSTCR of wrong n_dim' return endif ;------------------------- ; Find root directory for library tname findpro, fcn, dirlist=dirlist, /noprint if dirlist[0] eq '' then root = '.' else root = dirlist[0] ;------------------------- ; CALL lib_name = root + '/szss96.so' entry_name = 'idl_ce_call_param_' RESULT = CALL_EXTERNAL( lib_name, ENTRY_NAME, $ KM_OUT, IYELLE, MQCO, IZHU, RCH4X0, CH4NE, RCO , P00,TSUR0, DT, ITIME, EPSTCR, $ /verbose ) end