- Timestamp:
- Jul 9, 2020, 8:09:16 AM (4 years ago)
- Branches:
- master, ctbto, dev
- Children:
- f61e1df
- Parents:
- 05e9362 (diff), 3363e01 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent. - Location:
- Source
- Files:
-
- 1 added
- 22 edited
Legend:
- Unmodified
- Added
- Removed
-
Source/Fortran/calc_etadot.f90
rdfa7dbd rd90a529 486 486 END IF ! MGAUSS 487 487 488 !! CREATE FILE VERTICAL.EC NEEDED BY POP MODEL 489 490 OPEN(21,FILE='VERTICAL.EC') 491 WRITE(21,'(A)') 492 WRITE(21,'(A)') 'VERTICAL DISCRETIZATION OF POP MODEL' 493 WRITE(21,'(A)') 494 write(21,'(i3,a)') MLEVEL,' number of layers' 495 WRITE(21,'(A)') 496 WRITE(21,'(A)') '* A(NLEV+1)' 497 WRITE(21,'(A)') 498 DO 205 I=1,MLEVEL+1 499 205 WRITE(21,'(F18.12)') AK(I) 500 WRITE(21,'(A)') 501 WRITE(21,'(A)') '* B(NLEV+1)' 502 WRITE(21,'(A)') 503 DO 210 I=1,MLEVEL+1 504 210 WRITE(21,'(F18.12)') BK(I) 505 CLOSE(21) 488 ! CREATE FILE VERTICAL.EC NEEDED BY POP MODEL 489 ! 2020-06-25 Commented out by PS - not needed anymore 490 491 ! OPEN(21,FILE='VERTICAL.EC') 492 ! WRITE(21,'(A)') 493 ! WRITE(21,'(A)') 'VERTICAL DISCRETIZATION OF POP MODEL' 494 ! WRITE(21,'(A)') 495 ! write(21,'(i3,a)') MLEVEL,' number of layers' 496 ! WRITE(21,'(A)') 497 ! WRITE(21,'(A)') '* A(NLEV+1)' 498 ! WRITE(21,'(A)') 499 ! DO 205 I=1,MLEVEL+1 500 !205 WRITE(21,'(F18.12)') AK(I) 501 ! WRITE(21,'(A)') 502 ! WRITE(21,'(A)') '* B(NLEV+1)' 503 ! WRITE(21,'(A)') 504 ! DO 210 I=1,MLEVEL+1 505 !210 WRITE(21,'(F18.12)') BK(I) 506 ! CLOSE(21) 506 507 507 508 !------------------------------------------------------------------ -
Source/Fortran/makefile_debug
r5868d74 rd2d6cf9 15 15 EXE = calc_etadot_debug.out 16 16 17 ECCODES_LIB= -Bstatic -leccodes_f90 -leccodes -Bdynamic -lm -ljasper17 ECCODES_LIB= -Bstatic -leccodes_f90 -leccodes -Bdynamic -lm 18 18 EMOSLIB=-lemosR64 19 19 LIB = $(ECCODES_LIB) $(EMOSLIB) -
Source/Fortran/makefile_fast
rda1b788 r14d9618 15 15 EXE = calc_etadot_fast.out 16 16 17 ECCODES_LIB = -Bstatic -leccodes_f90 -leccodes -Bdynamic -lm -ljasper17 ECCODES_LIB = -Bstatic -leccodes_f90 -leccodes -Bdynamic -lm 18 18 EMOSLIB=-lemosR64 19 19 LIB = $(ECCODES_LIB) $(EMOSLIB) 20 20 21 21 ECCODES_INCLUDE_DIR=/usr/lib/x86_64-linux-gnu/fortran/gfortran-mod-15 22 #/usr/local/include/ #oldstable 23 22 24 INC = -I. -I$(ECCODES_INCLUDE_DIR) 23 25 24 26 FC = gfortran 25 OPT = -O3 -march=native27 OPT = -O3 # -O3 -march=native 26 28 FFLAGS = $(OPT) $(LIB) $(INC) -fdefault-real-8 -fopenmp -fconvert=big-endian 27 29 LDFLAGS = $(OPT) $(LIB) -fopenmp -
Source/Fortran/posnam.f90
rdfa7dbd r36dbabb 1 1 SUBROUTINE POSNAM(KULNAM,CDNAML) 2 2 3 !! position in namelist file.4 ! author: Mats Hamrud, ECMWF3 !! Position in namelist file. 4 !! Author: Mats Hamrud, ECMWF 5 5 6 6 INTEGER, INTENT(IN) :: KULNAM -
Source/Fortran/rwgrib2.f90
r5b5589b r36dbabb 1 1 MODULE RWGRIB2 2 3 !! Read or write a field variable on a lat/lon grid from/to GRIB file, or 4 !! read a field in spectral representation from GRIB file 2 5 3 6 CONTAINS … … 85 88 ! print*,i 86 89 END DO iloop 87 ! ! write(*,*) 'readlatlon: ',i-1,' records read'90 ! ! write(*,*) 'readlatlon: ',i-1,' records read' 88 91 89 92 DO i=1,n … … 169 172 SUBROUTINE READSPECTRAL(FILENAME,CXMN,MNAUF,MLEVEL,MAXLEV,MPAR,A,B) 170 173 171 !! read a GRIB file in spherical harmonics174 !! Read a GRIB file in spherical harmonics 172 175 173 176 USE GRIB_API … … 249 252 END DO iloop 250 253 251 ! ! write(*,*) 'readspectral: ',i-1,' records read'254 ! ! write(*,*) 'readspectral: ',i-1,' records read' 252 255 253 256 DO i=1,n -
Source/Python/Classes/ControlFile.py
r0f89116 r5f67883 19 19 # - divided assignment of attributes and the check of conditions 20 20 # - outsourced the commandline argument assignments to control attributes 21 # June 2020 - Anne Philipp 22 # - update default makefile to None 21 23 # 22 24 # @License: 23 # (C) Copyright 2014-20 19.25 # (C) Copyright 2014-2020. 24 26 # Anne Philipp, Leopold Haimberger 25 27 # … … 267 269 makefile : str 268 270 Name of the makefile to be used for the Fortran program. 269 Default value is 'Makefile.gfortran'.271 Default value is None. 270 272 271 273 destination : str … … 402 404 self.exedir = _config.PATH_FORTRAN_SRC 403 405 self.installdir = None 404 self.makefile = 'Makefile.gfortran'406 self.makefile = None 405 407 self.destination = None 406 408 self.gateway = None -
Source/Python/Classes/EcFlexpart.py
r53d3b2a r2c3c135 39 39 # 40 40 # @License: 41 # (C) Copyright 2014-20 19.41 # (C) Copyright 2014-2020. 42 42 # Anne Philipp, Leopold Haimberger 43 43 # … … 1416 1416 'stepRange', 'values'], 1417 1417 keyvalues=[inumb, int(date.strftime('%Y%m%d')), 1418 date.hour*100, 0, lsp_new_np[inumb, :, it]] ,1418 date.hour*100, 0, lsp_new_np[inumb, :, it]] 1419 1419 ) 1420 1420 fluxfile.set_keys(tmpfile, filemode='ab', … … 1479 1479 1480 1480 gribfile = GribUtil(os.path.join(inputdir, 'rr_grib_dummy.grb')) 1481 1482 gribfile.copy_dummy_msg(ifile, keynames=['paramId'], 1483 keyvalues=[142], filemode='wb') 1484 1485 gribfile.copy_dummy_msg(ifile, keynames=['paramId'], 1486 keyvalues=[143], filemode='ab') 1481 1482 gribfile.copy_dummy_msg(ifile, keynames=['paramId','paramId'], 1483 keyvalues=[142,143], filemode='wb') 1487 1484 1488 1485 return … … 1722 1719 # ============================================================================================ 1723 1720 # create name of final output file, e.g. EN13040500 (ENYYMMDDHH) 1721 # for CERA-20C we need all 4 digits for the year sinc 1900 - 2010 1724 1722 if c.purefc: 1725 suffix = cdate[2:8] + '.' + ctime + '.' + cstep 1723 if c.marsclass == 'EP': 1724 suffix = cdate[0:8] + '.' + ctime + '.' + cstep 1725 else: 1726 suffix = cdate[2:8] + '.' + ctime + '.' + cstep 1726 1727 else: 1727 suffix = cdate_hour[2:10] 1728 if c.marsclass == 'EP': 1729 suffix = cdate_hour[0:10] 1730 else: 1731 suffix = cdate_hour[2:10] 1728 1732 1729 1733 # if necessary, add ensemble member number to filename suffix … … 1748 1752 c.ppid + 1749 1753 '*')[0]) 1750 fluxfile = 'flux' + cdate[0:2] + suffix 1754 if c.marsclass == 'EP': 1755 fluxfile = 'flux' + suffix 1756 else: 1757 fluxfile = 'flux' + cdate[0:2] + suffix 1751 1758 if not c.cwc: 1752 1759 flist = ['fort.15', fluxfile, 'fort.16', orolsm] -
Source/Python/Classes/GribUtil.py
r0f89116 r2c3c135 13 13 # 14 14 # @License: 15 # (C) Copyright 2014-20 19.15 # (C) Copyright 2014-2020. 16 16 # Anne Philipp, Leopold Haimberger 17 17 # … … 122 122 123 123 124 def set_keys(self, fromfile, keynames, keyvalues, wherekeynames,125 wherekey values, filemode='wb'):124 def set_keys(self, fromfile, filemode='wb', keynames=[], keyvalues=[], 125 wherekeynames=[], wherekeyvalues=[]): 126 126 '''Opens the file to read the grib messages and then write 127 127 the selected messages (with wherekeys) to a new output file. … … 162 162 163 163 fout = open(self.filenames, filemode) 164 165 with open(fromfile, 'rb') as fin: 164 # print(fout) 165 fin = open(fromfile, 'rb') 166 # print(fin) 167 while True: 166 168 gid = codes_grib_new_from_file(fin) 167 169 # print('test') 170 if gid is None: 171 break 172 168 173 select = True 169 i = 0170 for wherekey in wherekeynames:174 #print(str(codes_get(gid,'paramId'))) 175 for i, wherekey in enumerate(wherekeynames): 171 176 if not codes_is_defined(gid, wherekey): 172 177 raise Exception("wherekey was not defined") … … 174 179 select = (select and (str(wherekeyvalues[i]) == 175 180 str(codes_get(gid, wherekey)))) 176 i += 1177 181 178 182 if select: 179 i = 0 180 for key in keynames: 183 for i, key in enumerate(keynames): 181 184 if key == 'values': 182 185 codes_set_values(gid, keyvalues[i]) 183 186 else: 184 187 codes_set(gid, key, keyvalues[i]) 185 i += 1186 188 187 189 codes_write(gid, fout) … … 190 192 191 193 fout.close() 194 fin.close() 192 195 193 196 return … … 229 232 raise Exception("Give a value for each keyname!") 230 233 231 232 234 fout = open(self.filenames, filemode) 233 235 fin = open(filename_in, 'rb') 236 234 237 fields = 0 235 236 with open(filename_in, 'rb') as fin: 237 if fields >= 1: 238 while True: 239 if fields >= len(keyvalues): 238 240 fout.close() 241 fin.close() 239 242 return 240 243 241 244 gid = codes_grib_new_from_file(fin) 242 243 select = True 244 i = 0 245 for key in keynames: 245 if gid is None: 246 break 247 248 for i, key in enumerate(keynames): 249 250 select = True 251 246 252 if not codes_is_defined(gid, key): 247 253 raise Exception("Key was not defined") … … 253 259 select = (select and (str(keyvalues[i]) != 254 260 str(codes_get(gid, key)))) 255 i += 1 256 257 if select: 258 fields = fields + 1 259 codes_write(gid, fout) 260 261 262 if select: 263 fields = fields + 1 264 codes_write(gid, fout) 265 261 266 codes_release(gid) 262 267 263 268 fout.close() 269 fin.close() 264 270 265 271 return -
Source/Python/Classes/MarsRetrieval.py
r0f89116 r026b359 20 20 # 21 21 # @License: 22 # (C) Copyright 2014-20 19.22 # (C) Copyright 2014-2020. 23 23 # Anne Philipp, Leopold Haimberger 24 24 # -
Source/Python/Classes/UioFiles.py
rd9abaac r026b359 23 23 # 24 24 # @License: 25 # (C) Copyright 2014-20 19.25 # (C) Copyright 2014-2020. 26 26 # Anne Philipp, Leopold Haimberger 27 27 # -
Source/Python/Classes/__init__.py
rba99230 r026b359 7 7 # 8 8 # @License: 9 # (C) Copyright 2015-2018. 9 # (C) Copyright 2014-2020. 10 # Anne Philipp, Leopold Haimberger 10 11 # 11 # This software is licensed under the terms of the Apache Licence Version 2.0 12 # which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. 12 # SPDX-License-Identifier: CC-BY-4.0 13 # 14 # This work is licensed under the Creative Commons Attribution 4.0 15 # International License. To view a copy of this license, visit 16 # http://creativecommons.org/licenses/by/4.0/ or send a letter to 17 # Creative Commons, PO Box 1866, Mountain View, CA 94042, USA. 13 18 # 14 19 #******************************************************************************* -
Source/Python/Mods/__init__.py
rba99230 r026b359 7 7 # 8 8 # @License: 9 # (C) Copyright 2015-2018. 9 # (C) Copyright 2014-2020. 10 # Anne Philipp, Leopold Haimberger 10 11 # 11 # This software is licensed under the terms of the Apache Licence Version 2.0 12 # which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. 12 # SPDX-License-Identifier: CC-BY-4.0 13 # 14 # This work is licensed under the Creative Commons Attribution 4.0 15 # International License. To view a copy of this license, visit 16 # http://creativecommons.org/licenses/by/4.0/ or send a letter to 17 # Creative Commons, PO Box 1866, Mountain View, CA 94042, USA. 13 18 # 14 19 #******************************************************************************* -
Source/Python/Mods/checks.py
r50f9ca6 r026b359 9 9 # 10 10 # @License: 11 # (C) Copyright 2014-20 19.11 # (C) Copyright 2014-2020. 12 12 # Anne Philipp, Leopold Haimberger 13 13 # -
Source/Python/Mods/disaggregation.py
r0f89116 ra916e8f 19 19 # - added the new disaggregation method for precipitation 20 20 # 21 # June 2020 - Anne Philipp (University of Vienna): 22 # - reformulated formular for dapoly 23 # 21 24 # @License: 22 # (C) Copyright 2014-20 19.25 # (C) Copyright 2014-2020. 23 26 # Anne Philipp, Leopold Haimberger 24 27 # … … 92 95 93 96 """ 94 95 pya = (alist[3] - alist[0] + 3. * (alist[1] - alist[2])) / 6. 96 pyb = (alist[2] + alist[0]) / 2. - alist[1] - 9. * pya / 2. 97 pyc = alist[1] - alist[0] - 7. * pya / 2. - 2. * pyb 98 pyd = alist[0] - pya / 4. - pyb / 3. - pyc / 2. 99 nfield = 8. * pya + 4. * pyb + 2. * pyc + pyd 97 98 nfield = -1./12.*alist[0] + \ 99 7./12.*alist[1] + \ 100 7./12.*alist[2] - \ 101 1./12.*alist[3] 100 102 101 103 return nfield -
Source/Python/Mods/get_mars_data.py
r0f89116 r026b359 26 26 # 27 27 # @License: 28 # (C) Copyright 2014-20 19.28 # (C) Copyright 2014-2020. 29 29 # Anne Philipp, Leopold Haimberger 30 30 # -
Source/Python/Mods/prepare_flexpart.py
r0f89116 r026b359 29 29 # 30 30 # @License: 31 # (C) Copyright 2014-20 19.31 # (C) Copyright 2014-2020. 32 32 # Anne Philipp, Leopold Haimberger 33 33 # -
Source/Python/Mods/profiling.py
r0f89116 r026b359 12 12 # 13 13 # @License: 14 # (C) Copyright 20 18.14 # (C) Copyright 2020. 15 15 # 16 16 # This software is licensed under the terms of the Apache Licence Version 2.0 -
Source/Python/Mods/tools.py
rd1bfa24 r026b359 24 24 # 25 25 # @License: 26 # (C) Copyright 2014-20 19.26 # (C) Copyright 2014-2020. 27 27 # Anne Philipp, Leopold Haimberger 28 28 # -
Source/Python/__init__.py
rba99230 r026b359 7 7 # 8 8 # @License: 9 # (C) Copyright 2015-2018. 9 # (C) Copyright 2014-2020. 10 # Anne Philipp, Leopold Haimberger 10 11 # 11 # This software is licensed under the terms of the Apache Licence Version 2.0 12 # which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. 12 # SPDX-License-Identifier: CC-BY-4.0 13 # 14 # This work is licensed under the Creative Commons Attribution 4.0 15 # International License. To view a copy of this license, visit 16 # http://creativecommons.org/licenses/by/4.0/ or send a letter to 17 # Creative Commons, PO Box 1866, Mountain View, CA 94042, USA. 13 18 # 14 19 #******************************************************************************* -
Source/Python/_config.py
r0422cad r98f09d2 7 7 # 8 8 # @Change History: 9 # June 2020 - Anne Philipp 10 # - changed template filenames to .template 9 11 # 10 12 # @License: 11 # (C) Copyright 2014-20 19.13 # (C) Copyright 2014-2020. 12 14 # Anne Philipp, Leopold Haimberger 13 15 # … … 36 38 # ------------------------------------------------------------------------------ 37 39 38 _VERSION_STR = '7.1. 1'40 _VERSION_STR = '7.1.2' 39 41 40 42 FLAG_ON_ECMWFSERVER = 'ecgb' in platform.node() … … 57 59 TEMPFILE_USER_ENVVARS = 'ECMWF_ENV.template' 58 60 FILE_USER_ENVVARS = 'ECMWF_ENV' 59 TEMPFILE_INSTALL_COMPILEJOB = ' compilejob.template'61 TEMPFILE_INSTALL_COMPILEJOB = 'installscript.template' 60 62 FILE_INSTALL_COMPILEJOB = 'compilejob.ksh' 61 TEMPFILE_INSTALL_JOB = 'job .template'62 TEMPFILE_JOB = ' job.temp'63 TEMPFILE_INSTALL_JOB = 'jobscript.template' 64 TEMPFILE_JOB = 'submitscript.template' 63 65 FILE_JOB_OD = 'job.ksh' 64 66 FILE_JOB_OP = 'jopoper.ksh' 65 TEMPFILE_NAMELIST = 'c onvert.nl'67 TEMPFILE_NAMELIST = 'calc_etadot_nml.template' 66 68 FILE_NAMELIST = 'fort.4' 67 69 FILE_GRIB_INDEX = 'date_time_stepRange.idx' -
Source/Python/install.py
r50f9ca6 ra916e8f 13 13 # - moved install_args_and_control in here 14 14 # - splitted code in smaller functions 15 # - delete convertbuild files in here instead of compile job script15 # - delete fortran build files in here instead of compile job script 16 16 # - changed static path names to variables from config file 17 17 # - splitted install function into several smaller pieces 18 18 # - use of tarfile package in python 19 # June 2020 - Anne Philipp 20 # - renamed "convert" functions to "fortran" functions 21 # - reconfigured mk_tarball to select *.template files instead 22 # of *.nl and *.temp 23 # - added check for makefile settings 19 24 # 20 25 # @License: 21 # (C) Copyright 2014-20 19.26 # (C) Copyright 2014-2020. 22 27 # Anne Philipp, Leopold Haimberger 23 28 # … … 39 44 # mk_compilejob 40 45 # mk_job_template 41 # del_ convert_build42 # mk_ convert_build46 # del_fortran_build 47 # mk_fortran_build 43 48 # 44 49 #******************************************************************************* … … 243 248 _config.PATH_REL_FORTRAN_SRC)) 244 249 245 # Create Fortran executable - CONVERT2250 # Create Fortran executable 246 251 print('Install ' + _config.FLEXEXTRACT_DIRNAME + ' software at ' + 247 252 c.install_target + ' in directory ' + 248 253 os.path.abspath(c.installdir) + '\n') 249 254 250 del_ convert_build('.')251 mk_ convert_build('.', c.makefile)255 del_fortran_build('.') 256 mk_fortran_build('.', c.makefile) 252 257 253 258 os.chdir(_config.PATH_FLEXEXTRACT_DIR) … … 304 309 c.installdir = _config.PATH_FLEXEXTRACT_DIR 305 310 311 if not c.makefile: 312 print('WARNING: no makefile was specified.') 313 if c.install_target == 'local': 314 c.makefile = 'makefile_local_gfortran' 315 print('WARNING: default makefile selected: makefile_local_gfortan') 316 elif c.install_target == 'ecgate': 317 c.makefile = 'makefile_ecgate' 318 print('WARNING: default makefile selected: makefile_ecgate') 319 elif c.install_target == 'cca' or \ 320 c.install_target == 'ccb': 321 c.makefile = 'makefile_cray' 322 print('WARNING: default makefile selected: makefile_cray') 323 else: 324 pass 325 306 326 return 307 327 … … 358 378 for x in UioFiles(_config.PATH_REL_TEST, '*').files] 359 379 tempfiles = [os.path.relpath(x, ecd) 360 for x in UioFiles(_config.PATH_REL_TEMPLATES, '*.temp').files] 361 nlfiles = [os.path.relpath(x, ecd) 362 for x in UioFiles(_config.PATH_REL_TEMPLATES, '*.nl').files] 380 for x in UioFiles(_config.PATH_REL_TEMPLATES, '*.template').files] 363 381 gribtable = [os.path.relpath(x, ecd) 364 382 for x in UioFiles(_config.PATH_REL_TEMPLATES, '*grib*').files] … … 372 390 373 391 # concatenate single lists to one for a better looping 374 filelist = pyfiles + pytestfiles + controlfiles + tempfiles + nlfiles +\392 filelist = pyfiles + pytestfiles + controlfiles + tempfiles + \ 375 393 ffiles + gribtable + hfiles + makefiles + ecmwf_env_file + \ 376 394 runfile + jobdir + testfiles +\ … … 498 516 makefile : str 499 517 Name of the makefile which should be used to compile FORTRAN 500 CONVERT2program.518 program. 501 519 502 520 ecuid : str … … 633 651 return 634 652 635 def del_ convert_build(src_path):653 def del_fortran_build(src_path): 636 654 '''Clean up the Fortran source directory and remove all 637 build files (e.g. \*.o, \*.mod and CONVERT2)655 build files (e.g. \*.o, \*.mod and FORTRAN EXECUTABLE) 638 656 639 657 Parameters … … 657 675 return 658 676 659 def mk_ convert_build(src_path, makefile):677 def mk_fortran_build(src_path, makefile): 660 678 '''Compiles the Fortran code and generates the executable. 661 679 … … 686 704 print(perr.decode()) 687 705 print('Please edit ' + makefile + 688 ' or try another Makefile in the src directory.')689 print('Most likely GRIB_API_INCLUDE_DIR, GRIB_API_LIB '706 ' or try another makefile in the src directory.') 707 print('Most likely ECCODES_INCLUDE_DIR, ECCODES_LIB ' 690 708 'and EMOSLIB must be adapted.') 691 print('Available Makefiles:')692 print(UioFiles(src_path, ' Makefile*'))709 print('Available makefiles:') 710 print(UioFiles(src_path, 'makefile*')) 693 711 sys.exit('Compilation failed!') 694 712 except ValueError as e: 695 print('ERROR: Makefile call failed:')713 print('ERROR: makefile call failed:') 696 714 print(e) 697 715 else: -
Source/Python/submit.py
r0f89116 ra916e8f 21 21 # - splitted submit function to use genshi templates for the 22 22 # job script and avoid code duplication 23 # June 2020 - Anne Philipp 24 # - changed finale job_file to filename from config file 25 # instead of generating from the template filename 23 26 # 24 27 # @License: 25 # (C) Copyright 2014-20 19.28 # (C) Copyright 2014-2020. 26 29 # Anne Philipp, Leopold Haimberger 27 30 # … … 72 75 from Mods.get_mars_data import get_mars_data 73 76 from Mods.prepare_flexpart import prepare_flexpart 74 #from Classes.ControlFile import ControlFile75 76 77 77 78 # ------------------------------------------------------------------------------ … … 129 130 module and variable settings for the ECMWF environment as well as 130 131 the job call and mail report instructions. 131 Default is "job.temp".132 Default is _config.TEMPFILE_JOB. 132 133 133 134 c : ControlFile … … 151 152 152 153 job_file = os.path.join(_config.PATH_JOBSCRIPTS, 153 jtemplate[:-5] + '.ksh')154 _config.FILE_JOB_OD) 154 155 155 156 # divide time periode into specified number of job chunks … … 189 190 190 191 job_file = os.path.join(_config.PATH_JOBSCRIPTS, 191 jtemplate[:-5] + 'oper.ksh')192 _config.FILE_JOB_OP) 192 193 193 194 c.start_date = '${MSJ_YEAR}${MSJ_MONTH}${MSJ_DAY}' … … 214 215 ---------- 215 216 jtemplate : str 216 Job template file from sub-directory " _templates" for217 Job template file from sub-directory "Templates" for 217 218 submission to ECMWF. It contains all necessary 218 219 module and variable settings for the ECMWF environment as well as 219 220 the job call and mail report instructions. 220 Default is "job.temp".221 Default is _config.TEMPFILE_JOB. 221 222 222 223 job_file : str
Note: See TracChangeset
for help on using the changeset viewer.