program cepasc2bin ! Version: 18-aout-2008 !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! conversion de fichiers CEPAM .bin <--> .asc c !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc implicit none include './cepam.inc' integer pjac1,pm_Sc0,pmt_Sc0,pxchims,plnp_S,pqt_S,pn_d,pn_f parameter (pjac1=pne*(pm_S*(pn-1)+pr_S), pm_Sc0=pm_S*pn+2*pnzc, & & pmt_Sc0=pm_Sc0+2*pmc_S, & & pxchims=(pm_S*pn+2*pnzc)*pmc_S*pnelem, & & plnp_S=(pn-1)*pm_S+pr_S, pqt_S=pn*pm_S+2*pr_S, & & pn_d=pn+pn_noy+pndis, pn_f=pn+pn_noy) ! Parametres principaux du modele real*8 age,dt,mplanet,mnoyau,p_ice,omega,alpha & & ,mas(10),yz(10) integer nel(5),neqs,m_S,mc_S,r_S,nbelem character*3 nom_elem(pnelem) character*31 modele logical en_masse,ppt ! Variables pour interpolation de l'enveloppe en t (0) et t+dt integer n,knot_S,n0,knot_S0 real*8 bp_S(pjac1),q(pn),qt_S(pqt_S), & & lnp_S(plnp_S),lnt_S(plnp_S),r2_S(plnp_S),l23_S(plnp_S), & & mu_S(plnp_S),q0(pn),qt_S0(pqt_S) ! Variables pour interpolation de la composition chimique en t et t+dt integer n_Sc,nr_Sc,knot_Sc,n_Sc0,nr_Sc0,knot_Sc0 real*8 m_Sc(pm_Sc0),mt_Sc(pmt_Sc0),mr_Sc(pmt_Sc0), & & xchims_Sc(pxchims), & & m_Sc0(pm_Sc0),mt_Sc0(pmt_Sc0),mr_Sc0(pmt_Sc0), & & xchims_Sc0(pxchims) ! Variables pour interpolation des dS/dt integer ms_S,n_Ss,nr_Ss,knot_Ss,n_Ss0,nr_Ss0,knot_Ss0 real*8 m_Ss(pn),mt_Ss(pn+2*pm_S),mr_Ss(pn),dsdt_Ss(pn*pm_S), & & m_Ss0(pn),mt_Ss0(pn+2*pm_S),mr_Ss0(pn),dsdt_Ss0(pn*pm_S) ! Variables pour interpolation des potentiels dus a la rotation integer nd_f,nx_f,m_f,nr_f,knot_f,id_f(0:pndis+1) real*8 x_f(pn_f),xt_f(pn_f+pmc_S*(pndis+2)),xr_f(pn_f), & & s_f(pn_d*pmc_S*2),pot_f(2,pn_d),rplanet ! Variables propres a cepasc2bin.f integer irep,silence,irwab1,irwab2 character*31 fic_in,fic_out integer*4 leng data silence/0/ !---------------------------------------------------------------------- write(*,*)'Entrer 0 -> conversion .bin -> .basc' write(*,*)' 1 -> .basc -> .bin' read(*,*)irep write(*,*)'Nom du fichier (ex: expls/Exo1/exo100)?' read(*,'(a)')fic_in fic_out=fic_in if (irep.eq.0) then fic_in=fic_in(:leng(fic_in))//'.bin' fic_out=fic_out(:leng(fic_out))//'.basc' irwab1=1 !read bin irwab2=4 !write asc else if (irep.eq.1) then fic_in=fic_in(:leng(fic_in))//'.basc' fic_out=fic_out(:leng(fic_out))//'.bin' irwab1=3 !read asc irwab2=2 !write bin endif write(*,*)'Lecture du fichier ',fic_in call rwbin(irwab1,silence,fic_in,age, & & mplanet,mnoyau,p_ice,omega,alpha,nbelem,nel, & & mas,yz,m_S,r_S,mc_S,neqs,n,en_masse,ppt, & & m_Sc0,mt_Sc0,mr_Sc0,n_Sc0,nr_Sc0,knot_Sc0,xchims_Sc0, & & lnp_S,lnt_S,r2_S,l23_S,mu_S,q0,qt_S0,knot_S0,n0, & & m_Sc,mt_Sc,mr_Sc,n_Sc,nr_Sc,knot_Sc,xchims_Sc, & & dt,bp_S,q,qt_S,knot_S,nom_elem, & & nd_f,nx_f,m_f,nr_f,knot_f,id_f, & & x_f,xt_f,xr_f,pot_f,s_f, & & ms_S,n_Ss,nr_Ss,knot_Ss,m_Ss,mt_Ss,mr_Ss,dsdt_Ss, & & n_Ss0,nr_Ss0,knot_Ss0,m_Ss0,mt_Ss0,mr_Ss0,dsdt_Ss0, & & rplanet) write(*,*)'Ecriture du fichier ',fic_out call rwbin(irwab2,silence,fic_out,age, & & mplanet,mnoyau,p_ice,omega,alpha,nbelem,nel, & & mas,yz,m_S,r_S,mc_S,neqs,n,en_masse,ppt, & & m_Sc0,mt_Sc0,mr_Sc0,n_Sc0,nr_Sc0,knot_Sc0,xchims_Sc0, & & lnp_S,lnt_S,r2_S,l23_S,mu_S,q0,qt_S0,knot_S0,n0, & & m_Sc,mt_Sc,mr_Sc,n_Sc,nr_Sc,knot_Sc,xchims_Sc, & & dt,bp_S,q,qt_S,knot_S,nom_elem, & & nd_f,nx_f,m_f,nr_f,knot_f,id_f, & & x_f,xt_f,xr_f,pot_f,s_f, & & ms_S,n_Ss,nr_Ss,knot_Ss,m_Ss,mt_Ss,mr_Ss,dsdt_Ss, & & n_Ss0,nr_Ss0,knot_Ss0,m_Ss0,mt_Ss0,mr_Ss0,dsdt_Ss0, & & rplanet) end