Opened 8 weeks ago

Last modified 4 days ago

#786 new defect

Compatibility problems between new driver and certain forcing files

Reported by: aducharne Owned by: somebody
Priority: major Milestone: ORCHIDEE 4.1
Component: Driver files Version: trunc
Keywords: Cc:

Description

This problem was found by Agnès and Xiaoni with r7263 of branch 2.2, but it is also very likely present in the trunk and branch 3.0.

In branch 2.2, the new driver was found to work fine with the following forcing datasets including the correct attributes (cell_methods = "time:...") :

  • uncompressed 2D : CRUJRA/v2.1/twodeg; CRU-NCEP/v7.2/twodeg; CRU-NCEP/v7.2/onedeg
  • compressed in land points without contfrac variable: WFDEI_GPCC/v2/leap; CRU-NCEP/v7.2/halfdeg

BUT the simulation fails with the following files, which include correct attributes (cell_methods = "time:...") :

  • compressed in land points WITH contfrac(y,x) variable : CRUJRA/v2.1/halfdeg; CRUJRA/v2.2/halfdeg has the same structure and should also crash, but it was not tested. The old driver driver works fine with these files.

The problem occurs in src_driver_forcing_tools.f90, as shown by Debug/JobName_out_execution_error:

 Forcing file with dimensions :          720         360       67420
 Zoom forcing : lon =   -180.000000000000        180.000000000000     
 Zoom forcing : lat =   -90.0000000000000        90.0000000000000     
 nbindex_g after calling globgrd_getdomsz in orchideedriver           0
 forcing_givegrid:: nbpoint_loc=       67420
 forcing_givegrid:: nbland_loc=           0

FATAL ERROR FROM ROUTINE forcing_givegrid
 --> nbpoint_loc and nbland_loc do match
 --> The calculation of land points is not correct
 --> 

Fatal error from IOIPSL. STOP in ipslerr with code
1
srun: error: r1i1n11: task 0: Exited with exit code 1
srun: Terminating job step 609241.0
slurmstepd: error: *** STEP 609241.0 ON r1i1n11 CANCELLED AT 2021-07-29T18:51:00 ***
forrtl: error (78): process killed (SIGTERM)

Analysis by Xiaoni

When I looked at the results of CRU JRA 2deg, the variable 'compressed' in subroutine forcing_getglogrid is False. But it is True with CRU JRA 0.5 deg. This is due to different values of 'landvar_id'.

In fact the 0.5deg file has a variable 'land', while 2deg has no such variable. This is why we got different values of 'landvar_id' and 'compressed', and why we call different functions.

The 'land' variable is 1D array, with a length of land points, given by input data. The variable 'Qair' has the dimension of time x length(land) in the 0.5 deg file, but Qair has time x lat x lon in 2deg file. This is why we have to call different functions when dealing with 0.5 deg....

The calling of forcing_buildindex and forcing_reindex should be necessary in this case, which was not included in the original driver code. I am not sure yet if some extra adaptation is necessary when using these two subroutines in the case.

Conclusion

Two options seem possible: either to change the forcing files, or to change the code of forcing_tools.f90. Since the old driver manages to use compressed files with an uncompressed contfrac (which can be useful for uncompressing), it is probably better to update the code.

Change History (1)

comment:1 Changed 4 days ago by xnwang

This problem is fixed in the recent version rev 7288 of trunk (and afterward). The most recent version of CRUJRA v2.2 0.5 degree was used in the test. It works and gives consistent simulation results.

Note: See TracTickets for help on using tickets.