Replacing
INTEGER, DIMENSION(:,:,:), POINTER :: data_jpi ! array of source integers INTEGER, DIMENSION(:,:,:), POINTER :: data_jpj ! array of source integers REAL(wp), DIMENSION(:,:,:), POINTER :: data_wgt ! array of weights on model grid REAL(wp), DIMENSION(:,:,:), POINTER :: fly_dta ! array of values on input grid REAL(wp), DIMENSION(:,:,:), POINTER :: col ! temporary array for reading in columns
with
INTEGER, DIMENSION(:,:,:), ALLOCATABLE :: data_jpi ! array of source integers INTEGER, DIMENSION(:,:,:), ALLOCATABLE :: data_jpj ! array of source integers REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: data_wgt ! array of weights on model grid REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: fly_dta ! array of values on input grid REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: col ! temporary array for reading in columns
Replacing
REAL(wp), POINTER, DIMENSION(:,:) :: utmp, vtmp ! temporary arrays for vector rotation CHARACTER (LEN=100) :: clcomp ! dummy weight name !!--------------------------------------------------------------------- CALL wrk_alloc( jpi,jpj, utmp, vtmp )
with
REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: utmp, vtmp ! temporary arrays for vector rotation CHARACTER (LEN=100) :: clcomp ! dummy weight name !!--------------------------------------------------------------------- ALLOCATE( utmp (1:jpi, 1:jpj) ) ALLOCATE( vtmp (1:jpi, 1:jpj) )
Replacing
CALL wrk_dealloc( jpi,jpj, utmp, vtmp )
with
DEALLOCATE (utmp, vtmp)
Replacing
IF( ASSOCIATED(ref_wgts(kw)%data_wgt) ) WRITE(numout,*) ' allocated'
with
IF( ALLOCATED(ref_wgts(kw)%data_wgt) ) WRITE(numout,*) ' allocated'
Replacing
INTEGER , POINTER, DIMENSION(:,:) :: data_src REAL(wp), POINTER, DIMENSION(:,:) :: data_tmp LOGICAL :: cyclical INTEGER :: zwrap ! local integer !!---------------------------------------------------------------------- ! CALL wrk_alloc( jpi,jpj, data_src ) ! integer CALL wrk_alloc( jpi,jpj, data_tmp )
with
INTEGER , ALLOCATABLE, DIMENSION(:,:) :: data_src REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: data_tmp LOGICAL :: cyclical INTEGER :: zwrap ! local integer !!---------------------------------------------------------------------- ! ALLOCATE(data_src(1:jpi, 1:jpj)) ALLOCATE(data_tmp(1:jpi, 1:jpj))
Replacing
CALL wrk_dealloc( jpi,jpj, data_src ) ! integer CALL wrk_dealloc( jpi,jpj, data_tmp )
with
DEALLOCATE( data_src ) ! integer DEALLOCATE( data_tmp )
Replacing
REAL(wp), POINTER, DIMENSION(:,:) :: zgcr !!---------------------------------------------------------------------- ! IF( nn_timing == 1 ) CALL timing_start('sol_pcg') ! CALL wrk_alloc( jpi, jpj, zgcr )
with
REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: zgcr !!---------------------------------------------------------------------- ! IF( nn_timing == 1 ) CALL timing_start('sol_pcg') ! ALLOCATE( zgcr(jpi,jpj) )
Replacing
CALL wrk_dealloc( jpi, jpj, zgcr )
with
DEALLOCATE ( zgcr )
Replacing
REAL(wp), POINTER, DIMENSION(:,:,:) :: zun, zvn, zwn !!---------------------------------------------------------------------- ! IF( nn_timing == 1 ) CALL timing_start('tra_adv') ! CALL wrk_alloc( jpi, jpj, jpk, zun, zvn, zwn )
with
REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zun, zvn, zwn !!---------------------------------------------------------------------- ! IF( nn_timing == 1 ) CALL timing_start('tra_adv') ! ALLOCATE( zun(1:jpi, 1:jpj, 1:jpk) ) ALLOCATE( zvn(1:jpi, 1:jpj, 1:jpk) ) ALLOCATE( zwn(1:jpi, 1:jpj, 1:jpk) )
Replacing
IF( nn_timing == 1 ) CALL timing_stop( 'tra_adv' ) ! CALL wrk_dealloc( jpi, jpj, jpk, zun, zvn, zwn )
with
DEALLOCATE ( zun, zvn, zwn ) IF( nn_timing == 1 ) CALL timing_stop( 'tra_adv' )
Replacing
REAL(wp), POINTER, DIMENSION(:,:,:) :: zslpx, zslpy ! 3D workspace REAL(wp), POINTER, DIMENSION(:,:,:) :: zwx , zwy ! - - !!---------------------------------------------------------------------- ! IF( nn_timing == 1 ) CALL timing_start('tra_adv_muscl') ! CALL wrk_alloc( jpi, jpj, jpk, zslpx, zslpy, zwx, zwy )
with
REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zslpx, zslpy ! 3D workspace REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zwx , zwy ! - - !!---------------------------------------------------------------------- ! IF( nn_timing == 1 ) CALL timing_start('tra_adv_muscl') ! ALLOCATE( zslpx(1:jpi, 1:jpj, 1:jpk) ) ALLOCATE( zslpy(1:jpi, 1:jpj, 1:jpk) ) ALLOCATE( zwx (1:jpi, 1:jpj, 1:jpk) ) ALLOCATE( zwy (1:jpi, 1:jpj, 1:jpk) )
Replacing
CALL wrk_dealloc( jpi, jpj, jpk, zslpx, zslpy, zwx, zwy )
with
DEALLOCATE( zslpx ) DEALLOCATE( zslpy ) DEALLOCATE( zwx ) DEALLOCATE( zwy )
Replacing
REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrdt, ztrds !!---------------------------------------------------------------------- ! IF( nn_timing == 1 ) CALL timing_start( 'tra_bbl') ! IF( l_trdtra ) THEN !* Save ta and sa trends CALL wrk_alloc( jpi, jpj, jpk, ztrdt, ztrds )
with
REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: ztrdt, ztrds !!---------------------------------------------------------------------- ! IF( nn_timing == 1 ) CALL timing_start( 'tra_bbl') ! IF( l_trdtra ) THEN !* Save ta and sa trends ALLOCATE( ztrdt (1:jpi, 1:jpj, 1:jpk)) ALLOCATE( ztrds (1:jpi, 1:jpj, 1:jpk))
Replacing
CALL wrk_dealloc( jpi, jpj, jpk, ztrdt, ztrds )
with
DEALLOCATE( ztrdt, ztrds )
Replacing
REAL(wp), POINTER, DIMENSION(:,:) :: zptb !!---------------------------------------------------------------------- ! IF( nn_timing == 1 ) CALL timing_start('tra_bbl_dif') ! CALL wrk_alloc( jpi, jpj, zptb )
with
REAL(wp), ALLOCATABLE , DIMENSION(:,:) :: zptb !!---------------------------------------------------------------------- ! IF( nn_timing == 1 ) CALL timing_start('tra_bbl_dif') ! ALLOCATE(zptb(1:jpi, 1:jpj))
Replacing
CALL wrk_dealloc( jpi, jpj, zptb )
with
DEALLOCATE( zptb )
Replacing
REAL(wp), POINTER, DIMENSION(:,: ) :: z2d REAL(wp), POINTER, DIMENSION(:,:,:) :: zdkt, zdk1t, zdit, zdjt, ztfw !!---------------------------------------------------------------------- ! IF( nn_timing == 1 ) CALL timing_start('tra_ldf_iso') ! CALL wrk_alloc( jpi, jpj, z2d ) CALL wrk_alloc( jpi, jpj, jpk, zdit, zdjt, ztfw, zdkt, zdk1t )
with
REAL(wp), ALLOCATABLE, DIMENSION(:,: ) :: z2d REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zdkt, zdk1t, zdit, zdjt, ztfw !!---------------------------------------------------------------------- ! IF( nn_timing == 1 ) CALL timing_start('tra_ldf_iso') ! ALLOCATE( z2d (1:jpi, 1:jpj) ) ALLOCATE( zdit (1:jpi, 1:jpj, 1:jpk) ) ALLOCATE( zdjt (1:jpi, 1:jpj, 1:jpk) ) ALLOCATE( ztfw (1:jpi, 1:jpj, 1:jpk) ) ALLOCATE( zdkt (1:jpi, 1:jpj, 1:jpk) ) ALLOCATE( zdk1t (1:jpi, 1:jpj, 1:jpk) )
Replacing
CALL wrk_dealloc( jpi, jpj, z2d ) CALL wrk_dealloc( jpi, jpj, jpk, zdit, zdjt, ztfw, zdkt, zdk1t )
with
DEALLOCATE( z2d ) DEALLOCATE( zdit ) DEALLOCATE( zdjt ) DEALLOCATE( ztfw ) DEALLOCATE( zdkt ) DEALLOCATE( zdk1t )
Replacing
REAL(wp), POINTER, DIMENSION(:,: ) :: fprn2d, fdpn2d, fprd2d, fdpd2d, fprds2d, fsdiss2d, fgmipn2d REAL(wp), POINTER, DIMENSION(:,: ) :: fgmid2d, fdzmi2d, fgmepn2d, fgmepd2d, fgmezmi2d, fgmed2d REAL(wp), POINTER, DIMENSION(:,: ) :: fdzme2d, fslown2d, fdd2d, ffetop2d, ffebot2d, ffescav2d REAL(wp), POINTER, DIMENSION(:,: ) :: fjln2d, fnln2d, ffln2d, fjld2d, fnld2d, ffld2d, fsld2d2 REAL(wp), POINTER, DIMENSION(:,: ) :: fsld2d, fregen2d, fregensi2d, ftempn2d, ftempsi2d, ftempfe2d REAL(wp), POINTER, DIMENSION(:,: ) :: ftempc2d, ftempca2d, freminn2d, freminsi2d, freminfe2d REAL(wp), POINTER, DIMENSION(:,: ) :: freminc2d, freminca2d REAL(wp), POINTER, DIMENSION(:,: ) :: zw2d # if defined key_roam REAL(wp), POINTER, DIMENSION(:,: ) :: ffastca2d, rivn2d, rivsi2d, rivc2d, rivalk2d, fslowc2d REAL(wp), POINTER, DIMENSION(:,: ) :: fdpn22d, fdpd22d, fdzmi22d, fdzme22d, zimesn2d, zimesd2d REAL(wp), POINTER, DIMENSION(:,: ) :: zimesc2d, zimesdc2d, ziexcr2d, ziresp2d, zigrow2d, zemesn2d REAL(wp), POINTER, DIMENSION(:,: ) :: zemesd2d, zemesc2d, zemesdc2d, zeexcr2d, zeresp2d, zegrow2d REAL(wp), POINTER, DIMENSION(:,: ) :: mdetc2d, gmidc2d, gmedc2d, f_pco2a2d, f_pco2w2d, f_co2flux2d REAL(wp), POINTER, DIMENSION(:,: ) :: f_TDIC2d, f_TALK2d, f_kw6602d, f_pp02d, f_o2flux2d, f_o2sat2d REAL(wp), POINTER, DIMENSION(:,: ) :: dms_surf2d, dms_andr2d, dms_simo2d, dms_aran2d, dms_hall2d REAL(wp), POINTER, DIMENSION(:,: ) :: iben_n2d, iben_fe2d, iben_c2d, iben_si2d, iben_ca2d, oben_n2d REAL(wp), POINTER, DIMENSION(:,: ) :: oben_fe2d, oben_c2d, oben_si2d, oben_ca2d, sfr_ocal2d REAL(wp), POINTER, DIMENSION(:,: ) :: sfr_oarg2d, lyso_ca2d # endif !! 2D var for diagnostics. REAL(wp), POINTER, DIMENSION(:,:,:) :: tpp3d, detflux3d, remin3dn
with
REAL(wp), ALLOCATABLE, DIMENSION(:,: ) :: fprn2d, fdpn2d, fprd2d, fdpd2d, fprds2d, fsdiss2d, fgmipn2d REAL(wp), ALLOCATABLE, DIMENSION(:,: ) :: fgmid2d, fdzmi2d, fgmepn2d, fgmepd2d, fgmezmi2d, fgmed2d REAL(wp), ALLOCATABLE, DIMENSION(:,: ) :: fdzme2d, fslown2d, fdd2d, ffetop2d, ffebot2d, ffescav2d REAL(wp), ALLOCATABLE, DIMENSION(:,: ) :: fjln2d, fnln2d, ffln2d, fjld2d, fnld2d, ffld2d, fsld2d2 REAL(wp), ALLOCATABLE, DIMENSION(:,: ) :: fsld2d, fregen2d, fregensi2d, ftempn2d, ftempsi2d, ftempfe2d REAL(wp), ALLOCATABLE, DIMENSION(:,: ) :: ftempc2d, ftempca2d, freminn2d, freminsi2d, freminfe2d REAL(wp), ALLOCATABLE, DIMENSION(:,: ) :: freminc2d, freminca2d REAL(wp), ALLOCATABLE, DIMENSION(:,: ) :: zw2d # if defined key_roam REAL(wp), ALLOCATABLE, DIMENSION(:,: ) :: ffastca2d, rivn2d, rivsi2d, rivc2d, rivalk2d, fslowc2d REAL(wp), ALLOCATABLE, DIMENSION(:,: ) :: fdpn22d, fdpd22d, fdzmi22d, fdzme22d, zimesn2d, zimesd2d REAL(wp), ALLOCATABLE, DIMENSION(:,: ) :: zimesc2d, zimesdc2d, ziexcr2d, ziresp2d, zigrow2d, zemesn2d REAL(wp), ALLOCATABLE, DIMENSION(:,: ) :: zemesd2d, zemesc2d, zemesdc2d, zeexcr2d, zeresp2d, zegrow2d REAL(wp), ALLOCATABLE, DIMENSION(:,: ) :: mdetc2d, gmidc2d, gmedc2d, f_pco2a2d, f_pco2w2d, f_co2flux2d REAL(wp), ALLOCATABLE, DIMENSION(:,: ) :: f_TDIC2d, f_TALK2d, f_kw6602d, f_pp02d, f_o2flux2d, f_o2sat2d REAL(wp), ALLOCATABLE, DIMENSION(:,: ) :: dms_surf2d, dms_andr2d, dms_simo2d, dms_aran2d, dms_hall2d REAL(wp), ALLOCATABLE, DIMENSION(:,: ) :: iben_n2d, iben_fe2d, iben_c2d, iben_si2d, iben_ca2d, oben_n2d REAL(wp), ALLOCATABLE, DIMENSION(:,: ) :: oben_fe2d, oben_c2d, oben_si2d, oben_ca2d, sfr_ocal2d REAL(wp), ALLOCATABLE, DIMENSION(:,: ) :: sfr_oarg2d, lyso_ca2d # endif !! 2D var for diagnostics. REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: tpp3d, detflux3d, remin3dn
Replacing code of the form
CALL wrk_alloc( jpi, jpj, <pointer>)
with code of the form
ALLOCATE(<array>(jpi, jpj))
Replacing code of the form
CALL wrk_dealloc( jpi, jpj, <pointer>)
with code of the form
DEALLOCATE( <array> )
Replacing
REAL(wp), POINTER, DIMENSION(:,:,:,:) :: ztrtrd !!---------------------------------------------------------------------- ! IF( nn_timing == 1 ) CALL timing_start('trc_bbl') ! IF( .NOT. lk_offline .AND. nn_dttrc == 1 ) THEN CALL bbl( kt, nittrc000, 'TRC' ) ! Online coupling with dynamics : Computation of bbl coef and bbl transport l_bbl = .FALSE. ! Offline coupling with dynamics : Read bbl coef and bbl transport from input files ENDIF IF( l_trdtrc ) THEN CALL wrk_alloc( jpi, jpj, jpk, jptra, ztrtrd ) ! temporary save of trends
with
REAL(wp), ALLOCATABLE, DIMENSION(:,:,:,:) :: ztrtrd !!---------------------------------------------------------------------- ! IF( nn_timing == 1 ) CALL timing_start('trc_bbl') ! IF( .NOT. lk_offline .AND. nn_dttrc == 1 ) THEN CALL bbl( kt, nittrc000, 'TRC' ) ! Online coupling with dynamics : Computation of bbl coef and bbl transport l_bbl = .FALSE. ! Offline coupling with dynamics : Read bbl coef and bbl transport from input files ENDIF IF( l_trdtrc ) THEN ALLOCATE( ztrtrd (1:jpi, 1:jpj, 1:jpk, 1:jptra) )
Replacing
CALL wrk_dealloc( jpi, jpj, jpk, jptra, ztrtrd ) ! temporary save of trends
with
DEALLOCATE( ztrtrd ) ! temporary save of trends
Replacing
REAL(wp), POINTER, DIMENSION(:,:,:,:) :: ztrtrd !!---------------------------------------------------------------------- ! IF( nn_timing == 1 ) CALL timing_start('trc_ldf') ! IF( kt == nittrc000 ) CALL ldf_ctl ! initialisation & control of options rldf = rldf_rat IF( l_trdtrc ) THEN CALL wrk_alloc( jpi, jpj, jpk, jptra, ztrtrd )
with
REAL(wp), ALLOCATABLE, DIMENSION(:,:,:,:) :: ztrtrd !!---------------------------------------------------------------------- ! IF( nn_timing == 1 ) CALL timing_start('trc_ldf') ! IF( kt == nittrc000 ) CALL ldf_ctl ! initialisation & control of options rldf = rldf_rat IF( l_trdtrc ) THEN ALLOCATE( ztrtrd(1:jpi, 1:jpj, 1:jpk, 1:jptra))
Replacing
CALL wrk_dealloc( jpi, jpj, jpk, jptra, ztrtrd )
with
DEALLOCATE( ztrtrd )
Maff has a lib_fortran.F90-bak, so looks like he's tried a change
to this file which probably caused the problem I experience with my
job stalling.