Generate Forcing Files

📅 2026/8/5 17:28:12
Generate Forcing Files
Grab the entire region’s stations (https://coastwatch.glerl.noaa.gov/marobs/stations.lmd) or for a specific lake “stations-superior.lmd”. And save it to the target path. The address might change. Please see the screenshot below.The station lmd files can be found in the following link: https://drive.google.com/drive/u/0/folders/1Kod6ECcryiDvwRIcrT4RfLRuxD7KfAbKIn the directory (target path) where you want to create the forcing, edit the file “metedit.in” and update the.lmd file and the glsea-temps.dat files on lines 2, 3 and 4. Also edit the year in lines 5 and 6, and then change line 8 to the appropriate # of hours (8760 in normal years, 8784 in leap years).metedit.in shows like below:# leave first line blankstations_superior.lmd2008.lmd glsea-temps2008_1024.dat e2008001002008001 00 IYR,IJD,IHR1. DTWIND8784NHRS2SELECTMODThe *lmd file for line 3 can be downloaded here: https://coastwatch.glerl.noaa.gov/AnnualLMD/(now have been updated to https://apps.glerl.noaa.gov/marobs/lmd/)The glsea-temps files for line 4 can be downloaded here: https://coastwatch.glerl.noaa.gov/ftp/glsea/avgtemps/1995/glsea-temps1995_1024.dat (Note: remove all the lines of headers)wgethttps://coastwatch.glerl.noaa.gov/ftp/glsea/avgtemps/1995/glsea-temps1995_1024.datCompile metedit-crmod.fmodule load intel/2016.1 ifort-ometedit-crmod.exe metedit-crmod.f ./metedit-crmod.exemetedit.inmetedit.outThis program will create both an output file (metedit.out) and an adjusted meteorology file (metobs.dat)edit “interp.in” to update the year (Line 5), and the # of hours on Line 7 (8761 for normal years, 8785 for leap years)superior_grd.dat metobs.dat e2008001002008001 00 IYR,IJD,IHR1. DTWIND8785NHRSCompile interpun.fThe original interpun.f has some issue on reading grid file. Some modification has been made. Please see below.!Chuyan2026/04/06CHARACTER(LEN100):: linegrd INTEGER :: pos!Chuyan2026/04/06..... C READ ELEMENT DESCRIPTION SECTION!READ(1,(15X,I6))NS!ori!READ(1,(15X,i6))NEL!ori!Chuyan2026/04/06C ---------- READ NODE / CELL NUMBER ---------- C Node Number READ(1,(A))linegrd posINDEX(linegrd,)READ(linegrd(pos1:),*)NS C Cell Number READ(1,(A))linegrd posINDEX(linegrd,)READ(linegrd(pos1:),*)NEL!Chuyan2026/04/06Check the grid dat file, when it contains 5 columns,ode Number6106Cell Number115091617121621382614283158431use:1READ(1,*)(N,(NV(I,J),I1,3),N,J1,NEL)!oriwhen it contains 4 columns,Node Number1133Cell Number201911133112911312113311311132312644165276use:1READ(1,*)(N,(NV(I,J),I1,3),J1,NEL)!Chuyan2026/04/06module load intel/2016.1 icc-cstack.c stackpair.c volume.c ifort-O-ointerpun-new.exe interpun.f stack.o stackpair.o volume.oqsub interpun.shrename *_uvw.dat to *_wnd.datEdit your “*_forcing.nml” file (superior_forcing.nml in example) with appropriate dates, file locations, and file names (note: this assumes wind speed is being used instead of stress)NML_SURFACE_FORCE INPUT_DIR./, OUTPUT_DIR./, INPUT_FILEe200800100, INPUT_FILE_TYPEbinary speed, OUTPUT_FILEe200800100_forcing_marobs.nc, OUTPUT_FILE_TYPEunstructured, GRID_FILEsuperior_grd.dat, GRID_FILE_UNITSdegrees, PROJECTION_REFERENCEnone, DATE_FORMATYMD, START_DATE2008-01-01 00:00:00, TIMEZONEUTC, END_DATE2009-01-01 00:00:00, OUT_INTERVALseconds3600.0, ZERO_TIME2008-01-01 00:00:00, DATE_REFERENCE1858-11-17 00:00:00, /Make sure there is “xsurfaceforce” executable file in the present directory.To generate “xsurfaceforce”, first compile the fvcom code (/pexue5/chuyan/generate_forcing/forcing/code_xsurfaceforce), then compile (/pexue5/chuyan/generate_forcing/forcing/code_xsurfaceforce/input/surface_forcing).qsub xsurfaceforce.shThe new generated nc file is the target forcing input file.