Changeset 3586
- Timestamp:
- 2012-11-16T18:42:50+01:00 (11 years ago)
- Location:
- branches/2012/dev_MERCATOR_2012_rev3555/NEMOGCM
- Files:
-
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2012/dev_MERCATOR_2012_rev3555/NEMOGCM/ARCH/arch-ifort_MERCATOR_CLUSTER.fcm
r3294 r3586 18 18 %NCDF_LIB -L $(NETCDF_LIB) -lnetcdf 19 19 %FC mpif90 20 %FCFLAGS -assume byterecl -convert big_endian -i4 -r8 -automatic -align all -O 320 %FCFLAGS -assume byterecl -convert big_endian -i4 -r8 -automatic -align all -O0 21 21 %FFLAGS %FCFLAGS 22 22 %LD mpif90 -
branches/2012/dev_MERCATOR_2012_rev3555/NEMOGCM/CONFIG/AMM12/EXP00/namelist
r3583 r3586 869 869 ! ln_ssh Logical switch for SSH observations 870 870 871 ln_sst = . false. ! Logical switch for SST observations872 ! ln_reysst Logical switch for Reynolds observations873 ! ln_ghrsst Logical switch for GHRSST observations871 ln_sst = .true. ! Logical switch for SST observations 872 ln_reysst = .true. ! ln_reysst Logical switch for Reynolds observations 873 ln_ghrsst = .false. ! ln_ghrsst Logical switch for GHRSST observations 874 874 875 875 ln_sstfb = .false. ! Logical switch for feedback SST data -
branches/2012/dev_MERCATOR_2012_rev3555/NEMOGCM/CONFIG/AMM12_PISCES/EXP00/namelist
r3309 r3586 898 898 ! ln_ssh Logical switch for SSH observations 899 899 900 ln_sst = . false. ! Logical switch for SST observations901 ! ln_reysst Logical switch for Reynolds observations902 ! ln_ghrsst Logical switch for GHRSST observations900 ln_sst = .true. ! Logical switch for SST observations 901 ln_reysst = .true. ! ln_reysst Logical switch for Reynolds observations 902 ln_ghrsst = .false. ! ln_ghrsst Logical switch for GHRSST observations 903 903 904 904 ln_sstfb = .false. ! Logical switch for feedback SST data -
branches/2012/dev_MERCATOR_2012_rev3555/NEMOGCM/CONFIG/GYRE/EXP00/namelist
r3306 r3586 889 889 ! ln_ssh Logical switch for SSH observations 890 890 891 ln_sst = . false.! Logical switch for SST observations892 893 891 ln_sst = .true. ! Logical switch for SST observations 892 ln_reysst = .true. ! ln_reysst Logical switch for Reynolds observations 893 ln_ghrsst = .false. ! ln_ghrsst Logical switch for GHRSST observations 894 894 895 895 ln_sstfb = .false. ! Logical switch for feedback SST data -
branches/2012/dev_MERCATOR_2012_rev3555/NEMOGCM/CONFIG/ORCA2_LIM/EXP00/namelist
r3306 r3586 893 893 ! ln_ssh Logical switch for SSH observations 894 894 895 ln_sst = . false. ! Logical switch for SST observations896 ! ln_reysst Logical switch for Reynolds observations897 ! ln_ghrsst Logical switch for GHRSST observations895 ln_sst = .true. ! Logical switch for SST observations 896 ln_reysst = .true. ! ln_reysst Logical switch for Reynolds observations 897 ln_ghrsst = .false. ! ln_ghrsst Logical switch for GHRSST observations 898 898 899 899 ln_sstfb = .false. ! Logical switch for feedback SST data -
branches/2012/dev_MERCATOR_2012_rev3555/NEMOGCM/CONFIG/ORCA2_OFF_PISCES/EXP00/namelist
r3306 r3586 890 890 ! ln_ssh Logical switch for SSH observations 891 891 892 ln_sst = . false. ! Logical switch for SST observations893 ! ln_reysst Logical switch for Reynolds observations894 ! ln_ghrsst Logical switch for GHRSST observations892 ln_sst = .true. ! Logical switch for SST observations 893 ln_reysst = .true. ! ln_reysst Logical switch for Reynolds observations 894 ln_ghrsst = .false. ! ln_ghrsst Logical switch for GHRSST observations 895 895 896 896 ln_sstfb = .false. ! Logical switch for feedback SST data -
branches/2012/dev_MERCATOR_2012_rev3555/NEMOGCM/NEMO/OPA_SRC/OBS/diaobs.F90
r3294 r3586 106 106 LOGICAL, DIMENSION(:), ALLOCATABLE :: & 107 107 & ld_velav !: Velocity data is daily averaged 108 LOGICAL, DIMENSION(:), ALLOCATABLE :: & 109 & ld_sstnight !: SST observation corresponds to night mean 108 110 109 111 !!---------------------------------------------------------------------- … … 737 739 ALLOCATE(sstdata(nsstsets)) 738 740 ALLOCATE(sstdatqc(nsstsets)) 741 ALLOCATE(ld_sstnight(nsstsets)) 739 742 sstdata(:)%nsurf=0 740 sstdatqc(:)%nsurf=0 743 sstdatqc(:)%nsurf=0 744 ld_sstnight(:)=.false. 741 745 742 746 nsstsets = 0 … … 745 749 746 750 nsstsets = nsstsets + 1 751 752 ld_sstnight(nsstsets) = .TRUE. 747 753 748 754 CALL obs_rea_sst_rey( reysstname, reysstfmt, sstdata(nsstsets), & … … 757 763 758 764 nsstsets = nsstsets + 1 765 766 ld_sstnight(nsstsets) = .TRUE. 759 767 760 768 CALL obs_rea_sst( 1, sstdata(nsstsets), jnumsst, & … … 774 782 775 783 nsstsets = nsstsets + 1 784 785 ld_sstnight(nsstsets) = .TRUE. 776 786 777 787 CALL obs_rea_sst( 0, sstdata(nsstsets), 1, & … … 1092 1102 IF ( ln_sst ) THEN 1093 1103 DO jsstset = 1, nsstsets 1094 CALL obs_sst_opt( sstdatqc(jsstset), & 1095 & kstp, jpi, jpj, nit000, tsn(:,:,1,jp_tem), & 1096 & tmask(:,:,1), n2dint ) 1104 CALL obs_sst_opt( sstdatqc(jsstset), & 1105 & kstp, jpi, jpj, nit000, idaystp, & 1106 & tsn(:,:,1,jp_tem), tmask(:,:,1), & 1107 & n2dint, ld_sstnight(jsstset) ) 1097 1108 END DO 1098 1109 ENDIF -
branches/2012/dev_MERCATOR_2012_rev3555/NEMOGCM/NEMO/OPA_SRC/OBS/obs_oper.F90
r2715 r3586 614 614 END SUBROUTINE obs_sla_opt 615 615 616 SUBROUTINE obs_sst_opt( sstdatqc, kt, kpi, kpj, kit000, & 617 & psstn, psstmask, k2dint ) 618 616 SUBROUTINE obs_sst_opt( sstdatqc, kt, kpi, kpj, kit000, kdaystp, & 617 & psstn, psstmask, k2dint, ld_nightav ) 619 618 !!----------------------------------------------------------------------- 620 619 !! … … 647 646 !! * Modules used 648 647 USE obs_surf_def ! Definition of storage space for surface observations 648 USE sbcdcy 649 649 650 650 IMPLICIT NONE … … 659 659 ! (kit000-1 = restart time) 660 660 INTEGER, INTENT(IN) :: k2dint ! Horizontal interpolation type (see header) 661 INTEGER, INTENT(IN) :: kdaystp ! Number of time steps per day 661 662 REAL(KIND=wp), INTENT(IN), DIMENSION(kpi,kpj) :: & 662 663 & psstn, & ! Model SST field 663 664 & psstmask ! Land-sea mask 664 665 665 666 !! * Local declarations 666 667 INTEGER :: ji … … 670 671 INTEGER :: isst 671 672 INTEGER :: iobs 673 INTEGER :: idayend 672 674 REAL(KIND=wp) :: zlam 673 675 REAL(KIND=wp) :: zphi 674 676 REAL(KIND=wp) :: zext(1), zobsmask(1) 677 REAL(KIND=wp) :: zdaystp 678 INTEGER, DIMENSION(:,:), SAVE, ALLOCATABLE :: & 679 & icount_sstnight, & 680 & imask_night 681 REAL(kind=wp), DIMENSION(:,:), SAVE, ALLOCATABLE :: & 682 & zintmp, & 683 & zouttmp, & 684 & zmeanday ! to compute model sst in region of 24h daylight (pole) 675 685 REAL(kind=wp), DIMENSION(2,2,1) :: & 676 686 & zweig … … 678 688 & zmask, & 679 689 & zsstl, & 690 & zsstm, & 680 691 & zglam, & 681 692 & zgphi … … 683 694 & igrdi, & 684 695 & igrdj 696 LOGICAL, INTENT(IN) :: ld_nightav 685 697 686 698 !----------------------------------------------------------------------- … … 690 702 inrc = kt - kit000 + 2 691 703 isst = sstdatqc%nsstp(inrc) 704 705 IF ( ld_nightav ) THEN 706 707 ! Initialize array for night mean 708 709 IF ( kt .EQ. 0 ) THEN 710 ALLOCATE ( icount_sstnight(kpi,kpj) ) 711 ALLOCATE ( imask_night(kpi,kpj) ) 712 ALLOCATE ( zintmp(kpi,kpj) ) 713 ALLOCATE ( zouttmp(kpi,kpj) ) 714 ALLOCATE ( zmeanday(kpi,kpj) ) 715 nday_qsr = -1 ! initialisation flag for nbc_dcy 716 ENDIF 717 718 ! Initialize daily mean for first timestep 719 idayend = MOD( kt - kit000 + 1, kdaystp ) 720 721 ! Added kt == 0 test to catch restart case 722 IF ( idayend == 1 .OR. kt == 0) THEN 723 IF (lwp) WRITE(numout,*) 'Reset sstdatqc%vdmean on time-step: ',kt 724 DO jj = 1, jpj 725 DO ji = 1, jpi 726 sstdatqc%vdmean(ji,jj) = 0.0 727 zmeanday(ji,jj) = 0.0 728 icount_sstnight(ji,jj) = 0 729 END DO 730 END DO 731 ENDIF 732 733 zintmp(:,:) = 0.0 734 zouttmp(:,:) = sbc_dcy( zintmp(:,:), .TRUE. ) 735 imask_night(:,:) = INT( zouttmp(:,:) ) 736 737 DO jj = 1, jpj 738 DO ji = 1, jpi 739 ! Increment the temperature field for computing night mean and counter 740 sstdatqc%vdmean(ji,jj) = sstdatqc%vdmean(ji,jj) & 741 & + psstn(ji,jj)*imask_night(ji,jj) 742 zmeanday(ji,jj) = zmeanday(ji,jj) + psstn(ji,jj) 743 icount_sstnight(ji,jj) = icount_sstnight(ji,jj) + imask_night(ji,jj) 744 END DO 745 END DO 746 747 ! Compute the daily mean at the end of day 748 749 zdaystp = 1.0 / REAL( kdaystp ) 750 751 IF ( idayend == 0 ) THEN 752 DO jj = 1, jpj 753 DO ji = 1, jpi 754 ! Test if "no night" point 755 IF ( icount_sstnight(ji,jj) .NE. 0 ) THEN 756 sstdatqc%vdmean(ji,jj) = sstdatqc%vdmean(ji,jj) & 757 & / icount_sstnight(ji,jj) 758 ELSE 759 sstdatqc%vdmean(ji,jj) = zmeanday(ji,jj) * zdaystp 760 ENDIF 761 END DO 762 END DO 763 ENDIF 764 765 ENDIF 692 766 693 767 ! Get the data for interpolation … … 722 796 CALL obs_int_comm_2d( 2, 2, isst, & 723 797 & igrdi, igrdj, psstn, zsstl ) 724 798 799 ! At the end of the day get interpolated means 800 IF ( idayend == 0 .AND. ld_nightav ) THEN 801 802 ALLOCATE( & 803 & zsstm(2,2,isst) & 804 & ) 805 806 CALL obs_int_comm_2d( 2, 2, isst, igrdi, igrdj, & 807 & sstdatqc%vdmean(:,:), zsstm ) 808 809 ENDIF 810 725 811 ! Loop over observations 726 812 … … 756 842 757 843 ! Interpolate the model SST to the observation point 758 CALL obs_int_h2d( 1, 1, & 844 845 IF ( ld_nightav ) THEN 846 847 IF ( idayend == 0 ) THEN 848 ! Daily averaged/diurnal cycle of SST data 849 CALL obs_int_h2d( 1, 1, & 850 & zweig, zsstm(:,:,iobs), zext ) 851 ELSE 852 CALL ctl_stop( ' ld_nightav is set to true: a nonzero' // & 853 & ' number of night SST data should' // & 854 & ' only occur at the end of a given day' ) 855 ENDIF 856 857 ELSE 858 859 CALL obs_int_h2d( 1, 1, & 759 860 & zweig, zsstl(:,:,iobs), zext ) 861 862 ENDIF 760 863 761 864 sstdatqc%rmod(jobs,1) = zext(1) … … 772 875 & zsstl & 773 876 & ) 877 878 ! At the end of the day also get interpolated means 879 IF ( idayend == 0 .AND. ld_nightav ) THEN 880 DEALLOCATE( & 881 & zsstm & 882 & ) 883 ENDIF 774 884 775 885 sstdatqc%nsurfup = sstdatqc%nsurfup + isst -
branches/2012/dev_MERCATOR_2012_rev3555/NEMOGCM/NEMO/OPA_SRC/OBS/obs_read_seaice.F90
r2287 r3586 326 326 & iindx ) 327 327 328 CALL obs_surf_alloc( seaicedata, iobs, kvars, kextr, kstp ) 328 CALL obs_surf_alloc( seaicedata, iobs, & 329 kvars, kextr, kstp, jpi, jpj ) 329 330 330 331 ! * Read obs/positions, QC, all variable and assign to seaicedata -
branches/2012/dev_MERCATOR_2012_rev3555/NEMOGCM/NEMO/OPA_SRC/OBS/obs_read_sla.F90
r2287 r3586 391 391 & iindx ) 392 392 393 CALL obs_surf_alloc( sladata, iobs, kvars, kextr, kstp ) 393 CALL obs_surf_alloc( sladata, iobs, kvars, kextr, & 394 & jpi, jpj, kstp ) 394 395 395 396 ! * Read obs/positions, QC, all variable and assign to sladata -
branches/2012/dev_MERCATOR_2012_rev3555/NEMOGCM/NEMO/OPA_SRC/OBS/obs_read_sst.F90
r2287 r3586 326 326 & iindx ) 327 327 328 CALL obs_surf_alloc( sstdata, iobs, kvars, kextr, kstp )328 CALL obs_surf_alloc( sstdata, iobs, kvars, kextr, kstp, jpi, jpj ) 329 329 330 330 ! * Read obs/positions, QC, all variable and assign to sstdata … … 701 701 ! Allocate obs_surf data structure for time sorted data 702 702 703 CALL obs_surf_alloc( sstdata, inumobs, kvars, kextra, kstp )703 CALL obs_surf_alloc( sstdata, inumobs, kvars, kextra, kstp, jpi, jpj ) 704 704 705 705 pjul = pjulini + 1 -
branches/2012/dev_MERCATOR_2012_rev3555/NEMOGCM/NEMO/OPA_SRC/OBS/obs_surf_def.F90
r2287 r3586 47 47 INTEGER :: nextra !: Number of extra fields at observation points 48 48 INTEGER :: nstp !: Number of time steps 49 INTEGER :: npi !: Number of 3D grid points 50 INTEGER :: npj 49 51 INTEGER :: nsurfup !: Observation counter used in obs_oper 50 52 … … 79 81 & rext !: Extra fields interpolated to observation points 80 82 83 REAL(KIND=wp), POINTER, DIMENSION(:,:) :: & 84 & vdmean !: Time averaged of model field 85 81 86 ! Arrays with size equal to the number of time steps in the window 82 87 … … 103 108 CONTAINS 104 109 105 SUBROUTINE obs_surf_alloc( surf, ksurf, kvar, kextra, kstp )110 SUBROUTINE obs_surf_alloc( surf, ksurf, kvar, kextra, kstp, kpi, kpj ) 106 111 !!---------------------------------------------------------------------- 107 112 !! *** ROUTINE obs_surf_alloc *** … … 120 125 INTEGER, INTENT(IN) :: kextra ! Number of extra fields at observation points 121 126 INTEGER, INTENT(IN) :: kstp ! Number of time steps 127 INTEGER, INTENT(IN) :: kpi ! Number of 3D grid points 128 INTEGER, INTENT(IN) :: kpj 122 129 123 130 !!* Local variables … … 131 138 surf%nvar = kvar 132 139 surf%nstp = kstp 140 surf%npi = kpi 141 surf%npj = kpj 133 142 134 143 ! Allocate arrays of number of surface data size … … 174 183 & ) 175 184 185 ! Allocate arrays of size number of grid points 186 187 ALLOCATE( & 188 & surf%vdmean(kpi,kpj) & 189 & ) 190 176 191 ! Set defaults for compression indices 177 192 … … 242 257 & ) 243 258 259 ! Deallocate arrays of size number of grid points size times 260 ! number of variables 261 262 DEALLOCATE( & 263 & surf%vdmean & 264 & ) 265 244 266 ! Deallocate arrays of number of time step size 245 267 … … 300 322 IF ( lallocate ) THEN 301 323 CALL obs_surf_alloc( newsurf, insurf, surf%nvar, & 302 & surf%nextra, surf%nstp )324 & surf%nextra, surf%nstp, surf%npi, surf%npj ) 303 325 ENDIF 304 326 -
branches/2012/dev_MERCATOR_2012_rev3555/NEMOGCM/NEMO/OPA_SRC/SBC/sbcdcy.F90
r3294 r3586 49 49 50 50 51 FUNCTION sbc_dcy( pqsrin ) RESULT( zqsrout )51 FUNCTION sbc_dcy( pqsrin, l_mask ) RESULT( zqsrout ) 52 52 !!---------------------------------------------------------------------- 53 53 !! *** ROUTINE sbc_dcy *** … … 63 63 !! Part 1: a diurnally forced OGCM. Climate Dynamics 29:6, 575-590. 64 64 !!---------------------------------------------------------------------- 65 LOGICAL, OPTIONAL, INTENT(in) :: l_mask ! use the routine for night mask computation 65 66 REAL(wp), DIMENSION(jpi,jpj), INTENT(in) :: pqsrin ! input daily QSR flux 66 67 !! 67 68 INTEGER :: ji, jj ! dummy loop indices 69 INTEGER, DIMENSION(jpi,jpj) :: imask_night ! night mask 68 70 REAL(wp) :: ztwopi, zinvtwopi, zconvrad 69 71 REAL(wp) :: zlo, zup, zlousd, zupusd 70 72 REAL(wp) :: zdsws, zdecrad, ztx, zsin, zcos 71 73 REAL(wp) :: ztmp, ztmp1, ztmp2, ztest 74 REAL(wp) :: ztmpm, ztmpm1, ztmpm2 72 75 REAL(wp), DIMENSION(jpi,jpj) :: zqsrout ! output QSR flux with diurnal cycle 73 76 !---------------------------statement functions------------------------ … … 90 93 zup = zlo + ( REAL(nn_fsbc, wp) * rdttra(1) ) / rday 91 94 ! 92 IF( nday_qsr == -1 ) THEN ! first time step only 95 IF( nday_qsr == -1 ) THEN ! first time step only 93 96 IF(lwp) THEN 94 97 WRITE(numout,*) … … 120 123 zdecrad = (-23.5 * zconvrad) * COS( zdsws * ztwopi / REAL(nyear_len(1),wp) ) 121 124 ! Compute A and B needed to compute the time integral of the diurnal cycle 122 125 123 126 zsin = SIN( zdecrad ) ; zcos = COS( zdecrad ) 124 127 DO jj = 1, jpj … … 129 132 END DO 130 133 END DO 131 132 134 ! Compute the time of dawn and dusk 133 135 … … 156 158 rdawn(:,:) = MOD( (rdawn(:,:) + 1._wp), 1._wp ) 157 159 rdusk(:,:) = MOD( (rdusk(:,:) + 1._wp), 1._wp ) 158 159 160 ! 2.2 Compute the scalling function: 160 161 ! S* = the inverse of the time integral of the diurnal cycle from dawm to dusk … … 185 186 ! 186 187 ENDIF 187 188 188 ! 3. update qsr with the diurnal cycle 189 189 ! ------------------------------------ 190 190 191 imask_night(:,:) = 0 191 192 DO jj = 1, jpj 192 193 DO ji = 1, jpi 194 ztmpm = 0.0 193 195 IF( ABS(rab(ji,jj)) < 1 ) THEN ! day duration is less than 24h 194 196 ! … … 200 202 ztmp = fintegral(zlousd, zupusd, raa(ji,jj), rbb(ji,jj), rcc(ji,jj)) 201 203 zqsrout(ji,jj) = pqsrin(ji,jj) * ztmp * rscal(ji,jj) 204 ztmpm = zupusd - zlousd 205 IF ( ztmpm .EQ. 0 ) imask_night(ji,jj) = 1 202 206 ! 203 207 ELSE ! day time in two parts … … 205 209 zupusd = MIN(zup, rdusk(ji,jj)) 206 210 ztmp1 = fintegral(zlousd, zupusd, raa(ji,jj), rbb(ji,jj), rcc(ji,jj)) 211 ztmpm1=zupusd-zlousd 207 212 zlousd = MAX(zlo, rdawn(ji,jj)) 208 213 zupusd = MAX(zup, rdawn(ji,jj)) 209 214 ztmp2 = fintegral(zlousd, zupusd, raa(ji,jj), rbb(ji,jj), rcc(ji,jj)) 215 ztmpm2 =zupusd-zlousd 210 216 ztmp = ztmp1 + ztmp2 217 ztmpm = ztmpm1 + ztmpm2 211 218 zqsrout(ji,jj) = pqsrin(ji,jj) * ztmp * rscal(ji,jj) 219 IF (ztmpm .EQ. 0.) imask_night(ji,jj) = 1 212 220 ENDIF 213 221 ELSE ! 24h light or 24h night … … 216 224 ztmp = fintegral(zlo, zup, raa(ji,jj), rbb(ji,jj), rcc(ji,jj)) 217 225 zqsrout(ji,jj) = pqsrin(ji,jj) * ztmp * rscal(ji,jj) 226 imask_night(ji,jj) = 0 218 227 ! 219 228 ELSE ! No day 220 229 zqsrout(ji,jj) = 0.e0 230 imask_night(ji,jj) = 1 221 231 ENDIF 222 232 ENDIF 223 233 END DO 224 234 END DO 235 ! 236 IF ( PRESENT(l_mask) .AND. l_mask ) THEN 237 zqsrout(:,:) = float(imask_night(:,:)) 238 ENDIF 225 239 ! 226 240 IF( nn_timing == 1 ) CALL timing_stop('sbc_dcy') -
branches/2012/dev_MERCATOR_2012_rev3555/NEMOGCM/SETTE/BATCH_TEMPLATE/batch-ifort_MERCATOR_CLUSTER
r3583 r3586 57 57 # Run the parallel MPI executable 58 58 # 59 echo "Running time ${MPIRUN} ./opa" 60 # 59 61 if [ MPI_FLAG == "yes" ]; then 60 echo "Running time ${MPIRUN} ./opa" 61 time ${MPIRUN}./opa62 #cbr time ${MPIRUN} ./opa 63 mpirun -np $OCEANCORES ./opa 62 64 #cbr mpirun -np $OCEANCORES ./opa 63 65 else 64 echo "Running time ./opa"65 66 time ./opa 66 67 fi -
branches/2012/dev_MERCATOR_2012_rev3555/NEMOGCM/SETTE/prepare_job.sh
r3583 r3586 11 11 # prepare_job.sh : creates the job script for running job 12 12 ###################################################### 13 #set - vx13 #set -x 14 14 set -o posix 15 15 #set -u 16 16 #set -e 17 # +17 # 18 18 # 19 19 # ================ … … 30 30 # :: 31 31 # 32 # $ ./prepare_job.sh INPUT_FILE_CONFIG_NAME NUMBER_PROC TEST_NAME MPI_ FLAG JOB_FILE32 # $ ./prepare_job.sh INPUT_FILE_CONFIG_NAME NUMBER_PROC TEST_NAME MPI_INTERACT MPI_FLAG 33 33 # 34 34 # … … 36 36 # =========== 37 37 # 38 # Part of the SETTE package to run tests for NEMO38 # Simple job for SET TESTS for NEMO (SETTE) 39 39 # 40 # prepare the script $JOB_FILE to run the tests 40 # get input files (if needed) : tar file 41 # (note this job needs to have an input_CONFIG.cfg in which can be found input tar file name) 42 # 43 # runs job in interactive or batch mode : all jobs using 1 process are run interactive, and all MPP jobs are 44 # 45 # run in batch (MPI_INTERACT="no") or interactive (MPI_INTERACT="yes") see sette.sh and BATCH_TEMPLATE directory 46 # 47 # and call post_test_tidyup function (that moves in NEMO_VALIDATION_DIR solver.stat, tracer.stat (for LOBSTER & PISCES) & ocean.output) 41 48 # 42 49 # EXAMPLES … … 45 52 # :: 46 53 # 47 # $ ./prepare_job.sh INPUT_FILE_CONFIG_NAME NUMBER_PROC TEST_NAME MPI_FLAG $JOB_FILE 48 # 49 # prepare the $JOB_FILE for execution 54 # $ ./fcm_job.sh INPUT_FILE_CONFIG_NAME NUMBER_PROC TEST_NAME MPI_INTERACT MPI_FLAG 55 # 56 # run a job of config GYRE with 1 processor SHORT test ( 5 days ) using an interactive run without mpirun 57 # $ ./fcm_job.sh input_GYRE.cfg 1 SHORT yes no 58 # 59 # run a job of config ORCA2_LIM_PISCES with 8 processors test RESTARTABILITY submitting the job to the batch queue system and using mpirun 60 # $ ./fcm_job.sh input_ORCA2_LIM_PISCES.cfg 8 LONG no yes 50 61 # 51 62 # … … 59 70 # ========== 60 71 # 61 # $Id: prepare_job.sh 3050 2011-11-07 14:11:34Z acc $72 # $Id: fcm_job.sh 3050 2011-11-07 14:11:34Z acc $ 62 73 # 63 74 # … … 68 79 # 69 80 70 usage=" Usage : ./ prepare_job.sh INPUT_FILE_CONFIG_NAME NUMBER_PROC TEST_NAME MPI_FLAG JOB_FILE"71 usage=" example : ./ prepare_job.sh input_ORCA2_LIM_PISCES.cfg 8 SHORT no/yes $JOB_FILE"81 usage=" Usage : ./fcm_job.sh input_CONFIG_NAME.cfg NUMBER_OF_PROCS TEST_NAME INTERACT MPI_FLAG" 82 usage=" example : ./fcm_job.sh input_ORCA2_LIM_PISCES.cfg 8 SHORT no/yes no/yes" 72 83 73 84 … … 75 86 if [ ${#} -lt ${minargcount} ] 76 87 then 77 echo "not enough arguments for prepare_job.sh script"78 echo "control number of argument of prepare_job.sh in sette.sh"88 echo "not enought arguments for fcm_job.sh script" 89 echo "control number of argument of fcm_job.sh in sette.sh" 79 90 echo "${usage}" 80 91 exit 1 … … 159 170 exit 1 160 171 fi 161 172 #if [ ${NB_PROC} == 1 ] ; then 173 # echo "running opa" >> ${SETTE_DIR}/output.sette 174 # echo " " >> ${SETTE_DIR}/output.sette 175 # ./opa 176 # 177 # Tidy out output from this test and populate the NEMO_VALIDATION_DIR tree 178 # 179 # post_test_tidyup 180 #else 181 # echo "running opa in MPI" >> ${SETTE_DIR}/output.sette 182 # echo " " >> ${SETTE_DIR}/output.sette 183 184 # if [ ${MPI_INTERACT} == "yes" ] ; then 185 # # 186 # # example for brodie (NEC SX8) machine 187 # # mpirun -np ${NB_PROC} opa 188 # # example for dedale machine 189 # # mpirun --mca btl self,tcp -np ${NB_PROC} opa 190 # # example for vargas (IBM Power6) machine 191 # mpiexec -n ${NB_PROC} opa 192 # # 193 # post_test_tidyup 194 # fi 195 # 162 196 # example for NOCS Altix system using PBS batch submission (requires ${SETTE_DIR}/sette_batch_template file) 163 197 # 164 # if [ ${MPI_ FLAG} == "no" ] ; then198 # if [ ${MPI_INTERACT} == "no" ] ; then 165 199 case ${COMPILER} in 166 200 ALTIX_NAUTILUS_MPT) … … 214 248 -e"s/NPROCS/${NB_PROC}/" \ 215 249 -e"s/QUEUE/${QUEUE}/" -e"s/MEM/${mem}/" \ 250 -e"s/QUEUE/${QUEUE}/" -e"s/MEM/${mem}/" \ 216 251 -e"s:DEF_SETTE_DIR:${SETTE_DIR}:" -e"s:DEF_INPUT_DIR:${INPUT_DIR}:" \ 217 252 -e"s:DEF_EXE_DIR:${EXE_DIR}:" \ … … 237 272 fi 238 273 239 chmod a+x $JOB_FILE ; echo "$JOB_FILE is ready"274 chmod a+x $JOB_FILE 240 275 241 276 #fi -
branches/2012/dev_MERCATOR_2012_rev3555/NEMOGCM/SETTE/sette.sh
r3555 r3586 129 129 #- 130 130 # Compiler among those in NEMOGCM/ARCH 131 COMPILER= PW6_VARGAS132 export BATCH_COMMAND_PAR=" llsubmit"131 COMPILER=ifort_MERCATOR_CLUSTER 132 export BATCH_COMMAND_PAR="qsub" 133 133 export BATCH_COMMAND_SEQ=$BATCH_COMMAND_PAR 134 134 export INTERACT_FLAG="no" … … 147 147 cp BATCH_TEMPLATE/batch-${COMPILER} job_batch_template || exit 148 148 149 for config in 1 2 3 4 5 6 7 8 9149 for config in 1 2 3 4 5 6 7 8 150 150 do 151 151
Note: See TracChangeset
for help on using the changeset viewer.