| 1 | 
c flag for adjoint process | 
| 2 | 
      logical smooth_isset | 
| 3 | 
c flag for 3D case | 
| 4 | 
      logical wc01_implicitDiffusion | 
| 5 | 
 | 
| 6 | 
c the index associated with the current smoothing operator | 
| 7 | 
      integer smoothOpNbCur | 
| 8 | 
      integer smoothOpNbMax | 
| 9 | 
      PARAMETER ( smoothOpNbMax = 10 ) | 
| 10 | 
 | 
| 11 | 
c main fields: | 
| 12 | 
      _RL fld_wc01(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) | 
| 13 | 
      _RL gTwc01(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) | 
| 14 | 
      _RL normFilterwc01 (1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) | 
| 15 | 
      _RL fld_wc01_2D(1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy) | 
| 16 | 
      _RL gTwc01_2D(1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy) | 
| 17 | 
      _RL normFilterwc01_2D (1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy) | 
| 18 | 
      _RL wc01_2D_mask (1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy) | 
| 19 | 
 | 
| 20 | 
c the fields defining the smoothing function | 
| 21 | 
      _RL wc01_dt,wc01_T | 
| 22 | 
      integer wc01_nbt(smoothOpNbMax) | 
| 23 | 
      integer smooth3DtypeZ(smoothOpNbMax) | 
| 24 | 
      integer smooth3DsizeZ(smoothOpNbMax) | 
| 25 | 
      integer smooth3DtypeH(smoothOpNbMax) | 
| 26 | 
      integer smooth3DsizeH(smoothOpNbMax) | 
| 27 | 
      integer smooth2Dfilter(smoothOpNbMax) | 
| 28 | 
      integer smooth3Dfilter(smoothOpNbMax) | 
| 29 | 
      _RL wc01_3D_Lx0(smoothOpNbMax), | 
| 30 | 
     & wc01_3D_Ly0(smoothOpNbMax), wc01_3D_Lz0(smoothOpNbMax) | 
| 31 | 
      _RL wc01_3D_Lx(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) | 
| 32 | 
      _RL wc01_3D_Ly(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) | 
| 33 | 
      _RL wc01_3D_Lz(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) | 
| 34 | 
      _RL wc01_2D_dt,wc01_2D_T | 
| 35 | 
      integer wc01_2D_nbt(smoothOpNbMax), | 
| 36 | 
     & smooth2Dtype(smoothOpNbMax),smooth2Dsize(smoothOpNbMax) | 
| 37 | 
      _RL wc01_2D_Lx0(smoothOpNbMax),wc01_2D_Ly0(smoothOpNbMax) | 
| 38 | 
      _RL wc01_2D_Lx(1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy) | 
| 39 | 
      _RL wc01_2D_Ly(1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy) | 
| 40 | 
 | 
| 41 | 
c these are useless... I leave them here by now, but will | 
| 42 | 
c remove then after removing them from mitoa_init and mitoa_rhs | 
| 43 | 
      _RL diffKhwc01,diffK4wc01 | 
| 44 | 
c bis | 
| 45 | 
      _RL kappaRwc01 (1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) | 
| 46 | 
      _RL wc01_Kwx(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) | 
| 47 | 
      _RL wc01_Kwy(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) | 
| 48 | 
      _RL wc01_Kwz(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) | 
| 49 | 
      _RL wc01_Kux(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) | 
| 50 | 
      _RL wc01_Kvy(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) | 
| 51 | 
      _RL wc01_Kuz(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) | 
| 52 | 
      _RL wc01_Kvz(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) | 
| 53 | 
      _RL wc01_Kuy(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) | 
| 54 | 
      _RL wc01_Kvx(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) | 
| 55 | 
c ter | 
| 56 | 
      _RL diffKhwc01_2D_x (1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy) | 
| 57 | 
      _RL diffKhwc01_2D_y (1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy) | 
| 58 | 
 | 
| 59 | 
 | 
| 60 | 
      COMMON /smooth_flags/ | 
| 61 | 
     & smooth_isset, wc01_implicitDiffusion | 
| 62 | 
 | 
| 63 | 
      COMMON /smooth_flds_r/ | 
| 64 | 
     & fld_wc01, gTwc01, normFilterwc01,  | 
| 65 | 
     & fld_wc01_2D, gTwc01_2D, normFilterwc01_2D, wc01_2D_mask | 
| 66 | 
 | 
| 67 | 
      COMMON /smooth_operators_i/ | 
| 68 | 
     & smoothOpNbCur, wc01_nbt, wc01_2D_nbt | 
| 69 | 
     & , smooth2Dtype, smooth2Dsize | 
| 70 | 
     & , smooth3DtypeZ, smooth3DsizeZ | 
| 71 | 
     & , smooth3DtypeH, smooth3DsizeH | 
| 72 | 
     & , smooth2Dfilter, smooth3Dfilter | 
| 73 | 
 | 
| 74 | 
      COMMON /smooth_operators_r/ | 
| 75 | 
     & wc01_3D_Lx,wc01_3D_Ly,wc01_3D_Lz,wc01_dt,wc01_T | 
| 76 | 
     & ,wc01_2D_Lx,wc01_2D_Ly,wc01_2D_dt,wc01_2D_T | 
| 77 | 
     & ,kappaRwc01,wc01_Kwx,wc01_Kwy,wc01_Kwz | 
| 78 | 
     & ,wc01_Kux,wc01_Kvy,wc01_Kuz,wc01_Kvz | 
| 79 | 
     & ,wc01_Kuy,wc01_Kvx | 
| 80 | 
     & ,diffKhwc01_2D_x,diffKhwc01_2D_y | 
| 81 | 
     & , wc01_2D_Lx0,wc01_2D_Ly0 | 
| 82 | 
     & , wc01_3D_Lx0,wc01_3D_Ly0,wc01_3D_Lz0 | 
| 83 | 
 | 
| 84 | 
 | 
| 85 | 
      COMMON /smooth_operators_tmp/ | 
| 86 | 
     & diffKhwc01, diffK4wc01 | 
| 87 | 
  |