FVCOM輸出自定義變數
大家新年好!今年年三十晚上時是美國的周四上午,由於是工作日,我們沒有看春晚,沒有吃年夜飯,只能用FVCOM和代碼來「守歲」。(這才配得上真正的敬業福!)
第4期,和大家一起交流一下如何使FVCOM輸出自定義的變數。
前幾日,針對第1期「FVCOM結果在GoogleEarth中的可視化」(點擊回顧),有網友問可否將畫圖使用的flooding_cell變數直接輸出到FVCOM的結果NetCDF文件中。所以,今天,在國內春節假期的最後一天,我們來討論些輕鬆一點的內容,插入關於FVCOM輸出自定義變數的問題。
目前,無論是output文件,還是restart和nesting,FVCOM是以NetCDF文件格式輸出的,這樣的好處是便於對結果數據識別和後處理。比如,我們可以直接使用VisIt軟體(https://wci.llnl.gov/simulation/computer-codes/visit/)快速出圖,查看某變數在各時次的分布狀況;或者,我們可以使用MATLAB進行數據處理,對結果數據進行分析。
我們可通過修改nml文件的NML_STARTUP和NML_NETCDF部分,來改變輸出文件的設置,各個設置的具體用法,請參考FVCOM Manual。
FVCOM已儘可能的設置各個與輸出相關的參數來滿足用戶的不同需要。然而,有時我們需要的變數仍沒有在結果文件中輸出,或者,我們需要的變數並沒有直接在FVCOM中計算。這時,我們就需要通過修改FVCOM代碼,自定義所需要的變數,計算並輸出該變數到結果文件。
我們就以第1期中的淹水模型為例,我們需要的變數是flooding_cell,即某時刻網格是否被淹沒,淹沒為1,未淹沒或非陸地網格為0,該變數應為1維變數,維長為三角形個數(nele)。flooding_cell並沒有在FVCOM中計算,我們給它的定義是該三角形本是陸地點,但被淹沒。我們可以通過已有變數H1和ISWETC來計算得到flooding_cell。具體分三步,即聲明,計算和輸出。
第一,聲明。在mod_wd.F中聲明flooding_cell變數為一維整型動態數組,並分配空間,賦初始值:
第二,計算。根據定義,flooding_cell為1需要有兩個條件:原本為陸地(H1
第三,輸出。修改都在mod_ncdio,F中的WET_DRY_FILE_OBJECT,分兩部分。首先,在開始部分給該變數分配空間:
然後,添加該變數的具體信息(維和對應輸出變數)和attribute:
至此,我們完成了輸出自定義變數flooding_cells的修改。重新編譯之後,FVCOM就會輸出該變數到NetCDF結果文件中。
2018-02-20


※羅曼蒂克發源史 昔日帝國今日歌
※為什麼家庭言論自由特別重要
TAG:全球大搜羅 |