Scheduled Downtime
On Friday 21 April 2023 @ 5pm MT, this website will be down for maintenance and expected to return online the morning of 24 April 2023 at the latest

Obtaining the trajectory of a balloon


I'm planning to implement a function that would calculate the trajectory of a balloon, released from the ground at a certain coordinate. It should work during runtime.
I have the physical and mathematical outline of the function, but not sure where and how to start implementing the code since this is my first time working on the WRF code. Can you please give me a piece of educated advice on where and how to start coding this function? Which part of the code should I start looking at? Are there any function(s) that are already available and could help me start by copying them (such as pollutant dispersion)
Thanks in advance.
Last edited:
Probably you can use passive tracers in WRF to study balloon trajectory. To activate tracer option in WRF, please
set tracer_opt = 2. With this option on, when you run real.exe, you will have 8 arrays created in wrfinput file. These tracers are named tr17_[1-8]. To initialize these tracers, please modify the code "dyn_em/module_initialize_real.F", in which you could add a do loop that looks like (for the first array):

     DO j = jts, min(jde-1,jte)
         DO i = its, min(ide-1,ite)
              DO k  = 1,kte
                    IF (i .GE. 10 .AND. i.LE.20 .AND. j.GE.20 .AND. j.LE.30 .AND. k.KE.10 ) THEN
                    tracer(i,k,j,P_tr17_1) = 1
                    END IF
              END DO
         END DO
     END DO

Note that the passive tracer will not be involved in any phsyics process. They are
only advected horizontally and vertically. Also, there is no 'sink' and 'source' for the tracers.

Hope this is helpful for you.
Dear Dr. Chen,
Thanks for the answer. Indeed, the passive tracer would make a useful tool to trace a balloon. I will look further into that.
As far as I know, the passive tracer works with the assumption of zero mass particle, hence it does not involve inertial effects of the particle (as mentioned by @davegill in this thread). I'm interested in adding the simplified version of translational equations of motion. Can you suggest a practical way to code this? Even some directives about which files to modify would be helpful, based on your knowledge of the code structure.
Suppose no physics processes are involved in the tracer evolution, then only dynamics will affect its variation. In the translational equations of motion, I guess you need to add both driving force and resisting force, is this correct? Let me know if I am wrong. In WRF, the SUBROUTINE horizontal_pressure_gradient calculates pressure gradient force and yields wind tendencies. Probably you can follow the same approach to impose driving force and resisting force on tracers? Note that I am not an expert in the field of translational equations of motion, and the above ideas may not be correct. Hope someone in the community can provide more suggestions.
If you eventually make it work, I would appreciate that you can post your methods in the forum. Thanks in advance.