Last active
July 3, 2024 18:56
-
-
Save ckm3/5a4531e0268e78e9c444f5bc84cfe8c1 to your computer and use it in GitHub Desktop.
LC generator of WD code in Python version.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import fortranformat as ff | |
def generate_first_line(MPAGE=1, NREF=1, MREF=1, IFSMV1=1, IFSMV2=1, ICOR1=1, ICOR2=1, IF3B=0, LD1=-3, LD2=-2, KSPEV=0, | |
KSPOT=2, NOMAX=1, IFCGS=0, KTSTEP=0): | |
fortran_format = ff.FortranRecordWriter('8(I1,1X),2(I2,1X),4(I1,1X),I6') | |
return fortran_format.write( | |
[MPAGE, NREF, MREF, IFSMV1, IFSMV2, ICOR1, ICOR2, IF3B, LD1, LD2, KSPEV, KSPOT, NOMAX, IFCGS, KTSTEP]) + '\n' | |
def generate_second_line(JDPHS=2, HJD0=30979.347628, PZERO=12, DPDT=0.02, PSHIFT=0, DELPH=0.01156, NGA=1, STDEV=0, | |
NOISE=1, SEED=1384723): | |
fortran_format = ff.FortranRecordWriter('I1,F15.6,D17.10,D14.6,F10.4,F8.5,I3,D11.4,I2,F11.0') | |
return fortran_format.write([JDPHS, HJD0, PZERO, DPDT, PSHIFT, DELPH, NGA, STDEV, NOISE, SEED]) + '\n' | |
def generate_thrid_line(HJDST=30979.347628, HJDSP=30980.347628, HJDIN=0.100000, PHSTRT=-0.200000, PHSTOP=1, PHIN=0.01, | |
PHN=0.25, PHOBS=0.75, LSP=1, TOBS=1.014): | |
fortran_format = ff.FortranRecordWriter('F14.6,F15.6,F13.6,4F12.6,F10.4,I2,F8.4') | |
return fortran_format.write([HJDST, HJDSP, HJDIN, PHSTRT, PHSTOP, PHIN, PHN, PHOBS, LSP, TOBS]) + '\n' | |
def genereate_forth_line(MODE=2, IPB=0, IFAT1=1, IFAT2=1, N1=30, N2=30, PERR0=2.308469, DPERDT=0.00011, THE=0, | |
VUNIT=100): | |
fortran_format = ff.FortranRecordWriter('4I2,2I4,F13.6,D14.6,F8.5,F8.2') | |
return fortran_format.write([MODE, IPB, IFAT1, IFAT2, N1, N2, PERR0, DPERDT, THE, VUNIT]) + '\n' | |
def genereate_fifth_line(E=.2185, A=10.3, F1=2.9, F2=1.59, VGA=-0.099, XINCL=89.362, GR1=1, GR2=1, ABUNIN=0, Fspot1=1, | |
Fspot2=1): | |
fortran_format = ff.FortranRecordWriter('F6.5,D13.6,2F10.4,F10.4,F9.3,2F7.3,F7.2,2F10.4') | |
return fortran_format.write([E, A, F1, F2, VGA, XINCL, GR1, GR2, ABUNIN, Fspot1, Fspot2]) + '\n' | |
def genereate_sixth_line(TAVH=1.014, TAVC=0.8487, ALB1=1, ALB2=1, POTH=0.659, POTC=6.366, RM=0.7417, XBOL1=0.538, | |
XBOL2=0.658, YBOL1=0.174, YBOL2=0.142, DPCLOG=2.7324): | |
fortran_format = ff.FortranRecordWriter('F7.4,1X,F7.4,2F7.3,3D13.6,4F7.3,F8.5') | |
return fortran_format.write([TAVH, TAVC, ALB1, ALB2, POTH, POTC, RM, XBOL1, XBOL2, YBOL1, YBOL2, DPCLOG]) + '\n' | |
def genereate_seventh_line(A3B=0, P3B=32.78, XINC3B=76, E3B=0.160038, PERR3B=3.6376558, TC3B=44655.414831): | |
fortran_format = ff.FortranRecordWriter('D12.6,D14.7,F11.5,F9.6,F10.7,F17.8') | |
return fortran_format.write([A3B, P3B, XINC3B, E3B, PERR3B, TC3B]) + '\n' | |
def genereate_eighth_line(IBAND=7, HL=0.0010759, CL=0.000465577, XH=-0.029, XC=0.669, YH=0.726, YC=0.285, | |
EL3=0.1048e-4, OPSF=0, ZERO=8, FACTOR=1, WL=0.55, AEXTINC=0, CALIB=0.36895): | |
fortran_format = ff.FortranRecordWriter('I3,2D15.7,4F7.3,D12.4,D11.4,F8.3,F8.4,F10.6,F8.4,d12.5') | |
return fortran_format.write([IBAND, HL, CL, XH, XC, YH, YC, EL3, OPSF, ZERO, FACTOR, WL, AEXTINC, CALIB]) + '\n' | |
def write_to_infile(): | |
infile_list = [generate_first_line(), generate_second_line(), generate_thrid_line(), genereate_forth_line(), | |
genereate_fifth_line(), genereate_sixth_line(), genereate_seventh_line(), genereate_eighth_line(), | |
'150.'] | |
with open('../results/lcin.active', 'w') as infile: | |
infile.writelines(infile_list) | |
def main(): | |
write_to_infile() | |
if __name__ == '__main__': | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment