Public Member Functions | |
integer function | compute_ncol (nb_ntr, nb_ion, nb_eml) |
Compute ncol parameter. More... | |
integer function | compute_nligne_hd (nb_ntr, nb_ion, nb_eml, ncol) |
Compute nligne_hd parameter. More... | |
Public Attributes | |
integer | ipos_date = 3 |
integer | ipos_posref = 11 |
integer | ipos_proxy = 20 |
integer | ipos_planet = 57 |
integer | ipos_stuff = 30 |
integer | ipos_proc |
integer | ipos_mass_ion |
integer | ipos_mass_ntr |
integer | ncol_geom = 18 |
integer | ipos_alt = 1 |
integer | ipos_curv = 2 |
integer | ipos_surf = 3 |
integer | ipos_vol = 4 |
integer | ipos_dip = 5 |
integer | ipos_longeo = 6 |
integer | ipos_latgeo = 7 |
integer | ipos_tmag = 8 |
integer | ipos_lonmag = 9 |
integer | ipos_latmag = 10 |
integer | ipos_rmag = 11 |
integer | ipos_kiangle = 12 |
integer | ipos_bmag = 13 |
integer | ipos_stl = 14 |
integer | ipos_f_i1 = 15 |
integer | ipos_f_i2 = 16 |
integer | ipos_vconv_nord = 17 |
integer | ipos_vconv_est = 18 |
integer | ncol_spc = 9 |
integer | ipos_ni = 1 |
integer | ipos_ui = 2 |
integer | ipos_tpi = 3 |
integer | ipos_tti = 4 |
integer | ipos_xpi = 5 |
integer | ipos_xti = 6 |
integer | ipos_pi = 9 |
integer | ncol_ntr = 4 |
integer | ipos_tn = 1 |
integer | ipos_un = 2 |
integer | ipos_vn = 3 |
integer | ipos_wn = 4 |
integer function version_1::compute_ncol | ( | integer, intent(in) | nb_ntr, |
integer, intent(in) | nb_ion, | ||
integer, intent(in) | nb_eml | ||
) |
Compute ncol parameter.
ncol = ncol_geom+(nb_ion+2)*ncol_spc+nb_ntr+ncol_ntr
integer function version_1::compute_nligne_hd | ( | integer, intent(in) | nb_ntr, |
integer, intent(in) | nb_ion, | ||
integer, intent(in) | nb_eml, | ||
integer, intent(in) | ncol | ||
) |
Compute nligne_hd parameter.
nligne_hd = 2
integer version_1::ipos_date = 3 |
Parameters which never change across all IPIM versions:
buffer( 1) = nb_alt
buffer( 2) = ncol
buffer( 9) = nb_ion
buffer(10) = nb_neutre
ncol = see version_1.compute_ncol function
nligne_hd = 2
nligne = nb_alt + nligne_hd
nb_version = 160.000+nb_ion*100+nb_ntr
longbuf = nligne*ncol
longrec = itype*longbuf
Date: sim_data%date(1:6)
buffer( 3) = time%an
buffer( 4) = time%mo
buffer( 5) = time%jo
buffer( 6) = time%he
buffer( 7) = time%mi
buffer( 8) = time%se
integer version_1::ipos_mass_ion |
Coded on 2nd line of buffer (from ncol+1)
ipos_mass_ion = ncol+1
ipos_mass_ntr = ipos_mass_ion+nb_ion+1
buffer(ipos_mass_ion:ipos_mass_ion+nb_ion-1) = sim_data%mass_ion
buffer(ipos_mass_ntr:ipos_mass_ntr+nb_ntr-1) = sim_data%mass_ntr
Name_ion, name_ntr, name_eml not present.
integer version_1::ipos_planet = 57 |
integer version_1::ipos_posref = 11 |
Reference position: sim_data%pos_ref(1:9)
buffer(11) = pos_ref(i_tube)%alt
buffer(12) = pos_ref(i_tube)%longeo
buffer(13) = pos_ref(i_tube)%latgeo
buffer(14) = pos_ref(i_tube)%tmag
buffer(15) = pos_ref(i_tube)%lonmag
buffer(16) = pos_ref(i_tube)%latmag
buffer(17) = pos_tube(1,i_tube)%kiangle
buffer(18) = pos_ref(i_tube)%Bmag
buffer(19) = pos_ref(i_tube)%L
integer version_1::ipos_proc |
integer version_1::ipos_proxy = 20 |
integer version_1::ipos_stuff = 30 |
Other stuff: sim_data%stuff(1:27)
buffer(30) = dTinf
buffer(31) = dUinf
buffer(32) = cofo
buffer(33) = cofh
buffer(34) = cofn
buffer(35) = Fe_tube(i_tube)
buffer(36) = Ee_tube(i_tube)
buffer(37) = Fi_tube(i_tube)
buffer(38) = Ei_tube(i_tube)
buffer(39) = Jtop
buffer(40) = sig_pedersen_s_tube(i_tube)
buffer(41) = sig_hall_s_tube(i_tube)
buffer(42) = sig_para_s_tube(i_tube)
buffer(43) = Jtop
buffer(44) = sig_pedersen_n_tube(i_tube)
buffer(45) = sig_hall_n_tube(i_tube)
buffer(46) = sig_para_n_tube(i_tube)
buffer(47) = ddp
buffer(48) = E_tube(1,i_tube)
buffer(49) = E_tube(2,i_tube)
buffer(50) = E_tube(3,i_tube)
buffer(51) = pos_tube(1,i_tube)%vconv_nord
buffer(52) = pos_tube(1,i_tube)%vconv_est
buffer(53) = div_veq_t
buffer(54) = pot
buffer(55) = CET_tube_s(i_tube)
buffer(56) = CET_tube_n(i_tube)
integer version_1::ncol_geom = 18 |
buffer((nligne_hd*ncol+1):longbuf)=transfer(transpose(profils),profils(1,1),ncol*nb_alt)
ncol_geom = 18
profils(:,ipos_alt ) = pos_tube(1:nb_alt,i_tube)%alt
profils(:,ipos_curv ) = pos_tube(1:nb_alt,i_tube)%curv
profils(:,ipos_surf ) = pos_tube(1:nb_alt,i_tube)%surf
profils(:,ipos_vol ) = pos_tube(1:nb_alt,i_tube)%vol
profils(:,ipos_dip ) = pos_tube(1:nb_alt,i_tube)%dip
profils(:,ipos_longeo ) = pos_tube(1:nb_alt,i_tube)%longeo
profils(:,ipos_latgeo ) = pos_tube(1:nb_alt,i_tube)%latgeo
profils(:,ipos_tmag ) = pos_tube(1:nb_alt,i_tube)%tmag
profils(:,ipos_lonmag ) = pos_tube(1:nb_alt,i_tube)%lonmag
profils(:,ipos_latmag ) = pos_tube(1:nb_alt,i_tube)%latmag
profils(:,ipos_Rmag ) = pos_tube(1:nb_alt,i_tube)%Rmag
profils(:,ipos_kiangle ) = pos_tube(1:nb_alt,i_tube)%kiangle
profils(:,ipos_Bmag ) = pos_tube(1:nb_alt,i_tube)%Bmag
profils(:,ipos_stl ) = pos_tube(1:nb_alt,i_tube)%stl
profils(:,ipos_F_i1 ) = pos_tube(1:nb_alt,i_tube)%F_i1/to_loc
profils(:,ipos_F_i2 ) = pos_tube(1:nb_alt,i_tube)%F_i2/to_loc
profils(:,ipos_vconv_nord ) = pos_tube(1:nb_alt,i_tube)%vconv_nord
profils(:,ipos_vconv_est ) = pos_tube(1:nb_alt,i_tube)%vconv_est
integer version_1::ncol_ntr = 4 |
ncol_ntr = 4
profils(:,ipos_nn) = neutre(isp)%N(1:nb_alt,i_tube) forall isp in [1,nb_ntr]
profils(:,ipos_tn) = neutre(indn_O )%T(1:nb_alt,i_tube)
profils(:,ipos_un) = neutre(indn_O )%U(1:nb_alt,i_tube)
profils(:,ipos_vn) = neutre(indn_O )%V(1:nb_alt,i_tube)
profils(:,ipos_wn) = neutre(indn_O )%W(1:nb_alt,i_tube)
integer version_1::ncol_spc = 9 |
ncol_spc = 9
For all isp in [1,nb_ion]:
profils(:,ipos_ni ) = ion(isp)%n(1:nb_alt,i_tube)*N_o
profils(:,ipos_ui ) = ion(isp)%U(1:nb_alt,i_tube)*C_o(min(isp,nb_spc))
profils(:,ipos_tpi) = ion(isp)%Tp(1:nb_alt,i_tube)*T_o
profils(:,ipos_tti) = ion(isp)%Tt(1:nb_alt,i_tube)*T_o
profils(:,ipos_xpi) = ion(isp)%xp(1:nb_alt,i_tube)
profils(:,ipos_xti) = ion(isp)%xt(1:nb_alt,i_tube)
nothing
nothing
profils(:,ipos_pi ) = ion(isp)%P(1:nb_alt,i_tube)*N_o/to or (if isp==indi_e) ion(isp)%P(1:nb_alt,i_tube)*N_o/to*P_o/N_o