From 66e084b4bce614d7620f9fb30fbfec8738d63f76 Mon Sep 17 00:00:00 2001 From: sparonuz Date: Thu, 24 Oct 2019 12:30:35 +0200 Subject: [PATCH 1/4] managing the patching process for different nemo release. --- Local/Files/release-4.0.1_r11711/bdydta.patch | 29 ++++ .../{ => release-4.0.1_r11711}/dommsk.patch | 0 .../Files/release-4.0.1_r11711/file_fixes.cmd | 133 ++++++++++++++++++ Local/Files/release-4.0.1_r11711/flodom.patch | 67 +++++++++ Local/Files/release-4.0.1_r11711/sbcdcy.patch | 38 +++++ Local/Files/release-4.0.1_r11711/sbcrnf.patch | 11 ++ .../{ => release-4.0.1_r11711}/stpctl.patch | 0 Local/Files/release-4.0/dommsk.patch | 15 ++ Local/Files/{ => release-4.0}/dynvor.patch | 0 Local/Files/{ => release-4.0}/file_fixes.cmd | 0 Local/Files/{ => release-4.0}/sbcdcy.patch | 0 Local/Files/{ => release-4.0}/sbcrnf.patch | 0 Local/Files/release-4.0/stpctl.patch | 47 +++++++ Local/local_recipe.cmd | 3 +- 14 files changed, 342 insertions(+), 1 deletion(-) create mode 100644 Local/Files/release-4.0.1_r11711/bdydta.patch rename Local/Files/{ => release-4.0.1_r11711}/dommsk.patch (100%) create mode 100755 Local/Files/release-4.0.1_r11711/file_fixes.cmd create mode 100644 Local/Files/release-4.0.1_r11711/flodom.patch create mode 100644 Local/Files/release-4.0.1_r11711/sbcdcy.patch create mode 100644 Local/Files/release-4.0.1_r11711/sbcrnf.patch rename Local/Files/{ => release-4.0.1_r11711}/stpctl.patch (100%) create mode 100644 Local/Files/release-4.0/dommsk.patch rename Local/Files/{ => release-4.0}/dynvor.patch (100%) rename Local/Files/{ => release-4.0}/file_fixes.cmd (100%) rename Local/Files/{ => release-4.0}/sbcdcy.patch (100%) rename Local/Files/{ => release-4.0}/sbcrnf.patch (100%) create mode 100644 Local/Files/release-4.0/stpctl.patch diff --git a/Local/Files/release-4.0.1_r11711/bdydta.patch b/Local/Files/release-4.0.1_r11711/bdydta.patch new file mode 100644 index 0000000..399757e --- /dev/null +++ b/Local/Files/release-4.0.1_r11711/bdydta.patch @@ -0,0 +1,29 @@ +--- bdydta.f90 2019-10-22 15:17:08.314007064 +0200 ++++ bdydta.f90_new 2019-10-22 15:16:34.109726234 +0200 +@@ -465,7 +465,7 @@ + ALLOCATE( dta_bdy(jbdy)%a_i(iszdim,jpl) ) + variable_is_used(662) = .true. + variable_is_used(662) = .true. +- a_i%sbits = emulator_variable_precisions(662) ++ dta_bdy(jbdy)%a_i%sbits = emulator_variable_precisions(662) + ENDIF + ENDIF + IF( jfld == jp_bdyh_i ) THEN +@@ -475,7 +475,7 @@ + ALLOCATE( dta_bdy(jbdy)%h_i(iszdim,jpl) ) + variable_is_used(663) = .true. + variable_is_used(663) = .true. +- h_i%sbits = emulator_variable_precisions(663) ++ dta_bdy(jbdy)%h_i%sbits = emulator_variable_precisions(663) + ENDIF + ENDIF + IF( jfld == jp_bdyh_s ) THEN +@@ -485,7 +485,7 @@ + ALLOCATE( dta_bdy(jbdy)%h_s(iszdim,jpl) ) + variable_is_used(664) = .true. + variable_is_used(664) = .true. +- h_s%sbits = emulator_variable_precisions(664) ++ dta_bdy(jbdy)%h_s%sbits = emulator_variable_precisions(664) + ENDIF + ENDIF + IF( jfld == jp_bdyt_i ) THEN diff --git a/Local/Files/dommsk.patch b/Local/Files/release-4.0.1_r11711/dommsk.patch similarity index 100% rename from Local/Files/dommsk.patch rename to Local/Files/release-4.0.1_r11711/dommsk.patch diff --git a/Local/Files/release-4.0.1_r11711/file_fixes.cmd b/Local/Files/release-4.0.1_r11711/file_fixes.cmd new file mode 100755 index 0000000..45aa6f8 --- /dev/null +++ b/Local/Files/release-4.0.1_r11711/file_fixes.cmd @@ -0,0 +1,133 @@ +#folder= +folder=./ProcessedOutputs/ + + +file=lbclnk.f90 +to_replace="ptab%val_ptr(kfld)%pt" +replacement="ptab_ptr(kfld)%pt" +sed "s#${to_replace}#${replacement}#g" ${folder}/${file} -i + + +file=domngb.f90 +to_replace="iloc(:) = MINLOC( zdist(:,:), mask = zmask(:,:) == 1.e0 )" +replacement="iloc(:) = MINLOC( zdist(:,:)%val, mask = zmask(:,:)%val == 1.e0 )" +sed "s#${to_replace}#${replacement}#g" ${folder}/${file} -i + + +file=trc_oce.f90 +to_replace="READ(numlight,\*) zchl%val, ( prgb(jb,jc), jb = 1, 3 )%val" +replacement="READ(numlight,\*) zchl%val, ( prgb(jb,jc)%val, jb = 1, 3 )" +sed "s#${to_replace}#${replacement}#g" ${folder}/${file} -i + +file=diaptr.f90 +to_replace="htr_ove(:,1) = SUM( v_msf(:,:,1)\*tn_jk(:,:,1) ,2 )" +replacement="htr_ove(:,1) = SUM( v_msf(:,:,1)%val\*tn_jk(:,:,1)%val ,2 )" +sed "s#${to_replace}#${replacement}#g" ${folder}/${file} -i + +to_replace="str_ove(:,1) = SUM( v_msf(:,:,1)\*sn_jk(:,:,1) ,2 )" +replacement="str_ove(:,1) = SUM( v_msf(:,:,1)%val\*sn_jk(:,:,1)%val ,2 )" +sed "s#${to_replace}#${replacement}#g" ${folder}/${file} -i + +to_replace="str_ove(:,jn) = SUM( v_msf(:,:,jn)\*sn_jk(:,:,jn) ,2 )" +replacement="str_ove(:,jn) = SUM( v_msf(:,:,jn)%val\*sn_jk(:,:,jn)%val ,2 )" +sed "s#${to_replace}#${replacement}#g" ${folder}/${file} -i + +to_replace="htr_ove(:,jn) = SUM( v_msf(:,:,jn)\*tn_jk(:,:,jn) ,2 )" +replacement="htr_ove(:,jn) = SUM( v_msf(:,:,jn)%val\*tn_jk(:,:,jn)%val ,2 )" +sed "s#${to_replace}#${replacement}#g" ${folder}/${file} -i + +file=geo2ocean.f90 +to_replace="type(rpe_var), PARAMETER :: rad = rpe_var( 52, rpi / 180.e0 )" +replacement="type(rpe_var), PARAMETER :: rad = rpe_var( 52, rpi%val / 180.e0 )" +sed "s#${to_replace}#${replacement}#g" ${folder}/${file} -i + +file=fldread.f90 +to_replace="IF(lwp) WRITE(\*,\*) 'DEPTHU',real( zh ),real( sum(e3u_n(zij,zjj,:), mask=umask(zij,zjj,:)==1) ),real( sum(umask(zij,zjj,:)) ),real( hu_n(zij,zjj) ), map%ptr(ib), ib, zij, zjj, narea-1 ,real( dta_read(map%ptr(ib),1,:) )" +replacement="IF(lwp) WRITE(\*,\*) 'DEPTHU',real( zh ),real( sum(e3u_n(zij,zjj,:)%val, mask=umask(zij,zjj,:)%val==1) ),real( sum(umask(zij,zjj,:)) ),real( hu_n(zij,zjj) ), map%ptr(ib), ib, zij, zjj, narea-1 ,real( dta_read(map%ptr(ib),1,:) )" +sed "s#${to_replace}#${replacement}#g" ${folder}/${file} -i + +to_replace="ELSEIF( zl > MAXVAL(dta_read_z(map%ptr(ib),1,:),1) ) THEN" +replacement="ELSEIF( zl > MAXVAL(dta_read_z(map%ptr(ib),1,:)%val,1) ) THEN" +sed "s#${to_replace}#${replacement}#g" ${folder}/${file} -i + +to_replace="dta(ib,1,ik) = dta_read(map%ptr(ib),1,MAXLOC(dta_read_z(map%ptr(ib),1,:),1))" +replacement="dta(ib,1,ik) = dta_read(map%ptr(ib),1,MAXLOC(dta_read_z(map%ptr(ib),1,:)%val,1))" +sed "s#${to_replace}#${replacement}#g" ${folder}/${file} -i + +to_replace="ELSEIF( zl > MAXVAL(dta_read_z(ji,jj,:),1) ) THEN" +replacement="ELSEIF( zl > MAXVAL(dta_read_z(ji,jj,:)%val,1) ) THEN" +sed "s#${to_replace}#${replacement}#g" ${folder}/${file} -i + +to_replace="dta(ib,1,ik) = dta_read(ji,jj,MAXLOC(dta_read_z(ji,jj,:),1))" +acement="dta(ib,1,ik) = dta_read(ji,jj,MAXLOC(dta_read_z(ji,jj,:)%val,1))" +sed "s#${to_replace}#${replacement}#g" ${folder}/${file} -i + +to_replace="zlsm2d = SUM( zlsm3d, 3 , ll_msknan3d ) / MAX( 1 , COUNT( ll_msknan3d , 3 )" +replacement="zlsm2d = SUM( zlsm3d%val, 3 , ll_msknan3d ) / MAX( 1 , COUNT( ll_msknan3d , 3 )" +sed "s#${to_replace}#${replacement}#g" ${folder}/${file} -i + +to_replace="pdta(jb,1,jk) = pdta_read(jb,1,MAXLOC(pdta_read_z(jb,1,:),1))" +replacement="pdta(jb,1,jk) = pdta_read(jb,1,MAXLOC(pdta_read_z(jb,1,:)%val,1))" +sed "s#${to_replace}#${replacement}#g" ${folder}/${file} -i + +file=obs_averg_h2d.f90 +to_replace="pobsk(jk) = SUM (real( pweig(:,:,jk) \* pmod(:,:,jk) ), Mask=real( pweig(:,:,jk) > 0.0_wp ))" +replacement="pobsk(jk) = SUM ( pweig(:,:,jk)%val \* pmod(:,:,jk)%val, Mask=pweig(:,:,jk)%val > 0.0_wp )" +sed "s#${to_replace}#${replacement}#g" ${folder}/${file} -i + + +#Special case patch (Too hard for a sed command) + +file=sbcwave.f90 +to_replace="ERFC(zsqrt_depth)" +replacement="ERFC(zsqrt_depth%val)" +sed "s#${to_replace}#${replacement}#g" ${folder}/${file} -i + + +file=domain.f90 +to_replace="iloc = MINLOC( e1t(:,:), mask = tmask_i(:,:) == 1._wp )" +replacement="iloc = MINLOC( e1t(:,:)%val, mask = tmask_i(:,:)%val == 1._wp )" +sed "s#${to_replace}#${replacement}#g" ${folder}/${file} -i + +to_replace="iloc = MINLOC( e2t(:,:), mask = tmask_i(:,:) == 1._wp )" +replacement="iloc = MINLOC( e2t(:,:)%val, mask = tmask_i(:,:)%val == 1._wp )" +sed "s#${to_replace}#${replacement}#g" ${folder}/${file} -i + + +file=dynvor.f90 +to_replace="WRITE(numout,\*) real( ' e3f = averaging /4 (=0) or /sum(tmask) (=1) nn_een_e3f = ' ), nn_een_e3f" +replacement="WRITE(numout,\*) ' e3f = averaging /4 (=0) or /sum(tmask) (=1) nn_een_e3f = ', nn_een_e3f" +sed "s#${to_replace}#${replacement}#g" ${folder}/${file} -i + +file=sbcblk.f90 +to_replace="type(rpe_var), PARAMETER :: reps0 = rpe_var( 52, R_dry/R_vap )" +replacement="type(rpe_var), PARAMETER :: reps0 = rpe_var( 52, R_dry%val/R_vap%val )" +sed "s#${to_replace}#${replacement}#g" ${folder}/${file} -i + +to_replace="type(rpe_var), PARAMETER :: rctv0 = rpe_var( 52, R_vap/R_dry )" +replacement="type(rpe_var), PARAMETER :: rctv0 = rpe_var( 52, R_vap%val/R_dry%val )" +sed "s#${to_replace}#${replacement}#g" ${folder}/${file} -i + +file=sbcmod.f90 +to_replace="zthscl = atanh(rn_wd_sbcfra)" +replacement="zthscl = atanh(rn_wd_sbcfra%val)" +sed "s#${to_replace}#${replacement}#g" ${folder}/${file} -i + +file=sshwzv.f90 +to_replace="type(rpe_var) , PARAMETER :: Cu_cut = rpe_var( 52, 2._wp\*Cu_max - Cu_min )" +replacement="type(rpe_var) , PARAMETER :: Cu_cut = rpe_var( 52, 2._wp\*Cu_max%val - Cu_min%val )" +sed "s#${to_replace}#${replacement}#g" ${folder}/${file} -i + +to_replace="type(rpe_var) , PARAMETER :: Fcu = rpe_var( 52, 4._wp\*Cu_max\*(Cu_max-Cu_min) )" +replacement="type(rpe_var) , PARAMETER :: Fcu = rpe_var( 52, 4._wp\*Cu_max%val\*(Cu_max%val-Cu_min%val) )" +sed "s#${to_replace}#${replacement}#g" ${folder}/${file} -i + + +#Special case patch (Too hard for a sed command) +for patch_file in Files/${NEMO_VERSION}/*.patch +do + patch_name=${patch_file##*/} + file=${patch_name%.*}.f90 + patch ${folder}/${file} ${patch_file} + echo ${file}' file patched' +done diff --git a/Local/Files/release-4.0.1_r11711/flodom.patch b/Local/Files/release-4.0.1_r11711/flodom.patch new file mode 100644 index 0000000..f86e4a5 --- /dev/null +++ b/Local/Files/release-4.0.1_r11711/flodom.patch @@ -0,0 +1,67 @@ +--- flodom.f90 2019-10-22 17:32:13.842025920 +0200 ++++ flodom.f90_new 2019-10-23 10:21:03.937027000 +0200 +@@ -32,7 +32,7 @@ + IF( ln_rstflo )THEN + IF(lwp) WRITE(numout,*) ' float restart file read' + CALL ctl_opn( inum, 'restart_float', 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp ) +- READ(inum,*) ( tpifl (jfl), jfl=1, jpnrstflo)%val, ( tpjfl (jfl), jfl=1, jpnrstflo)%val, ( tpkfl (jfl), jfl=1, jpnrstflo)%val, ( nisobfl(jfl), jfl=1, jpnrstflo), ( ngrpfl (jfl), jfl=1, jpnrstflo) ++ READ(inum,*) ( tpifl (jfl)%val, jfl=1, jpnrstflo), ( tpjfl (jfl)%val, jfl=1, jpnrstflo), ( tpkfl (jfl)%val, jfl=1, jpnrstflo), ( nisobfl(jfl), jfl=1, jpnrstflo), ( ngrpfl (jfl), jfl=1, jpnrstflo) + CLOSE(inum) + IF( ln_argo ) nisobfl(1:jpnrstflo) = 0 + IF( jpnfl > jpnrstflo )THEN +@@ -221,6 +221,17 @@ + tpifl(kfl_start:kfl_end) = tpifl+0.5 + tpjfl(kfl_start:kfl_end) = tpjfl+0.5 + END SUBROUTINE flo_add_new_ariane_floats ++ FUNCTION fsline( psax, psay, psbx, psby, psx, psy ) result(x) ++ type(rpe_var) :: psax ++ type(rpe_var) :: psay ++ type(rpe_var) :: psbx ++ type(rpe_var) :: psby ++ type(rpe_var) :: psx ++ type(rpe_var) :: psy ++ type(rpe_var) :: x ++ ++ x = psy * ( psbx - psax ) - psx * ( psby - psay ) + psax * psby - psay * psbx ++ END FUNCTION + SUBROUTINE flo_findmesh( pax, pay, pbx, pby, pcx, pcy, pdx, pdy, px ,py ,ptx, pty, ldinmesh ) + type(rpe_var) :: pax + type(rpe_var) :: pay +@@ -243,14 +254,7 @@ + type(rpe_var) :: zbcpt + type(rpe_var) :: zcdpt + type(rpe_var) :: zdapt +- type(rpe_var) :: fsline +- type(rpe_var) :: psax +- type(rpe_var) :: psay +- type(rpe_var) :: psbx +- type(rpe_var) :: psby +- type(rpe_var) :: psx +- type(rpe_var) :: psy +- fsline( psax, psay, psbx, psby, psx, psy ) = psy * ( psbx - psax ) - psx * ( psby - psay ) + psax * psby - psay * psbx ++ + variable_is_used(1204) = .true. + CALL apply_truncation(pax) + variable_is_used(1204) = .true. +@@ -276,9 +280,9 @@ + variable_is_used(1215) = .true. + pty%sbits = emulator_variable_precisions(1215) + variable_is_used(1224) = .true. +- CALL apply_truncation(fsline) +- variable_is_used(1224) = .true. +- fsline%sbits = emulator_variable_precisions(1224) ++ !CALL apply_truncation(fsline) ++ !variable_is_used(1224) = .true. ++ !fsline%sbits = emulator_variable_precisions(1224) + zabt = fsline(pax,pay,pbx,pby,ptx,pty) + variable_is_used(1208) = .true. + CALL apply_truncation(pcx) +@@ -375,7 +379,7 @@ + dlx2 = pla2 * dls + dlx = SIN(dly1) * SIN(dly2) + COS(dly1) * COS(dly2) * COS(dlx2-dlx1) + IF( ABS(dlx) > 1.0_wp ) dlx = 1.0_wp +- dld = ATAN(DSQRT( 1._wp * ( 1._wp-dlx )/( 1._wp+dlx ) )) * 222.24_wp / dls ++ dld = ATAN(DSQRT( 1._wp * ( 1._wp-dlx%val )/( 1._wp+dlx%val ) )) * 222.24_wp / dls + flo_dstnce = dld * 1000._wp + END FUNCTION flo_dstnce + INTEGER FUNCTION flo_dom_alloc() diff --git a/Local/Files/release-4.0.1_r11711/sbcdcy.patch b/Local/Files/release-4.0.1_r11711/sbcdcy.patch new file mode 100644 index 0000000..0c59c62 --- /dev/null +++ b/Local/Files/release-4.0.1_r11711/sbcdcy.patch @@ -0,0 +1,38 @@ +--- sbcdcy.f90 2019-10-22 16:12:38.638918000 +0200 ++++ sbcdcy.f90_new 2019-10-22 16:12:24.151634991 +0200 +@@ -50,6 +50,21 @@ + CALL mpp_sum ( 'sbcdcy', sbc_dcy_alloc ) + IF( sbc_dcy_alloc /= 0 ) CALL ctl_stop( 'STOP', 'sbc_dcy_alloc: failed to allocate arrays' ) + END FUNCTION sbc_dcy_alloc ++FUNCTION fintegral(pt1, pt2, paaa, pbbb, pccc) result(x) ++ type(rpe_var) :: pt1 ++ type(rpe_var) :: pt2 ++ type(rpe_var) :: paaa ++ type(rpe_var) :: pbbb ++ type(rpe_var) :: pccc ++ type(rpe_var) :: ztwopi ++ type(rpe_var) :: zinvtwopi ++ type(rpe_var) :: x ++ ztwopi = 2._wp * rpi ++ zinvtwopi = 1._wp / ztwopi ++ ++ x = paaa * pt2 + zinvtwopi * pbbb * SIN(pccc + ztwopi * pt2) - paaa * pt1 - zinvtwopi * pbbb * SIN(pccc + ztwopi * pt1) ++END FUNCTION ++ + FUNCTION sbc_dcy( pqsrin, l_mask ) RESULT( zqsrout ) + LOGICAL , OPTIONAL , INTENT(in) :: l_mask + type(rpe_var), DIMENSION(jpi,jpj), INTENT(in) :: pqsrin +@@ -76,13 +93,6 @@ + type(rpe_var) :: ztmpm + type(rpe_var) :: ztmpm1 + type(rpe_var) :: ztmpm2 +- type(rpe_var) :: fintegral +- type(rpe_var) :: pt1 +- type(rpe_var) :: pt2 +- type(rpe_var) :: paaa +- type(rpe_var) :: pbbb +- type(rpe_var) :: pccc +- fintegral( pt1, pt2, paaa, pbbb, pccc ) = paaa * pt2 + zinvtwopi * pbbb * SIN(pccc + ztwopi * pt2) - paaa * pt1 - zinvtwopi * pbbb * SIN(pccc + ztwopi * pt1) + ztwopi = 2._wp * rpi + zinvtwopi = 1._wp / ztwopi + zconvrad = ztwopi / 360._wp diff --git a/Local/Files/release-4.0.1_r11711/sbcrnf.patch b/Local/Files/release-4.0.1_r11711/sbcrnf.patch new file mode 100644 index 0000000..ec1bbc9 --- /dev/null +++ b/Local/Files/release-4.0.1_r11711/sbcrnf.patch @@ -0,0 +1,11 @@ +--- sbcrnf.f90 2019-03-22 16:18:35.303941170 +0000 ++++ sbcrnf.f90_new 2019-03-22 16:23:03.979937455 +0000 +@@ -291,7 +291,7 @@ + CALL iom_get( inum, jpdom_data, TRIM( sn_rnf%clvar ), zrnfcl(:,:,2)%val , jm ) + zrnfcl(:,:,2)%sbits = emulator_variable_precisions(1889) + CALL apply_truncation(zrnfcl(:,:,2)) +- zrnfcl(:,:,1) = MAXVAL( zrnfcl(:,:,:), DIM=3 ) ++ zrnfcl(:,:,1) = MAXVAL( zrnfcl(:,:,:)%val, DIM=3 ) + END DO + CALL iom_close( inum ) + h_rnf(:,:) = 1. diff --git a/Local/Files/stpctl.patch b/Local/Files/release-4.0.1_r11711/stpctl.patch similarity index 100% rename from Local/Files/stpctl.patch rename to Local/Files/release-4.0.1_r11711/stpctl.patch diff --git a/Local/Files/release-4.0/dommsk.patch b/Local/Files/release-4.0/dommsk.patch new file mode 100644 index 0000000..57f7297 --- /dev/null +++ b/Local/Files/release-4.0/dommsk.patch @@ -0,0 +1,15 @@ +--- dommsk.f90 2019-03-22 16:18:28.367941266 +0000 ++++ dommsk.f90_new 2019-03-22 16:22:27.559937959 +0000 +@@ -120,9 +120,9 @@ + wumask(:,:,jk) = umask(:,:,jk) * umask(:,:,jk-1) + wvmask(:,:,jk) = vmask(:,:,jk) * vmask(:,:,jk-1) + END DO +- ssmask (:,:) = MAXVAL( tmask(:,:,:), DIM=3 ) +- ssumask(:,:) = MAXVAL( umask(:,:,:), DIM=3 ) +- ssvmask(:,:) = MAXVAL( vmask(:,:,:), DIM=3 ) ++ ssmask (:,:) = MAXVAL( tmask(:,:,:)%val, DIM=3 ) ++ ssumask(:,:) = MAXVAL( umask(:,:,:)%val, DIM=3 ) ++ ssvmask(:,:) = MAXVAL( vmask(:,:,:)%val, DIM=3 ) + iif = nn_hls + iil = nlci - nn_hls + 1 + ijf = nn_hls diff --git a/Local/Files/dynvor.patch b/Local/Files/release-4.0/dynvor.patch similarity index 100% rename from Local/Files/dynvor.patch rename to Local/Files/release-4.0/dynvor.patch diff --git a/Local/Files/file_fixes.cmd b/Local/Files/release-4.0/file_fixes.cmd similarity index 100% rename from Local/Files/file_fixes.cmd rename to Local/Files/release-4.0/file_fixes.cmd diff --git a/Local/Files/sbcdcy.patch b/Local/Files/release-4.0/sbcdcy.patch similarity index 100% rename from Local/Files/sbcdcy.patch rename to Local/Files/release-4.0/sbcdcy.patch diff --git a/Local/Files/sbcrnf.patch b/Local/Files/release-4.0/sbcrnf.patch similarity index 100% rename from Local/Files/sbcrnf.patch rename to Local/Files/release-4.0/sbcrnf.patch diff --git a/Local/Files/release-4.0/stpctl.patch b/Local/Files/release-4.0/stpctl.patch new file mode 100644 index 0000000..d4b7347 --- /dev/null +++ b/Local/Files/release-4.0/stpctl.patch @@ -0,0 +1,47 @@ +--- stpctl.f90 2019-03-22 10:25:27.842041000 +0100 ++++ stpctl.f90_new 2019-03-22 10:29:42.380830235 +0100 +@@ -102,20 +102,20 @@ + ENDIF + IF( ll_wrtruns ) THEN + WRITE(numrun,9500) kt,real( zmax(1) ),real( zmax(2) ),real( -zmax(3) ),real( zmax(4) ) +- istatus = NF90_PUT_VAR( idrun, idssh, (/ zmax(1)/)%val , (/kt/), (/1/) ) +- istatus = NF90_PUT_VAR( idrun, idu, (/ zmax(2)/)%val , (/kt/), (/1/) ) +- istatus = NF90_PUT_VAR( idrun, ids1, (/-zmax(3)/)%val , (/kt/), (/1/) ) +- istatus = NF90_PUT_VAR( idrun, ids2, (/ zmax(4)/)%val , (/kt/), (/1/) ) +- istatus = NF90_PUT_VAR( idrun, idt1, (/-zmax(5)/)%val , (/kt/), (/1/) ) +- istatus = NF90_PUT_VAR( idrun, idt2, (/ zmax(6)/)%val , (/kt/), (/1/) ) ++ istatus = NF90_PUT_VAR( idrun, idssh, (/ zmax(1)%val/) , (/kt/), (/1/) ) ++ istatus = NF90_PUT_VAR( idrun, idu, (/ zmax(2)%val/) , (/kt/), (/1/) ) ++ istatus = NF90_PUT_VAR( idrun, ids1, (/-zmax(3)%val/) , (/kt/), (/1/) ) ++ istatus = NF90_PUT_VAR( idrun, ids2, (/ zmax(4)%val/) , (/kt/), (/1/) ) ++ istatus = NF90_PUT_VAR( idrun, idt1, (/-zmax(5)%val/) , (/kt/), (/1/) ) ++ istatus = NF90_PUT_VAR( idrun, idt2, (/ zmax(6)%val/) , (/kt/), (/1/) ) + IF( ln_zad_Aimp ) THEN +- istatus = NF90_PUT_VAR( idrun, idw1, (/ zmax(8)/)%val , (/kt/), (/1/) ) +- istatus = NF90_PUT_VAR( idrun, idc1, (/ zmax(9)/)%val , (/kt/), (/1/) ) ++ istatus = NF90_PUT_VAR( idrun, idw1, (/ zmax(8)%val/) , (/kt/), (/1/) ) ++ istatus = NF90_PUT_VAR( idrun, idc1, (/ zmax(9)%val/) , (/kt/), (/1/) ) + ENDIF + IF( MOD( kt , 100 ) == 0 ) istatus = NF90_SYNC(idrun) + IF( kt == nitend ) istatus = NF90_CLOSE(idrun) + END IF +- IF( ( ln_ctl .OR. lsomeoce ) .AND. ( zmax(1) > 20._wp .OR. zmax(2) > 10._wp .OR. zmax(3) >= 0._wp .OR. zmax(4) >= 100._wp .OR. zmax(4) < 0._wp .OR. ISNAN( zmax(1) + zmax(2) + zmax(3) ) ) ) THEN ++ IF( ( ln_ctl .OR. lsomeoce ) .AND. ( zmax(1) > 20._wp .OR. zmax(2) > 10._wp .OR. zmax(3) >= 0._wp .OR. zmax(4) >= 100._wp .OR. zmax(4) < 0._wp .OR. ISNAN( zmax(1)%val + zmax(2)%val + zmax(3)%val ) ) ) THEN + IF( lk_mpp .AND. ln_ctl ) THEN + zzz%sbits = emulator_variable_precisions(3356) + CALL apply_truncation(zzz) +@@ -132,10 +132,10 @@ + zzz%sbits = emulator_variable_precisions(3356) + CALL apply_truncation(zzz) + ELSE +- ih(:) = MAXLOC( ABS( sshn(:,:) ) ) + (/ nimpp - 1, njmpp - 1 /) +- iu(:) = MAXLOC( ABS( un (:,:,:) ) ) + (/ nimpp - 1, njmpp - 1, 0 /) +- is1(:) = MINLOC( tsn(:,:,:,jp_sal), mask = tmask(:,:,:) == 1._wp ) + (/ nimpp - 1, njmpp - 1, 0 /) +- is2(:) = MAXLOC( tsn(:,:,:,jp_sal), mask = tmask(:,:,:) == 1._wp ) + (/ nimpp - 1, njmpp - 1, 0 /) ++ ih(:) = MAXLOC( ABS( sshn(:,:)%val ) ) + (/ nimpp - 1, njmpp - 1 /) ++ iu(:) = MAXLOC( ABS( un (:,:,:)%val ) ) + (/ nimpp - 1, njmpp - 1, 0 /) ++ is1(:) = MINLOC( tsn(:,:,:,jp_sal)%val, mask = tmask(:,:,:)%val == 1._wp ) + (/ nimpp - 1, njmpp - 1, 0 /) ++ is2(:) = MAXLOC( tsn(:,:,:,jp_sal)%val, mask = tmask(:,:,:)%val == 1._wp ) + (/ nimpp - 1, njmpp - 1, 0 /) + ENDIF + WRITE(ctmp1,*) ' stp_ctl: |ssh| > 20 m or |U| > 10 m/s or S <= 0 or S >= 100 or NaN encounter in the tests' + WRITE(ctmp2,9100) kt,real( zmax(1) ), ih(1) , ih(2) diff --git a/Local/local_recipe.cmd b/Local/local_recipe.cmd index e5e2425..d2c3bfa 100755 --- a/Local/local_recipe.cmd +++ b/Local/local_recipe.cmd @@ -53,7 +53,8 @@ cp ${AutoRPE_Output}/* ProcessedOutputs/ set +xuve # Apply known issues -./Files/file_fixes.cmd +echo 'Applying fixes' +./Files/${NEMO_VERSION}/file_fixes.cmd # Create namelist_precisions cd ${RUNDIR}/AutoRPE -- GitLab From 49a1acd781f9d1735b08277eaa633881a18965f8 Mon Sep 17 00:00:00 2001 From: sparonuz Date: Thu, 24 Oct 2019 12:33:30 +0200 Subject: [PATCH 2/4] copy of ProcessedOutputs from local to remote done automatically. --- Local/local_recipe.cmd | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Local/local_recipe.cmd b/Local/local_recipe.cmd index d2c3bfa..c838e42 100755 --- a/Local/local_recipe.cmd +++ b/Local/local_recipe.cmd @@ -76,3 +76,7 @@ new_namelist_ref=${RUNDIR}/AutoRPE/ParameterNamelists/Modified/namelist_ref # Move everything needed mv namelist_precisions vault.pkl ${new_namelist_cfg} ${new_namelist_ref} ${RUNDIR}/../Remote/Files + +#Copying source to the remote +cp -r ${RUNDIR}/ProcessedOutputs ${RUNDIR}/../Remote + -- GitLab From 01503ce900e042a04b79d074c6fde347a4f0abd9 Mon Sep 17 00:00:00 2001 From: sparonuz Date: Fri, 25 Oct 2019 11:25:43 +0200 Subject: [PATCH 3/4] added check on python3 available en command line. --- Local/local_recipe.cmd | 1 + 1 file changed, 1 insertion(+) diff --git a/Local/local_recipe.cmd b/Local/local_recipe.cmd index c838e42..ff37b06 100755 --- a/Local/local_recipe.cmd +++ b/Local/local_recipe.cmd @@ -6,6 +6,7 @@ set -xuve RUNDIR=$(pwd) git clone http://earth.bsc.es/gitlab/otinto/AutoRPE.git +python3 -V >/dev/null 2>&1 || { echo "load python3 and try again ..."; exit 1 ; } NEMO_VERSION= NEMO_SOURCES= -- GitLab From ed0d5a3e324c821808e6cd69bb5fbf060e201236 Mon Sep 17 00:00:00 2001 From: sparonuz Date: Fri, 25 Oct 2019 11:40:19 +0200 Subject: [PATCH 4/4] Different NEMO release are now taken into account. --- Local/Files/release-4.0.1_r11711/file_fixes.cmd | 5 +++-- Local/local_recipe.cmd | 3 +-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Local/Files/release-4.0.1_r11711/file_fixes.cmd b/Local/Files/release-4.0.1_r11711/file_fixes.cmd index 45aa6f8..bbd3aae 100755 --- a/Local/Files/release-4.0.1_r11711/file_fixes.cmd +++ b/Local/Files/release-4.0.1_r11711/file_fixes.cmd @@ -1,6 +1,6 @@ #folder= folder=./ProcessedOutputs/ - +NEMO_VERSION=$1 file=lbclnk.f90 to_replace="ptab%val_ptr(kfld)%pt" @@ -126,8 +126,9 @@ sed "s#${to_replace}#${replacement}#g" ${folder}/${file} -i #Special case patch (Too hard for a sed command) for patch_file in Files/${NEMO_VERSION}/*.patch do + echo ${file}' patching file '${file} patch_name=${patch_file##*/} file=${patch_name%.*}.f90 patch ${folder}/${file} ${patch_file} - echo ${file}' file patched' + echo 'file patched' done diff --git a/Local/local_recipe.cmd b/Local/local_recipe.cmd index ff37b06..16bcec2 100755 --- a/Local/local_recipe.cmd +++ b/Local/local_recipe.cmd @@ -55,8 +55,7 @@ set +xuve # Apply known issues echo 'Applying fixes' -./Files/${NEMO_VERSION}/file_fixes.cmd - +./Files/${NEMO_VERSION}/file_fixes.cmd ${NEMO_VERSION} # Create namelist_precisions cd ${RUNDIR}/AutoRPE python3 NamelistPrecisionsGenerator.py -- GitLab