Index: /trunk/LMDZ.MARS/changelog.txt
===================================================================
--- /trunk/LMDZ.MARS/changelog.txt	(revision 3465)
+++ /trunk/LMDZ.MARS/changelog.txt	(revision 3466)
@@ -4721,2 +4721,8 @@
 - Small update in "analyse_netcdf.py".
 - Putting the 1D launching scripts back to the "deftank" folder.
+
+== 21/10/2024 == EM
+More tidying in aeronomars:
+- remove unused "inv.F" and remove "dtridgl.F" which is not used here and
+  is a duplicate of the "dtridgl" routine in phymars/swr_toon.F
+- turn aeronomars routines to modules, for those which aren't in modules yet.
Index: /trunk/LMDZ.MARS/libf/aeronomars/calchim_mod.F90
===================================================================
--- /trunk/LMDZ.MARS/libf/aeronomars/calchim_mod.F90	(revision 3465)
+++ /trunk/LMDZ.MARS/libf/aeronomars/calchim_mod.F90	(revision 3466)
@@ -32,5 +32,8 @@
       use comcstfi_h, only: pi
       use chemthermos_mod, only: chemthermos
+      use chemthermos_readini_mod, only: chemthermos_readini
       use photochemistry_mod, only: photochemistry
+      use deposition_mod, only: deposition
+      use perosat_mod, only: perosat
       use chemistrydata_mod, only: read_phototable
       use photolysis_mod, only: init_photolysis, nphot
Index: /trunk/LMDZ.MARS/libf/aeronomars/chemthermos_readini.F
===================================================================
--- /trunk/LMDZ.MARS/libf/aeronomars/chemthermos_readini.F	(revision 3465)
+++ /trunk/LMDZ.MARS/libf/aeronomars/chemthermos_readini.F	(revision 3466)
@@ -1,2 +1,8 @@
+      module chemthermos_readini_mod
+      
+      implicit none
+      
+      contains
+      
       subroutine chemthermos_readini
 
@@ -26,7 +32,9 @@
       else
          write(*,*)
-         write(*,*) 'Cannot find file chemthermos_reactionrates.def'
-         stop
+         call abort_physic("chemthermos_readini", 
+     &               'Cannot find file chemthermos_reactionrates.def',1)
       endif
       
