Opened 7 months ago

Last modified 5 months ago

#203 accepted Defect

inconsistency / bug in verttransform_gfs.f90

Reported by: shachinger Owned by: pesei
Priority: major Milestone: FLEXPART 10
Component: FP coding/compilation Version: FLEXPART 10.2
Keywords: Cc:

Description (last modified by pesei)

Dear all,

in FLEXPART 9.2 I stumbled upon what is most probably a bug, and it is still present in the FLEXPART git dev branch.

Comparing verttransform.f90 (now seems to be verttransform_ecmwf.f90) to verttransform_gfs.f90, around line 500, one notices pieces of code which probably should be identical, but they aren't:

for ECMWF it looks like:


     if (vv(nx/2-1,0,iz,n).lt.0.) then
        ddpol=atan(uu(nx/2-1,0,iz,n)/ &
             vv(nx/2-1,0,iz,n))+xlonr
      else if (vv(nx/2-1,0,iz,n).gt.0.) then
        ddpol=pi+atan(uu(nx/2-1,0,iz,n)/ &
             vv(nx/2-1,0,iz,n))+xlonr

(+ + xlonr)

whereas for GFS:


    if(vv(nx/2-1,0,iz,n).lt.0.) then
        ddpol=atan(uu(nx/2-1,0,iz,n)/vv(nx/2-1,0,iz,n))+xlonr
     elseif (vv(nx/2-1,0,iz,n).gt.0.) then
        ddpol=pi+atan(uu(nx/2-1,0,iz,n)/vv(nx/2-1,0,iz,n))-xlonr


(+ - xlonr)

I would thus propose changes as you can see in the attached picture (i.e. changing to "+ +" in the GFS version, and modifying the infinity case to be consistent with both approaches to the limit).

http://shaching.userweb.mwn.de/Screenshot_20180824_181601.png

Unfortunately, I am neither an atmospheric transport expert nor do I have an idea anymore why I fixed it this way (I looked into that like several months ago, and I think I did a comparison with corresponding code pieces in FLEXTRA).

However, I think I write this here now as "as is" and some more expert people maybe check and fix this. Thanks very much!

Stephan


contact: http://shaching.userweb.mwn.de

Change History (3)

comment:1 Changed 7 months ago by shachinger

Now, looking at the changes I did back then again, it seems also that my modification to the infinity case in verttransform.f90 (ECMWF) version may fix some bug there. Please check the consistency of all these infinity cases. Thanks!

Stephan

comment:2 Changed 7 months ago by pesei

  • Component changed from FP physics/numerics to FP coding/compilation
  • Description modified (diff)
  • Milestone set to FLEXPART 10
  • Summary changed from inconsitency/bug in verttransform_gfs.f90 to inconsistency / bug in verttransform_gfs.f90

Many thanks, we'll look at it!

comment:3 Changed 5 months ago by pesei

  • Owner set to pesei
  • Status changed from new to accepted
Note: See TracTickets for help on using tickets.
hosted by ZAMG