Closed penguian closed 4 years ago
@mgk576@nci.org.au commented
The same thing is required for cable_mpimaster.F90 for master_climate_types, e.g.
IF (cable_user%call_climate) THEN CALL master_climate_types(comm, climate, ktauday) ENDIF
@mgk576@nci.org.au changed _comment0 which not transferred by tractive
@mgk576@nci.org.au _changed title from call_climate
to Spatial GSWP3 runs are broken
_
@mgk576@nci.org.au commented
Also, the calendar type wasn't set for GSWP3.
I've added the necessary fixes to my branch: https://trac.nci.org.au/trac/cable/browser/branches/Users/mgk576/trunk
Specifically, in offline/cable_mpimaster.F90 in the:
ELSE IF (TRIM(cable_user%MetType) .EQ. 'gswp3') THEN
IF ( leaps .AND. IS_LEAPYEAR( YYYY ) ) THEN calendar = "standard" ELSE calendar = "noleap" ENDIF
As far I can tell this now fixes this issue in a general sense. However, if you try and run GSWP3 with MPI and turn the "Or" switch on it will seg fault. The issue is in here:
S(:) = 0._r_2
DO k=1,gw_params%level_for_satfrac S(:) = S(:) + MAX(0.01,MIN(1.0, & (ssnow%wb(:,k)-ssnow%wbice(:,k)-soil%watr(:,k))/& MAX(0.001,soil%ssat_vec(:,k)-soil%watr(:,k)) ) )*soil%zse_vec(:,k) END DO
But I'm not sure what is the cause as yet...
@mgk576@nci.org.au changed _comment0 which not transferred by tractive
@mgk576@nci.org.au changed _comment1 which not transferred by tractive
@mgk576@nci.org.au changed _comment2 which not transferred by tractive
@jxs599@nci.org.au commented
testing CC
@jxs599@nci.org.au changed status from new
to closed
@jxs599@nci.org.au set resolution to fixed
@jxs599@nci.org.au set milestone to 1. Closed
@jxs599@nci.org.au commented
pushed to trunk @ 563e1f007b484a78f8ff8fdbc0021a271927e9eb
@ccc561@nci.org.au set keywords to nogit
keyword_nogit
owner:bep599@nci.org.au
resolution_fixed
type_defect
| by mgk576If running CABLE MPI on the trunk you will get a seg fault due to the call_climate switch not being in an IF block, specifically the call on line 6417:
CALL MPI_Get_address (climate%mtemp_min_20(off,1), displs(bidx), ierr)
I suggest adding an IF block to stop the subroutine worker_climate_types being called in cable_mpiworker.F90
IF (cable_user%call_climate) THEN CALL worker_climate_types(comm, climate, ktauday) ENDIF
Issue migrated from trac:221 at 2023-11-27 11:29:01 +1100