This parameter file contains information about model parallel processing. The following parameters set the processor configuration used for two-dimensional domain decomposition. The whole grid size is subdivided in horizontal direction between processors. There is restriction for selecting proper configuration between number of grid points and number of processors in each direction that require n/nprocx and m/nprocy to be integers.
ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c DONTR CHANGE nprocx, nprocy PARAMETERS HERE! c THEY ARE SET BY DEFAULT FOR SERIAL RUN WITH NPE==1 or MSG==ONE c nprcxa, nprcya - defines the processor configuration c used to create restart tape ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc parameter (nprocx=1, nprocy=1) ! don't change processor geometry here parameter (nprcxa=nprocx, nprcya=nprocy)
In parallel mode the following section should be set:
ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c YOU CAN CHANGE FOLLOWING PARAMETERS: c nprocx and nprocy are specifying number of parallel c subdomains, ie. how full domain is subdivided in x and y c c *** WARNING: n/nprocx and m/nprocy MUST be integer *** c *** This constrains all four of these variables *** ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc parameter (nprocx=8, nprocy=4) !processor geometry parameters parameter (nprcxa=nprocx, nprcya=nprocy) ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c ih is halo width c the minimum number of grid point on each processor must be equal or c bigger than number of processor halo points (.ih. in Eulerian c or .ihlag. in Semi-Lagrangian version). ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc parameter (ih=3) !processor geometry parameters ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c The following parameters are created automatically to define different c array dimensions used in the model: c c nmsp, mmsp - dimensions for moist arrays, depending on parameter .moist. c DEFAULT: nmsp=np*moist + 1*(1-moist) c DEFAULT: mmsp=mp*moist + 1*(1-moist) c c nicp, micp - dimensions for ice A, ice B msg arrays, depending on .iceab. c nicp=np*iceab + 1*(1-iceab) c micp=mp*iceab + 1*(1-iceab) c c nkep, mkep - dimension for tke msg arrays, depending on .itke. c nkep=np*itke + 1*(1-itke) c mkep=mp*itke + 1*(1-itke) c c nkvp, mkvp - dimension for tke arrays in viscous model, depending on .ivs0. c nkvp=np*ivs0 + 1*(1-ivs0) c mkvp=mp*ivs0 + 1*(1-ivs0) c c nrsp, mtsp - dimension for trajectory arrays see .itraj. c ntsp=np*itraj + 1*(1-itraj) c mtsp=mp*itraj + 1*(1-itraj) c c nchp, mchp - dimension for chmistry arrays, depending on .ichm. parameter c nchp=np*ichm + 1*(1-ichm) c mchp=mp*ichm + 1*(1-ichm) c c nibp, mibp - dimension for mmersed boundary arrays c nibp=np*imrsb + 1*(1-imrsb) c mibp=mp*imrsb + 1*(1-imrsb) c c npcz, mpcz, lcz - dimension for arrays used in preconditioneer, depending on .icyz. c npcz=np*icyz + 1*(1-icyz) c mpcz=mp*icyz + 1*(1-icyz) c lcz= l*icyz + 1*(1-icyz) c c dimension for spectral preconditioneer arrays: c nspp, mspp, lspp - physical space c nssp, mssp, lssp - spectral space c c nspct, mspct - total spectral space, see .ispcpr. c nspp=np*ispcpr + 1*(1-ispcpr, !physical space c mspp=mp*ispcpr + 1*(1-ispcpr) c lspp= l*ispcpr + 1*(1-ispcpr) c c parameter (nssp=np*ispcpr + 1*(1-ispcpr) !spectral space c mssp=mp*ispcpr + 1*(1-ispcpr) c lssp= l*ispcpr + 1*(1-ispcpr) c nspct=n*ispcpr + 1*(1-ispcpr) !total spct. space c mspct=m*ispcpr + 1*(1-ispcpr) ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc parameter (nproc=nprocx*nprocy) parameter (np=n/nprocx, mp=m/nprocy) parameter (npa=n/nprcxa, mpa=m/nprcya) ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c the following parameters are generated in subroutine geomset c depending on nprocx, nprocy to define processor distribution c over the domain grid and relations between processors. ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc common/spectral_cyc/ my_row_sp(nprocy),my_col_sp(nprocx) integer middle,rightedge,leftedge,botedge,topedge,npos,mpos integer perightabove,perightbelow,peleftbelow,peleftabove integer peleft,peright,peabove,pebelow,mype common /msg/ middle,rightedge,leftedge,botedge,topedge,npos,mpos, . perightabove,perightbelow,peleftbelow,peleftabove, . peleft,peright,peabove,pebelow,mype,mysize common/iupdate/ iup,iupx,iupy