Unbelievable I thought that I have seen everything in this forum but this one is a first. If you look any dictionary for
analytic(al) you will get something like:
Mathematics:
Subjected to, or capable of being subjected to a methodology involving algebra or other methods of mathematical analysis.
Having parametric equations that represent analytic functions.
This does not imply a quick and dirty way to read a file in ROMS. You have a very poor understanding of parallelism and ROMS coarse grain parallelization which allows both shared-memory and distributed-memory paradigms. Use NetCDF forcing files. If you cannot create a NetCDF file to do the same thing, I don't expect you to use ROMS correctly. You need to learn first how to create and manipulate NetCDF files before running your realistic application.
All the analytical routines (
ana_xxx) in ROMS are called inside a
parallel region This implies that you
cannot have a simple
READ or
WRITE in such routines. A very special algorithm and/or architecture is required for parallel IO. The same goes for
PRINT statements; they also need a special code structure to avoid incorporating parallel bugs or weird behavior.
Currently, all the IO in ROMS is serial. I have been making incremental changes to the code to allow parallel IO in the future but it also required a very special handling and NetCDF/HDF libraries.
The other day an user was asking why do we need to set
ANA_STFLUX or
ANA_SMFLUX. He said that his application was simple and didn't required such surface fluxes.
Any application in ROMS requires surface and bottom boundary conditions to the governing equations. This has nothing to do with simplicity. The fact that there is no surface fluxes imply that they are zero. The user still need to prescribe this zero flux to ROMS. By the way,
Code: Select all
stflx(:,:,itemp)=0.0_r8
sustr(:,:)=0.0_r8
svstr(:,:)=0.0_r8
can be considered as an analytical expression.