Description |
- The CMake build scripts (cbuild_roms.csh and cbuild_roms.sh) were cleaned and made more compact:
- Several macro definitions were moved from the build scripts to the main CMakeLists.txt configuration file for simplicity
- The ROMS executable is now copied to the project directory instead of making a symbolic link. It should work even if ROMS were linked to the shared library (libROMS.{so|dylib}) because CMAKE_BUILD_WITH_INSTALL_RPATH is set to FALSE so that RPATH/RUNPATH are set correctly for both the build tree and installed locations of the ROMS executable.
- The macro definitions in Compilers/roms_compiler_flags.cmake and Compilers/roms_config.cmake were also updated.
- The OUTPUT_STATS option is introduced to report the statistics of every output variable into standard output to facilitate debugging. For example, we can have the following report:
WRT_HIS_NF90 - writing history fields (Index=1,1) in record = 33
- zeta: Min = -2.53787051E-01, Max = 2.21499656E-01, CheckSum = 8935
- ubar: Min = -1.34311554E-01, Max = 1.93256921E-01, CheckSum = 8568
- DU_avg1: Min = -2.07583251E+07, Max = 3.32353876E+07, CheckSum = 7365
- DU_avg2: Min = -2.07602196E+07, Max = 3.32406785E+07, CheckSum = 7461
- vbar: Min = -2.15736568E-01, Max = 1.94236573E-01, CheckSum = 8406
- DV_avg1: Min = -3.37735448E+07, Max = 1.84199170E+07, CheckSum = 7265
- DV_avg2: Min = -3.37768757E+07, Max = 1.84168047E+07, CheckSum = 7277
- u: Min = -3.54280363E-01, Max = 5.53737927E-01, CheckSum = 257209
- v: Min = -5.36308150E-01, Max = 4.26453121E-01, CheckSum = 251702
- omega: Min = -1.60468150E-03, Max = 1.36090242E-03, CheckSum = 255075
- w: Min = -2.31089520E-03, Max = 1.50154444E-03, CheckSum = 271803
- temp: Min = 1.11330213E+00, Max = 1.83344385E+01, CheckSum = 241650
- salt: Min = 3.19036203E+01, Max = 3.46896641E+01, CheckSum = 211601
- AKv: Min = 2.23812185E-05, Max = 8.12660236E-01, CheckSum = 272259
- AKt: Min = 1.00000000E-05, Max = 9.92734690E-01, CheckSum = 273723
- AKs: Min = 1.00000000E-05, Max = 9.92734690E-01, CheckSum = 273723
- Pair: Min = 1.00743285E+03, Max = 1.02769252E+03, CheckSum = 6863
- Tair: Min = -2.08358809E+00, Max = 1.77220951E+01, CheckSum = 6496
- Uwind: Min = -1.45947707E+01, Max = 3.82034782E+00, CheckSum = 8050
- Vwind: Min = -7.43046612E+00, Max = 1.32450908E+01, CheckSum = 6425
- shflux: Min = -1.26168950E-04, Max = 1.21942551E-05, CheckSum = 8438
- ssflux: Min = -1.55420481E-05, Max = 2.02108689E-06, CheckSum = 8850
- latent: Min = -5.21229738E-05, Max = 5.96354770E-06, CheckSum = 9261
- sensible: Min = -4.84698719E-05, Max = 7.84890317E-06, CheckSum = 8970
- lwrad: Min = -3.46309283E-05, Max = -1.61819579E-06, CheckSum = 9208
- evaporation: Min = -9.84070050E-06, Max = 8.59023387E-05, CheckSum = 8691
- rain: Min = -7.05555578E-07, Max = 4.68687525E-04, CheckSum = 8526
- EminusP: Min = -4.72947771E-07, Max = 6.06640234E-08, CheckSum = 8707
- swrad: Min = 0.00000000E+00, Max = 6.02349409E-05, CheckSum = 8724
- sustr: Min = -5.49541550E-04, Max = 3.78055345E-05, CheckSum = 8639
- svstr: Min = -9.05397457E-05, Max = 3.54286819E-04, CheckSum = 8133
As a consequence, all the calls to nf_fwrite2d, nfwrite3d, and nf_fwrite4d were modified to include the variable metadata index in its fourth argument:
!
! Write out tracer type variables.
!
DO itrc=1,NT(ng)
IF (Hout(idTvar(itrc),ng)) THEN
scale=1.0_dp
gtype=gfactor*r3dvar
status=nf_fwrite3d(ng, model, HIS(ng)%ncid, idTvar(itrc), &
& HIS(ng)%Tid(itrc), &
& HIS(ng)%Rindex, gtype, &
& LBi, UBi, LBj, UBj, 1, N(ng), scale, &
# ifdef MASKING
& GRID(ng) % rmask, &
# endif
& OCEAN(ng) % t(:,:,:,NOUT,itrc))
IF (FoundError(status, nf90_noerr, __LINE__, MyFile)) THEN
IF (Master) THEN
WRITE (stdout,20) TRIM(Vname(1,idTvar(itrc))), &
& HIS(ng)%Rindex
END IF
exit_flag=3
ioerror=status
RETURN
END IF
END IF
END DO
WARNING: Notice the additional fourth argument idTvar(itrc) to nf_fwrite3d.
- The metadata file varinfo.yaml was updated to include ROMS geometry variables used in def_info.F and wrt_info.F. I should have done this a long time ago. For example, when the file is created, it reports its statistics when OUTPUT_STATS is activated:
DEF_HIS_NF90 - creating history file, Grid 01: wc13_fwd_20040103_outer0.nc
- h: Min = 7.80292502E+01, Max = 5.19952300E+03, CheckSum = 7704
- f: Min = 7.27220522E-05, Max = 1.08086034E-04, CheckSum = 8151
- pm: Min = 3.11708295E-05, Max = 4.03430084E-05, CheckSum = 7924
- pn: Min = 2.69947206E-05, Max = 2.69947206E-05, CheckSum = 9405
- lon_rho: Min = -1.34000000E+02, Max = -1.16000000E+02, CheckSum = 4984
- lat_rho: Min = 3.00000000E+01, Max = 4.80000000E+01, CheckSum = 5282
- lon_u: Min = -1.33833333E+02, Max = -1.16166667E+02, CheckSum = 4914
- lat_u: Min = 3.00000000E+01, Max = 4.80000000E+01, CheckSum = 5004
- lon_v: Min = -1.34000000E+02, Max = -1.16000000E+02, CheckSum = 4628
- lat_v: Min = 3.01666667E+01, Max = 4.78333333E+01, CheckSum = 5206
- lon_psi: Min = -1.33833333E+02, Max = -1.15833333E+02, CheckSum = 4563
- lat_psi: Min = 3.01666667E+01, Max = 4.78333333E+01, CheckSum = 4932
- angle: Min = 1.45444412E-03, Max = 2.16172340E-03, CheckSum = 7606
- mask_rho: Min = 1.00000000E+00, Max = 1.00000000E+00, CheckSum = 2660
- mask_u: Min = 1.00000000E+00, Max = 1.00000000E+00, CheckSum = 2520
- mask_v: Min = 1.00000000E+00, Max = 1.00000000E+00, CheckSum = 2470
- mask_psi: Min = 1.00000000E+00, Max = 2.00000000E+00, CheckSum = 2340
WARNING:
- All the ROMS test repository's CMake build scripts were updated.
- The metadata file varinfo.yaml was updated, and the changes are required for this and future versions of ROMS.
|
Description |
We completed the transition of ROMS to GitHub. We have been working on this for the last couple of months.
The GitHub ROMS repositories are at https://github.com/myroms. For more information and instructions on ROMS framework source code, please visit https://github.com/myroms/roms/wiki.
The GitHub version becomes the official git repository for downloading, updating, improving, and correcting defects/bugs in the ROMS source code. Also, it is the version used in the ROMS-JEDI interface hosted at https://github.com/JCSDA-internal, which is currently private.
We will update the git and svn repositories hosted at https://www.myroms.org for some time, but encourage the User to transition to GitHub, which gives you access to the feature branches.
We still highly recommend users registering at https://www.myroms.org and set up a username and password to access the **ROMS forum**, email notifications for bugs/updates, technical support from the community, trac code maintenance history, tutorials, workshops, and publications. The User's ROMS forum has over 24, 000 posts with helpful information. Technical support is limited to registered users.
We do not provide user technical support, usage, or answers in GitHub.
If you have a GitHub username, we suggest following us by checking on the follow/unfollow button in the myroms repositories, so you are notifiedGitHub dashboard about changes and updates to the GitHub ROMS repositories.
You could also check on the watch/unwatch button to receive notifications about changes to any ROMS repositories. You can customize what type of notification you would like to receive.
Your support will help us secure funding from US funding agencies for continued ROMS framework management and development. It is not much to ask since ROMS is freely distributed.
|