Hi,
I added two temporary logical’s (l_ukca_fix_h2so4_ystore and l_ukca_fix_h2ddx) to my job and am concerned they may not be working properly.
In one case, I merged the meta files of the logical branch and mine and included the logical in the app/um/rose-app.conf file. From here, it appeared in my GUI as a warning to which I added it and then ran. In the other case, I simply added the logical change to my meta file and included the logical branch in um_sources, then added to rose-app.conf and the GUI. I did this following the suggestions in: Temporary Logicals - #3 by hannahbryant
Following this, the output changed and I believed the logicals to work, however, in the atmos_main/job.out files, the logical appears as:
l_ukca_h2so4_ystoreF
instead of
l_ukca_h2so4_ystore = .F.
I would expect to get the warning ‘Model run excludes the ticket … as l_fix_ukca_h2so4_ystore =.FALSE.’ but this does not appear.
Any help would be very appreciated!
Thanks,
Hannah
Hi Hannah,
What’s the suite id please?
Cheers,
Ros.
Hi Ros,
Its happening in u-ct977 with the l_ukca_fix_h2dd_x logical (I haven’t included the h2so4_ystore in this branch). It is also happening in u-cw648 with both the h2dd and the h2so4_ystore logicals.
Thanks,
Hannah
A quick search in the cylc-run output shows that in some files it is showing as .true. and in some as T:
grep -r h2dd .
./app/um/rose-app.conf:l_fix_ukca_h2dd_x=.true.
./work/20140101T0000Z/recon/SHARED:l_fix_ukca_h2dd_x=.true.,
./work/20140101T0000Z/recon/rose-app-run.conf:l_fix_ukca_h2dd_x=.true.
./work/20140101T0000Z/atmos_main/SHARED:l_fix_ukca_h2dd_x=.true.,
./work/20140101T0000Z/atmos_main/rose-app-run.conf:l_fix_ukca_h2dd_x=.true.
./work/20140101T0000Z/atmos_main/pe_output/ct977.fort6.pe000:l_fix_ukca_h2dd_xT
./log.20230131T175454Z/job/20140101T0000Z/atmos_main/01/job.out:l_fix_ukca_h2dd_xT
Hi Hannah,
The reason it is not printing l_fix_ukca_h2dd_x = T
in the job.out
file is because the code is wrong.
In src/control/misc/science_fixes_mod.F90
you have
WRITE(lineBuffer,'(A,L1)') 'l_fix_ukca_h2dd_x', l_fix_ukca_h2dd_x
Rather than:
WRITE(lineBuffer,'(A,L1)') 'l_fix_ukca_h2dd_x = ', l_fix_ukca_h2dd_x
The T
rather than .true.
is how FORTRAN writes the logical.
Regards,
Ros.
Hi Ros,
Thank you! So just to check, this means that the logical is working, its just not being shown correctly?
(This science_fixes_mod.F90 is being taken from branches/dev/alanjhewitt/vn11.1_fix_npft for the h2dd logical in some of my branches where I have not merged but am still using it and therefore to fix it I would need to merge the changes in and change it on my end).
Best wishes,
Hannah