-      end
+      end subroutine chemthermos_readini
+
+      end module chemthermos_readini_mod
Index: /trunk/LMDZ.MARS/libf/aeronomars/conduction.F
===================================================================
--- /trunk/LMDZ.MARS/libf/aeronomars/conduction.F	(revision 3465)
+++ /trunk/LMDZ.MARS/libf/aeronomars/conduction.F	(revision 3466)
@@ -1,3 +1,9 @@
-       SUBROUTINE conduction(ngrid,nlayer,ptimestep,pplay,pplev,pt,pdt,
+      MODULE conduction_mod
+      
+      IMPLICIT NONE
+      
+      CONTAINS
+      
+      SUBROUTINE conduction(ngrid,nlayer,ptimestep,pplay,pplev,pt,pdt,
      $                   tsurf,zzlev,zzlay,zdtconduc)
 
@@ -162,4 +168,5 @@
       enddo ! of do ig=1,ngrid
 
-      RETURN
-      END
+      END SUBROUTINE conduction
+      
+      END MODULE conduction_mod
Index: /trunk/LMDZ.MARS/libf/aeronomars/deposition.F
===================================================================
--- /trunk/LMDZ.MARS/libf/aeronomars/deposition.F	(revision 3465)
+++ /trunk/LMDZ.MARS/libf/aeronomars/deposition.F	(revision 3466)
@@ -1,2 +1,8 @@
+      module deposition_mod
+      
+      implicit none
+      
+      contains
+      
       subroutine deposition(ngrid, nlayer, nq,
      &                      ig, ig_vl1, pplay, pplev, zzlay, zzlev,
@@ -173,4 +179,5 @@
 c     end if
 c
-      return
-      end
+      end subroutine deposition
+
+      end module deposition_mod
Index: unk/LMDZ.MARS/libf/aeronomars/dtridgl.F
===================================================================
--- /trunk/LMDZ.MARS/libf/aeronomars/dtridgl.F	(revision 3465)
+++ 	(revision )
@@ -1,36 +1,0 @@
-      SUBROUTINE DTRIDGL(L,AF,BF,CF,DF,XK)
-
-C  GCM2.0  Feb 2003
-
-C     DOUBLE PRECISION VERSION OF TRIDGL
-
-      PARAMETER (NMAX=201)
-      IMPLICIT REAL*8  (A-H,O-Z)
-      DIMENSION AF(L),BF(L),CF(L),DF(L),XK(L)
-      DIMENSION AS(NMAX),DS(NMAX)
-
-C*    THIS SUBROUTINE SOLVES A SYSTEM OF TRIDIAGIONAL MATRIX
-C*    EQUATIONS. THE FORM OF THE EQUATIONS ARE:
-C*    A(I)*X(I-1) + B(I)*X(I) + C(I)*X(I+1) = D(I)
-C*    WHERE I=1,L  LESS THAN 103.
-C* ..............REVIEWED -CP........
-
-C======================================================================C
-
-      AS(L) = AF(L)/BF(L)
-      DS(L) = DF(L)/BF(L)
-
-      DO I=2,L
-        X         = 1./(BF(L+1-I) - CF(L+1-I)*AS(L+2-I))
-        AS(L+1-I) = AF(L+1-I)*X
-        DS(L+1-I) = (DF(L+1-I)-CF(L+1-I)*DS(L+2-I))*X
-      END DO
- 
-      XK(1)=DS(1)
-      DO I=2,L
-        XKB   = XK(I-1)
-        XK(I) = DS(I)-AS(I)*XKB
-      END DO
-
-      RETURN
-      END
Index: /trunk/LMDZ.MARS/libf/aeronomars/inichim_newstart.F90
===================================================================
--- /trunk/LMDZ.MARS/libf/aeronomars/inichim_newstart.F90	(revision 3465)
+++ /trunk/LMDZ.MARS/libf/aeronomars/inichim_newstart.F90	(revision 3466)
@@ -13,4 +13,5 @@
       USE datafile_mod, ONLY: datadir
       use dust_param_mod, only: doubleq, submicron, dustbin
+      use intrplf_mod, only: intrplf
       implicit none
 
Index: /trunk/LMDZ.MARS/libf/aeronomars/intrplf.F
===================================================================
--- /trunk/LMDZ.MARS/libf/aeronomars/intrplf.F	(revision 3465)
+++ /trunk/LMDZ.MARS/libf/aeronomars/intrplf.F	(revision 3466)
@@ -1,2 +1,8 @@
+      MODULE intrplf_mod
+      
+      IMPLICIT NONE
+      
+      CONTAINS
+      
 c******************************************************
       SUBROUTINE intrplf(x,y,xd,yd,nd)
@@ -9,7 +15,8 @@
 c --------------------
 c  Arguments :
-      real x,y
-      real xd(nd),yd(nd)
-      integer nd
+      real,intent(in) :: x
+      real,intent(out) :: y
+      real,intent(in) :: xd(nd),yd(nd)
+      integer,intent(in) :: nd
 c  internal
       integer i,j
@@ -39,4 +46,6 @@
  
  99   continue
-      return
-      end                    
+
+      END SUBROUTINE intrplf
+
+      END MODULE intrplf_mod
Index: unk/LMDZ.MARS/libf/aeronomars/inv.F
===================================================================
--- /trunk/LMDZ.MARS/libf/aeronomars/inv.F	(revision 3465)
+++ 	(revision )
@@ -1,121 +1,0 @@
-      SUBROUTINE inv(A,N)
-
-      implicit none
-
-c=======================================================================
-c   Scheme A
-c
-c   subject:
-c   --------
-c
-c   Inversion of a matrix:
-c   Combinaison des routines ludcmp.f et lubksb.f du Numerical Recipes
-c=======================================================================
-
-      real       TINY
-      PARAMETER (TINY=1.0E-20)
-      real       AAMAX,DUM,SUM
-      integer    IMAX,I,II,J,K,L,LL,N
-      real       A(N,N),INDX(N),VV(N,N)
-
-      IMAX = 0
-      do I=1,N
-          AAMAX=0.
-          do J=1,N
-            IF (ABS(A(I,J)).GT.AAMAX) AAMAX=ABS(A(I,J))
-          enddo
-          if (AAMAX.EQ.0.) then
-              write(*,*) 'Singular matrix.'
-              stop
-          endif
-          VV(I,1)=1./AAMAX
-      enddo
-      do J=1,N
-        IF (J.GT.1) THEN
-          do I=1,J-1
-            SUM=A(I,J)
-            IF (I.GT.1)THEN
-              do K=1,I-1
-                SUM=SUM-A(I,K)*A(K,J)
-              enddo
-              A(I,J)=SUM
-            ENDIF
-          enddo
-        ENDIF
-        AAMAX=0.
-        do I=J,N
-          SUM=A(I,J)
-          IF (J.GT.1)THEN
-            do K=1,J-1
-              SUM=SUM-A(I,K)*A(K,J)
-            enddo
-            A(I,J)=SUM
-          ENDIF
-          DUM=VV(I,1)*ABS(SUM)
-          IF (DUM.GE.AAMAX) THEN
-            IMAX=I
-            AAMAX=DUM
-          ENDIF
-        enddo
-        IF (J.NE.IMAX)THEN
-          do K=1,N
-            DUM=A(IMAX,K)
-            A(IMAX,K)=A(J,K)
-            A(J,K)=DUM
-          enddo
-          VV(IMAX,1)=VV(J,1)
-        ENDIF
-        INDX(J)=IMAX
-        if(abs(A(J,J)).LT.TINY) then
-              write(*,*) 'Pivot too small.'
-              stop
-        endif
-        IF(J.NE.N)THEN
-          DUM=1./A(J,J)
-          do I=J+1,N
-            A(I,J)=A(I,J)*DUM
-          enddo
-        ENDIF
-      enddo
-
-      do I=1,N
-         do J=1,N
-            VV(I,J) = 0.
-         enddo
-         VV(I,I) = 1.
-      enddo
-
-      do L=1,N
-        II=0
-        do I=1,N
-          LL=INDX(I)
-          SUM=VV(LL,L)
-          VV(LL,L)=VV(I,L)
-          IF (II.NE.0)THEN
-            do J=II,I-1
-              SUM=SUM-A(I,J)*VV(J,L)
-            enddo
-          ELSE IF (SUM.NE.0.) THEN
-            II=I
-          ENDIF
-          VV(I,L)=SUM
-        enddo
-        do I=N,1,-1
-          SUM=VV(I,L)
-          IF(I.LT.N)THEN
-            do J=I+1,N
-              SUM=SUM-A(I,J)*VV(J,L)
-            enddo
-          ENDIF
-          VV(I,L)=SUM/A(I,I)
-        enddo
-      enddo
-
-      do I=1,N
-        do L=1,N
-          A(I,L)=VV(I,L)
-        enddo
-      enddo
-
-      return
-      END
Index: /trunk/LMDZ.MARS/libf/aeronomars/moldiff.F
===================================================================
--- /trunk/LMDZ.MARS/libf/aeronomars/moldiff.F	(revision 3465)
+++ /trunk/LMDZ.MARS/libf/aeronomars/moldiff.F	(revision 3466)
@@ -1,2 +1,8 @@
+      module moldiff_mod
+      
+      implicit none
+      
+      contains
+      
       subroutine moldiff(ngrid,nlayer,nq,
      &                   pplay,pplev,pt,pdt,pq,pdq,ptimestep,
@@ -8,5 +14,6 @@
      &                      igcm_h2o_vap, mmol
       use conc_mod, only: rnew, mmean
-      USE comcstfi_h
+      use comcstfi_h, only: g
+      use moldiffcoeff_mod, only: moldiffcoeff
       implicit none
 
@@ -452,6 +459,5 @@
       enddo		! ig loop
 
-      return
-      end
+      end subroutine moldiff
 
 c    ********************************************************************
@@ -462,5 +468,9 @@
 c      parameter (nmax=100)
 c      dimension gam(nmax),a(n),b(n),c(n),r(n),u(n)
-      real gam(n),a(n),b(n),c(n),r(n),u(n)
+      integer,intent(in) :: n
+      real,intent(in) :: a(n),b(n),c(n),r(n)
+      real,intent(out) :: u(n)
+      real :: gam(n),bet
+      integer :: j
       if(b(1).eq.0.)then
         stop 'tridag_sp: error: b(1)=0 !!! '
@@ -468,5 +478,5 @@
       bet=b(1)
       u(1)=r(1)/bet
-      do 11 j=2,n
+      do j=2,n
         gam(j)=c(j-1)/bet
         bet=b(j)-a(j)*gam(j)
@@ -475,10 +485,10 @@
         endif
         u(j)=(r(j)-a(j)*u(j-1))/bet
-11    continue
-      do 12 j=n-1,1,-1
+      enddo
+      do j=n-1,1,-1
         u(j)=u(j)-gam(j+1)*u(j+1)
-12    continue
-      return
-      end
+      enddo
+
+      end subroutine tridag_sp
 
 c    ********************************************************************
@@ -518,6 +528,6 @@
         B(I)=SUM/A(I,I)
 14    CONTINUE
-      RETURN
-      END
+
+      END SUBROUTINE LUBKSB_SP
 
 c    ********************************************************************
@@ -603,5 +613,6 @@
       IF(A(N,N).EQ.0.)A(N,N)=TINY
       ierr =0
-      RETURN
-      END
-
+
+      END SUBROUTINE LUDCMP_SP
+
+      end module moldiff_mod
Index: /trunk/LMDZ.MARS/libf/aeronomars/moldiffcoeff.F
===================================================================
--- /trunk/LMDZ.MARS/libf/aeronomars/moldiffcoeff.F	(revision 3465)
+++ /trunk/LMDZ.MARS/libf/aeronomars/moldiffcoeff.F	(revision 3466)
@@ -1,2 +1,8 @@
+      module moldiffcoeff_mod
+      
+      implicit none
+      
+      contains
+      
       subroutine moldiffcoeff(dij)
 
@@ -218,5 +224,5 @@
       close(56)
 
-
-      return   
-      end 
+      end subroutine moldiffcoeff
+
+      end module moldiffcoeff_mod
Index: /trunk/LMDZ.MARS/libf/aeronomars/molvis.F
===================================================================
--- /trunk/LMDZ.MARS/libf/aeronomars/molvis.F	(revision 3465)
+++ /trunk/LMDZ.MARS/libf/aeronomars/molvis.F	(revision 3466)
@@ -1,3 +1,9 @@
-       SUBROUTINE molvis(ngrid,nlayer,ptimestep,
+      MODULE molvis_mod
+      
+      IMPLICIT NONE
+      
+      CONTAINS
+
+      SUBROUTINE molvis(ngrid,nlayer,ptimestep,
      &            pplay,pplev,pt,pdteuv,pdtconduc
      $           ,pvel,tsurf,zzlev,zzlay,zdvelmolvis)
@@ -176,4 +182,5 @@
       ENDDO             ! boucle sur ngrid
 
-      RETURN
-      END
+      END SUBROUTINE molvis
+
+      END MODULE molvis_mod
Index: /trunk/LMDZ.MARS/libf/aeronomars/param_read.F
===================================================================
--- /trunk/LMDZ.MARS/libf/aeronomars/param_read.F	(revision 3465)
+++ /trunk/LMDZ.MARS/libf/aeronomars/param_read.F	(revision 3466)
@@ -1,2 +1,8 @@
+      module param_read_mod
+      
+      implicit none
+      
+      contains
+      
       subroutine param_read
 
@@ -422,7 +428,6 @@
       call bcast(p2)
 
-      return
-
-
-      end
-
+
+      end subroutine param_read
+
+      end module param_read_mod
Index: /trunk/LMDZ.MARS/libf/aeronomars/param_read_e107.F
===================================================================
--- /trunk/LMDZ.MARS/libf/aeronomars/param_read_e107.F	(revision 3465)
+++ /trunk/LMDZ.MARS/libf/aeronomars/param_read_e107.F	(revision 3466)
@@ -1,2 +1,8 @@
+      module param_read_e107_mod
+      
+      implicit none
+      
+      contains
+      
       subroutine param_read_e107
 
@@ -547,7 +553,5 @@
 
 
-      return
-
-
-      end
-
+      end subroutine param_read_e107
+
+      end module param_read_e107_mod
Index: /trunk/LMDZ.MARS/libf/aeronomars/perosat.F
===================================================================
--- /trunk/LMDZ.MARS/libf/aeronomars/perosat.F	(revision 3465)
+++ /trunk/LMDZ.MARS/libf/aeronomars/perosat.F	(revision 3466)
@@ -1,2 +1,8 @@
+      MODULE perosat_mod
+      
+      IMPLICIT NONE
+      
+      CONTAINS
+      
       SUBROUTINE perosat(ngrid,nlayer,nq,ig, ptimestep,
      $                   pplev, pplay, zt,
@@ -143,4 +149,5 @@
         end do
 
-      RETURN
-      END
+      END SUBROUTINE perosat
+      
+      END MODULE perosat_mod
Index: /trunk/LMDZ.MARS/libf/aeronomars/photochemistry.F90
===================================================================
--- /trunk/LMDZ.MARS/libf/aeronomars/photochemistry.F90	(revision 3465)
+++ /trunk/LMDZ.MARS/libf/aeronomars/photochemistry.F90	(revision 3466)
@@ -31,4 +31,6 @@
 use jthermcalc_e107_mod, only: jthermcalc_e107
 use paramfoto_compact_mod, only: phdisrate
+use photolysis_module, only: photolysis
+use photolysis_online_mod, only: photolysis_online
 
 implicit none
Index: /trunk/LMDZ.MARS/libf/aeronomars/photolysis.F90
===================================================================
--- /trunk/LMDZ.MARS/libf/aeronomars/photolysis.F90	(revision 3465)
+++ /trunk/LMDZ.MARS/libf/aeronomars/photolysis.F90	(revision 3466)
@@ -1,2 +1,8 @@
+      module photolysis_module
+      
+      implicit none
+      
+      contains
+      
 !==========================================================================
 
@@ -340,6 +346,7 @@
       end do
 
-      return
-      end
+      end subroutine photolysis
 
 !*****************************************************************
+
+      end module photolysis_module
Index: /trunk/LMDZ.MARS/libf/aeronomars/photolysis_online.F
===================================================================
--- /trunk/LMDZ.MARS/libf/aeronomars/photolysis_online.F	(revision 3465)
+++ /trunk/LMDZ.MARS/libf/aeronomars/photolysis_online.F	(revision 3466)
@@ -1,2 +1,8 @@
+      module photolysis_online_mod
+      
+      implicit none
+      
+      contains
+
 !==============================================================================
 
@@ -1564,2 +1570,4 @@
 
       end subroutine photolysis_online
+      
+      end module photolysis_online_mod
Index: /trunk/LMDZ.MARS/libf/aeronomars/surfacearea.F
===================================================================
--- /trunk/LMDZ.MARS/libf/aeronomars/surfacearea.F	(revision 3465)
+++ /trunk/LMDZ.MARS/libf/aeronomars/surfacearea.F	(revision 3466)
@@ -1,2 +1,8 @@
+      module surfacearea_mod
+      
+      implicit none
+      
+      contains
+      
       subroutine surfacearea(ngrid, nlay, naerkind, ptimestep,
      $                       pplay, pzlay, 
@@ -126,3 +132,5 @@
      $            "micron2 cm-3",3,surfice*1.e6)
 
-      end
+      end subroutine surfacearea
+
+      end module surfacearea_mod
Index: /trunk/LMDZ.MARS/libf/aeronomars/thermosphere.F
===================================================================
--- /trunk/LMDZ.MARS/libf/aeronomars/thermosphere.F	(revision 3465)
+++ /trunk/LMDZ.MARS/libf/aeronomars/thermosphere.F	(revision 3466)
@@ -19,4 +19,6 @@
       use moldiff_MPF_mod, only: moldiff_MPF ! new molecular diffusion scheme
       use euvheat_mod, only: euvheat
+      use conduction_mod, only: conduction
+      use molvis_mod, only: molvis
       use conc_mod, only: rnew, cpnew
       USE comcstfi_h, only: r, cpp
Index: /trunk/LMDZ.MARS/libf/phymars/physiq_mod.F
===================================================================
--- /trunk/LMDZ.MARS/libf/phymars/physiq_mod.F	(revision 3465)
+++ /trunk/LMDZ.MARS/libf/phymars/physiq_mod.F	(revision 3466)
@@ -29,4 +29,5 @@
       use nlthermeq_mod, only: nlthermeq
       use thermosphere_mod, only: thermosphere
+      use param_read_e107_mod, only: param_read_e107
       use tracer_mod, only: noms, mmol, igcm_co2, igcm_n2, igcm_co2_ice,
      &                      igcm_co, igcm_o, igcm_h2o_vap, igcm_h2o_ice,
@@ -62,4 +63,5 @@
       use nirdata_mod, only: NIR_leedat
       use nirco2abs_mod, only: nirco2abs
+      use surfacearea_mod, only: surfacearea
       use slope_mod, only: theta_sl, psi_sl, getslopes, param_slope
       use conc_mod, only: init_r_cp_mu, update_r_cp_mu_ak, rnew,
