passive tracer forcing file error

General scientific issues regarding ROMS

Moderators: arango, robertson

Post Reply
Message
Author
xmuliuy
Posts: 20
Joined: Fri Nov 02, 2012 3:25 pm
Location: xmu

passive tracer forcing file error

#1 Unread post by xmuliuy »

Hi all,I am using roms701 to add a passive tracer to my model.But the model can't find some requested variable in my forcing file.The log file output some messy code.
The log file shows unable to find requested variable ***,but I don't know which variable it is .
To run the model with passive tracer, which variable should I add to my forcing file ?
Hope you can help me.
thanks.

liuy
Attachments
unable to find requested variable
unable to find requested variable

User avatar
wilkin
Posts: 922
Joined: Mon Apr 28, 2003 5:44 pm
Location: Rutgers University
Contact:

Re: passive tracer forcing file error

#2 Unread post by wilkin »

In debugging these situations it can be helpful to review the order in which forcing data is processed in subroutine get_data.F

Doing this you will see that ROMS is somewhere around line 611 in get_data.F when it fails on you application. Your standard output suggests it successfully read the "passive tracers surface fluxes" for dye 01 before it failed.

So if you have more than one passive tracer, it probably failed while trying to read the second tracer surface flux.

If not, the next operation is to process the "passive tracers bottom fluxes" if you have not defined ANA_BPFLUX. If you have defined ANA_BPFLUX then that's not the problem.

The next data to be processed is open boundary data from the boundary netcdf file. If your run is requesting any data from netcdf for this purpose you should review this aspect of the configuration. e.g. if you have Flather/Chapman conditions, or boundary tracer nudging, ROMS will be trying to read those data at the point your run failed.

The last message to standard output is the list of files ROMS is scanning for these inputs. Check that these 3 files are the complete list you wanted to process. From the names I'm guessing none of them have boundary condition data.

If your configuration is not seeking boundary data, then the next input that get_data.F processes is 3-D climatology, and your file list includes "xmcur_02_frcclim36525.nc" which looks like it might be a 3-D climatology file.

The climatology variables ROMS will seek depend on what you are doing with them - possibly climatology nudging. If so, the actual variables required will be controlled by LnudgeTCLM in ocean.in. Perhaps you have a TRUE flag for the passive dye, but no passive dye in the netcdf file.

One further thing to check is that your varinfo.dat is current. This changes from time to time when I/O options are modified. You may be mishandling passive dye I/O if varinfo.dat is out of date.

In my experience varinfo.dat changes are almost always backward compatible, so there is little risk in updating.
John Wilkin: DMCS Rutgers University
71 Dudley Rd, New Brunswick, NJ 08901-8521, USA. ph: 609-630-0559 jwilkin@rutgers.edu

xmuliuy
Posts: 20
Joined: Fri Nov 02, 2012 3:25 pm
Location: xmu

Re: passive tracer forcing file error

#3 Unread post by xmuliuy »

Hi,Wilkin.
Thank you so much for your reply. It's very useful and specific.
Only one passive tracer in my model. And after defined ANA_BPFLUX,the messy code disappeared and the Model works.
I really appreciate your help,thanks a lot.

And i guess the messy code may comes from mod_ncparam.F, it gives the variable name of passive tracer surface flux (dye_01_sflux,if just one passive tracer),but no variable name of passive tracer bottom flux.so the messy code appears when the model need to read passive tracer bottom flux,and no variable name.

Code: Select all

!
!-----------------------------------------------------------------------
!  Set passive tracers surface flux metadata. The variable name is the
!  same as the basic tracer but with the _sflux suffix.
!-----------------------------------------------------------------------
!
      DO i=NAT+1,MT
        varid=varid+1
        IF (varid.gt.MV) THEN
          WRITE (stdout,60) MV, varid
          STOP
        END IF
        idTsur(i)=varid
        DO ng=1,Ngrids
          Fscale(varid,ng)=1.0_r8
          Iinfo(1,varid,ng)=r2dvar
        END DO
        WRITE (Vname(1,varid),'(a,a)')                                  &
     &        TRIM(ADJUSTL(Vname(1,idTvar(i)))), '_sflux'
        WRITE (Vname(2,varid),'(a,a)')                                  &
     &        TRIM(ADJUSTL(Vname(2,idTvar(i)))), ', surface flux'
        WRITE (Vname(3,varid),'(a,1x,a)')                               &
     &        TRIM(ADJUSTL(Vname(3,idTvar(i)))), 'meter second-1'
        WRITE (Vname(4,varid),'(a,a)')                                  &
     &        TRIM(Vname(1,varid)), ', scalar, series'
        WRITE (Vname(5,varid),'(a)')                                    &
     &        TRIM(ADJUSTL(Vname(5,idTvar(i))))
      END DO

Post Reply