Created
May 19, 2020 10:31
-
-
Save bennyistanto/952e3cc42ba59fae43b81d32d895efb8 to your computer and use it in GitHub Desktop.
Calculate radiation
This file contains hidden or 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
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | |
' Program untuk menghitung Radiasi | |
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | |
Private Sub cmdCal_Click() | |
Dim LAT As Double | |
Dim lon As Double | |
Dim MONTH As Double | |
Dim hari As Integer | |
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | |
'Calculate Julian Date | |
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | |
Dim bulan(20), bfeb As Integer | |
bulan(1) = 31 | |
'Bulan kabisat | |
If Val(frmRad.cboTahun.Text) Mod 4 = 0 Then bfeb = 29 Else bfeb = 28 | |
bulan(2) = bulan(1): bulan(3) = bulan(2) + bfeb: bulan(4) = bulan(3) + 31 | |
bulan(5) = bulan(4) + 30: bulan(6) = bulan(5) + 31: bulan(7) = bulan(6) + 30 | |
bulan(8) = bulan(7) + 31: bulan(9) = bulan(8) + 31: bulan(10) = bulan(9) + 30 | |
bulan(11) = bulan(10) + 31: bulan(12) = bulan(11) + 30 | |
'Isi Combo box | |
With cboBulan | |
If .Text = "January" Then MONTH = 0 | |
If .Text = "February" Then MONTH = 1 | |
If .Text = "March" Then MONTH = 2 | |
If .Text = "April" Then MONTH = 3 | |
If .Text = "May" Then MONTH = 4 | |
If .Text = "June" Then MONTH = 5 | |
If .Text = "July" Then MONTH = 6 | |
If .Text = "August" Then MONTH = 7 | |
If .Text = "September" Then MONTH = 8 | |
If .Text = "October" Then MONTH = 9 | |
If .Text = "November" Then MONTH = 10 | |
If .Text = "December" Then MONTH = 11 | |
End With | |
If MONTH = 0 Then JulianDate = Val(frmRad.cboTanggal.Text) Else JulianDate = bulan(MONTH) + Val(frmRad.cboTanggal.Text) | |
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | |
Const pi = 3.1415926, gamma = 66.1, lhv = 2.454, dair = 1.204, cp = 1010 | |
Const p0 = 1.000412351, p1 = -1.073807306, wind = 9 | |
hari = JulianDate | |
plank = 6.626 * (10 ^ -34) | |
chy = 3 * (10 ^ 8) | |
bolztman = 5.67 * (10 ^ -8) | |
lon = Val(txtLon.Text) | |
LAT = Val(txtLat.Text) | |
altitude = Val(txtAlt.Text) | |
'Deklarasi parameter | |
If LAT < 0 Then lag = 102 Else lag = 285 | |
tlag = Abs(LAT) / 2 | |
Tm1 = 10 - 0.45 * Abs(LAT) | |
Td = Tm1 * (0.015 * Abs(LAT) - 0.1) | |
b1 = 1.47 - 0.00518 * LAT - 0.00412 * lon - 0.000483 * altitude | |
a1 = 19.1 - 18.3 * b1 | |
a2 = 0.36 | |
b2 = -0.91 - 0.00111 * LAT + 0.0111 * lon | |
a3 = -0.321 - 0.00488 * LAT + 0.00763 * lon | |
b3 = 0.0143 - 0.0493 * a3 | |
b4 = 20.4 + 0.074 * LAT - 0.204 * lon | |
a4 = 0.0235 - 0.515 * b4 | |
b5 = 0.2 | |
a5 = -3.5 | |
'Panjang Hari | |
dekl = -23.4 * Cos(2 * pi * (hari + 10) / 365) | |
sinld = Sin(LAT * pi / 180) * Sin(dekl * pi / 180) | |
cosld = Cos(LAT * pi / 180) * Cos(dekl * pi / 180) | |
sinb = Sin(-0.833 * pi / 180) | |
arg = (sinb - sinld) / cosld | |
arccos = 2 * Atn(1) - Atn(arg / Sqr(1 - arg * arg)) | |
dlen = 24 / pi * arccos | |
sangot = 1440 / pi * 2 * (arccos * sinld + cosld * Sin(arccos)) * 0.042 | |
'Lama Penyinaran | |
nN = Rnd 'a3 + b3 | |
If nN < 0.05 Then nN = 0.05 | |
sunshine = nN * dlen | |
'Solar radiation : | |
solar = (a2 + b2 * sunshine / dlen) * sangot | |
txtRad.Text = solar | |
End Sub | |
Private Sub cmdClear_Click() | |
Unload Me | |
frmRad.Show | |
End Sub | |
Private Sub Form_Load() | |
'Posisi form ketika pertama kali muncul | |
Me.Height = 5145 | |
Me.Width = 5385 | |
cboTanggal.Clear: cboBulan.Clear: cboTahun.Clear | |
'Format isian tanggal | |
For i = 1 To 31 | |
cboTanggal.AddItem (i) | |
cboTanggal.Text = cboTanggal.List(0) | |
Next i | |
'Format isian bulan | |
With cboBulan | |
.AddItem ("January") | |
.AddItem ("February") | |
.AddItem ("March") | |
.AddItem ("April") | |
.AddItem ("May") | |
.AddItem ("June") | |
.AddItem ("July") | |
.AddItem ("August") | |
.AddItem ("September") | |
.AddItem ("October") | |
.AddItem ("November") | |
.AddItem ("December") | |
.Text = .List(5) | |
End With | |
'Format isian tahun | |
For j = 1998 To 2050 | |
cboTahun.AddItem (j) | |
cboTahun.Text = cboTahun.List(7) | |
Next j | |
End Sub |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment