• 沒有找到結果。

第三章 DRAIN-2DX/CALREL 偶合程式之驗算及測試

第三節 DRAIN-2DX/CALREL 銜接程式之改進

由前知,本計畫第一年度已排除萬難完成上述兩程式之初步偶合,

但偶合並非十分完善,因此針對兩程式間之銜接程式仍需加以架構化改 寫,以增進其使用便利性。本節以下將敘述兩程式之偶合概念及主要銜 接程式之改進。

3.3.1 DRAIN-2DX/CALREL 程式之偶合概念

由前知,本計畫中 DRAIN-2DX 用來模擬整體 RC 建築物之受震行 為,並提供評估其破壞程度 (可由狀態函數 (3-1) 式來表示) 所需之輸入 值;而 CALREL 程式於給定之破壞事件 (亦由狀態函數表示) 及輸入各相 關變數之變異性資料下,可計算出其對應之破壞機率。因此,顯然銜接 兩程式的窗口為 CALREL 程式中撰寫狀態函數之使用者所定義副程式組 (USER.FOR),其範例檔可參照圖 3-3。其中某狀態函數 gi 之值由相關變數

x ~

而定,若其為

~ x

之顯式,則可直接撰寫成

~ ) }

~ , (

{ g

i

x t = 0

型式;但

若為

x ~

之隱式,則另需 CALL 副程式計算 (此即為 DRAIN2DX 之例)。圖 3-4 顯示了兩程式原始之偶合架構示意圖,其中偶合的最大工作乃在使兩程 式之變數能正確地傳值,細節包括兩程式相關變數之名稱辨識及輸入檔 之類同化、部份副程式之改寫等。所有物理參數之輸入 (含 DRAIN2DX 者) 原始構想為皆由 CALREL 程式控制。第一年度因時間有限,所以上述所 需加 CALL 之副程式並非撰寫得十分完善,因此有下一小節之修正。

Subroutine ugfun(g,x,tp,ig) Implicit real*8 (a-h,o-z) Dimension x(1),tp(1)

ccccc user-defined limit-state function(s) ~) }

~, (

{gi x t =0

ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc return

MOIS 891016-4 Final Report 3-10

end

subroutine udgx(dgx,x,tp,ig) implicit real*8 (a-h,o-z) dimension x(1),dgx(1),tp(1)

ccccc gradient(s) of user-defined limit-state function(s) ccccccccccccccc ~)/ ~}

~, (

{∂gi x tx

ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc return

end

subroutine udd(x,par,sg,ids,cdf,pdf,bnd,ib) implicit real*8 (a-h,o-z)

dimension x(3),par(4),bnd(2)

ccccc user-defined distribution density function(s) {fX~(~x)}

ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc return

end

subroutine usize

common /blkrel/ mtot,np,ia(50000) ccccc define array dimension mtot=50000

return end

圖 3-3. CALREL 程式中 USER.FOR 之範例檔

Program control

CALREL

Analysis routines FORM SORM DIRS MONT

SENS BOUN PNET Problem definition

User-defined routines

UGFUN UDGX

UDD Interface

Program control

GRAV STAT ACCN FORN MODE Problem definition DRAIN-2DX

Data input Data input

Analysis routines

SPEC 2D element

routines Truss, Beam-Column, Panel, etc.

Similarization

圖 3-4. CALREL 程式與 DRAIN-2DX 程式之偶合架構示意圖

MOIS 891016-4 Final Report 3-11

3.3.2 主要銜接程式之改進

3-5 顯示了修正之 USER.FOR,其中已加上了副程式 CD2DX,其 主要目的為連結 DRAIN2DX 程式及提供其所需輸入值 (

x ~ t

~ ,

),並傳值回

真 正 所 需 定 義 整 體 RC 結 構 體 損 壞 程 度 ( 即 新 定 義 之 狀 態 函 數

}

~ )

~ ,

~ , (

{ g

i

y x t = 0

) 之參數值 (

~ y

,如節點位移或構件降伏數等)。考慮此 情形及兩程式不同之輸入格式,兩程式偶合架構之現況圖如圖 3-6 所 示,並說明如下:

1) DRAIN2DX 程式運算所需之控制指令、構件座標資料及相關參數編號 仍依其使用手冊規定格式寫成輸入檔 ;

2) 而其他構件材特性及載重資料屬於隨機變數

x ~

,其機率分佈資料

(類別及其對應之機率參數) 由CALREL 程式控制其輸入;

3) 增寫副程式 TIN,其功能為將上述 DRAIN2DX 程式固定之輸入檔加上 CALREL 程式一次計算產生之

x ~

值合成 DRAIN2DX 程式運算所需之 輸入檔 DRAIN.INP。副程式 TIN 現大致可處理塑性鉸梁柱 (Type 02) 及 簡單連接 (Type 04) 元素,以及靜力、動力及地表加速度加載。至於 第二章所建立之有效考量土壤動力效應地表運動模式所產生之地 表加速度歷時曲線亦可於此副程式加以改寫完成;

4) 增寫副程式 TOUT,其功能為將 DRAIN2DX 程式計算所得之結果輸出 檔,尤其是以 *GENDISP 指令所計算得之節點位移組合或其他相關 者,製造成上CALREL 程式中 USER.FOR 定義該結構的狀態函數 gi 所 需之

~ y

值,再傳回USER.FOR 以計算 gi 值。

Subroutine ugfun(g,x,tp,ig) Implicit real*8 (a-h,o-z) Dimension x(1),tp(1), y(1) Ccccc call DRAIN2DX to get ~y

Call Cd2dx (x,tp,y)

Ccccc user-defined limit-state function(s)

MOIS 891016-4 Final Report 3-12

ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc return

end

subroutine udgx(dgx,x,tp,ig) implicit real*8 (a-h,o-z) dimension x(1),dgx(1),tp(1)

ccccc gradient(s) of user-defined limit-state function(s) ccccccccccccccc ~)/ ~}

~, (

{∂gi x tx

ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc return

end

subroutine udd(x,par,sg,ids,cdf,pdf,bnd,ib) implicit real*8 (a-h,o-z)

dimension x(3),par(4),bnd(2)

ccccc user-defined distribution density function(s) {fX~(~x)}

ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc return

end

subroutine usize

common /blkrel/ mtot,np,ia(50000) ccccc define array dimension mtot=50000 Data input

Data input

Analysis routines

SPEC 2D element

routines Truss, Beam-Column, Panel, etc.

TIN TOUT

DRAIN.INP OUTPUT like Gendisp DRAIN.INP

MOIS 891016-4 Final Report 3-13

相關文件