WET_DRY and temperature anomaly

Dear scholars,

  1. I plan to first adjust the parameters of the static approximation model to better carry out the non-static simulation plan. However, in the shallow coastal areas and the offshore regions, there is a problem of negative temperature.
  2. In my cpp.h, it is defined as:
  • define UV_HADV_TVD, UV_VADV_SPLINES, UV_MIX_S

  • define TS_HADV_WENO5 (TS_HADV_UP3 was also tried), TS_VADV_WENO5 (TS_VADV_C2 and TS_VADV_AKIMA were also tried), TS_MIX_S

  • define GLS_MIXING, GLS_KKL.

  1. I also referred to the modifications suggested by other scholars on the forum to reduce the order of the table bottom in compute_vert_tracer_fluxes.h, such as FC(i,1) and FC(i,N-1). However, I found that there was no improvement and the temperature would still become negative when the WET_DRY area turned into a land area. This led to the gradual accumulation of temperature anomalies as the calculation progressed, spreading from the shallow areas to the river interior and the nearshore waters. The minimum value could reach -100°C.
  2. I wonder if any scholar has relevant experience.
    Thank you for your reading!

In winter, when the ebb tide coincides with darkness, the shallow areas that were dry become rapidly cooled. When the tide rises again, the seawater flowing through the previously dry areas cools down. Although the daily solar radiation causes the seawater to warm up, over the course of a day, the average temperature of these areas often drops by 3°C. Over three months, this results in a temperature drop of 100°C (though this is absurd). Could it be that my mixed diffusion scheme is too weak? This causes the cooled seawater to rapidly decrease in temperature over time, and eventually the entire coastal waters become negative values.

can please share with me your cppdefs.h and cppdefs_dev.h . actually I want to see where this temperature drops in WENO_Z code. LIMIT_STFLX_COOLING :smiley:
Thank you!

Hello, I’m very glad to receive your reply.

  • I will attach my cppdefs.h file and cppdefs_dev.h file in the attachment. In the cppdefs.h file, I used the content within “define REGIONAL”. I will also attach my initial log file (croco1.txt), and attempt to turn off WET_DRY and modify GLS_MIX to LMD_MIX (file croco_1.txt). I found that after turning off the dry-wet grid, the speed would blow up very quickly. Moreover, since the cppdefs_dev.h file was not used during compilation, I did not modify it.

  • Now I will present my questions. The simulation starts on January 1, 2025. Due to the combined effect of tidal changes and night-time cooling, the area that becomes dry rapidly cools down at low tide, and it begins at 20:00 on January 2nd, 2025.
    fig1

Fig 1 Temperature display on January 2nd, 2025(The green area represents temperatures below 0 degrees Celsius)

fig2

Fig 2 U-directional flow velocity Display (It can be proved that the negative temperature region is the dew point (the blue area represents the dew point).)

  • As the tide keeps receding and the temperature drops, the area of negative temperature becomes larger and larger, and the area of the negative temperature water mass gradually expands to the inner part of the estuary. At this point, the temperature dropped to -45℃.

fig3

Fig 3 Temperature display on January 12th, 2025 (The green area represents temperatures below 0 degrees Celsius)

  • When the simulation reached February 20th, 2025, the cold water mass had expanded throughout the entire coastal waters, and the temperature had dropped to an astonishing -100°C. Here, I have a question: In the Croco model, why didn’t it report an error for such an extreme temperature? This is already inconsistent with the physical properties of the water body.
    fig4

Fig 4 Temperature display on February 20th, 2025 (The green area represents temperatures below 0 degrees Celsius)

  • The above are the simulated problems presented. At present, I still don’t know what the solution is. Such a temperature drop can be reduced to 2-3℃ within one day. Changing the vertical mixing schemes of GLS and LMD will provide a little improvement but not much.
  • I hope this can be helpful to you. Thank you again.
    Additional note: All the floor plans above are presented as the bottom floor.
    cppdefs.h (44.0 KB)
    cppdefs_dev.h (32.2 KB)
    croco_1.txt (171.4 KB)
    croco1.txt (1.8 MB)

Hi,
after this line add this and test it. (get_vbc.F line-417)

# ifdef SOLVE3D
#  ifdef TEMPERATURE
#   ifdef LIMIT_STFLX_COOLING
      cff1=-2.0_r8  ! your threshold to cooling
      DO j=JstrR,JendR
        DO i=IstrR,IendR
          cff2=stflx(i,j,itemp)
          cff3=0.5_r8*(1.0_r8+SIGN(1.0_r8,cff1-t(i,j,N(ng),nrhs,itemp)))
          stflx(i,j,itemp)=cff2-cff3*0.5_r8*(cff2-ABS(cff2))
        END DO
      END DO
#   endif
#  endif
# endif

and add LIMIT_STFLX_COOLING key below the BULK_FLUXES and TEMPERATURE in cppdefs.h

you may need to check below but above are just shortcut only.
a) Temperature preservation in step3D_t.F
b) Heat flux masking with rmask_wet
c) Solar radiation masking etc

Actually i am very new in croco thats why.

Please let me know.
Thank you.