Changeset 5592 for LMDZ6


Ignore:
Timestamp:
Mar 26, 2025, 7:00:27 PM (2 months ago)
Author:
yann meurdesoif
Message:

Update ICOLMDZISO branch.
YM

Location:
LMDZ6/branches/ICOLMDZISO/libf
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/ICOLMDZISO/libf/phylmd/create_etat0_unstruct_mod.F90

    r5204 r5592  
    9292  USE geometry_mod
    9393  USE ioipsl_getin_p_mod, ONLY: getin_p
     94 
     95  USE infotrac_phy, ONLY: niso
     96  USE isotopes_routines_mod, ONLY: phyisoetat0
     97  USE isotopes_mod, ONLY: iso_eau
     98  USE isotopes_verif_mod, ONLY: iso_verif_egalite_vect2D,iso_verif_egalite
    9499
    95100  IMPLICIT NONE
     
    112117    REAL,    DIMENSION(klon_mpi)             :: cell_area_mpi
    113118    REAL,    DIMENSION(klon_mpi,nbsrf)       :: pctsrf_mpi
     119#ifdef ISO
     120    REAL xtsnow(niso,klon, nbsrf)
     121    REAL xtrun_off_lic_0(niso,klon)
     122    REAL Rland_ice(niso,klon)
     123#endif
    114124
    115125    INCLUDE "compbl.h"
     
    306316    awake_s = 0.
    307317
     318
    308319    CALL fonte_neige_init(run_off_lic_0)
    309320    CALL pbl_surface_init( fder, snsrf, qsurf, tsoil )
     
    314325    END IF
    315326    ratqs_inter_ = 0.002
     327
     328
     329#ifdef ISO
     330        ! initialise les isotopes       
     331        write(*,*) 'phyetat0 1069'
     332         CALL phyisoetat0 (snow,run_off_lic_0, &
     333     &           xtsnow,xtrun_off_lic_0, &
     334     &           Rland_ice)
     335#ifdef ISOVERIF
     336      write(*,*) 'phyetat0 1074'
     337      if (iso_eau.gt.0) then
     338      call iso_verif_egalite_vect2D(  &
     339     &           xtsnow,snow, &
     340     &           'phyetat0 1101a',niso,klon,nbsrf)
     341        do i=1,klon 
     342              call iso_verif_egalite(Rland_ice(iso_eau,i),1.0, &
     343     &         'phyetat0 1101b')
     344         enddo
     345      endif
     346      write(*,*) 'phyetat0 1102'
     347#endif
     348#endif
     349
     350#ifdef ISO
     351   CALL fonte_neige_init_iso(xtrun_off_lic_0)
     352#endif
     353
     354
     355#ifdef ISO
     356  CALL pbl_surface_init_iso(xtsnow,Rland_ice)
     357#endif
    316358
    317359    CALL gather_omp(cell_area,cell_area_mpi)
  • LMDZ6/branches/ICOLMDZISO/libf/phylmd/fonte_neige_mod.F90

    r5022 r5592  
    170170    IF (error /= 0) THEN
    171171       abort_message='Pb allocation run_off_lic'
    172        CALL abort_gcm(modname,abort_message,1)
     172       CALL abort_physic(modname,abort_message,1)
    173173    ENDIF   
    174174   
     
    191191    IF (error /= 0) THEN
    192192       abort_message='Pb allocation xtrun_off_ter'
    193        CALL abort_gcm(modname,abort_message,1)
     193       CALL abort_physic(modname,abort_message,1)
    194194    ENDIF
    195195    xtrun_off_ter(:,:) = 0.
     
    198198    IF (error /= 0) THEN
    199199       abort_message='Pb allocation xtrun_off_lic'
    200        CALL abort_gcm(modname,abort_message,1)
     200       CALL abort_physic(modname,abort_message,1)
    201201    ENDIF
    202202    xtrun_off_lic(:,:) = 0.
     
    205205    IF (error /= 0) THEN
    206206       abort_message='Pb allocation fxtfonte_global'
    207        CALL abort_gcm(modname,abort_message,1)
     207       CALL abort_physic(modname,abort_message,1)
    208208    ENDIF
    209209    fxtfonte_global(:,:,:) = 0.0
     
    212212    IF (error /= 0) THEN
    213213       abort_message='Pb allocation fxtcalving_global'
    214        CALL abort_gcm(modname,abort_message,1)
     214       CALL abort_physic(modname,abort_message,1)
    215215    ENDIF
    216216    fxtcalving_global(:,:,:) = 0.0
     
    219219    IF (error /= 0) THEN
    220220       abort_message='Pb allocation xtrunofflic_global'
    221        CALL abort_gcm(modname,abort_message,1)
     221       CALL abort_physic(modname,abort_message,1)
    222222    ENDIF
    223223    xtrunofflic_global(:,:) = 0.0
  • LMDZ6/branches/ICOLMDZISO/libf/phylmd/infotrac_phy.F90

    r5200 r5592  
    464464#endif
    465465   CALL msg('end', modname)
    466 
     466   
    467467END SUBROUTINE init_infotrac_phy
    468468
  • LMDZ6/branches/ICOLMDZISO/libf/phylmd/inifis_mod.F90

    r3435 r5592  
    7676    END IF
    7777  END IF
     78   
     79    CALL init_isotopes
     80   
     81  END SUBROUTINE inifis
    7882
    79   END SUBROUTINE inifis
    80  
     83
     84SUBROUTINE init_isotopes
     85USE infotrac_phy,ONLY : niso, nzone, ntraciso=>ntiso
     86USE isotrac_mod, ONLY: iso_traceurs_init
     87USE isotopes_mod, ONLY: iso_init
     88USE isotopes_verif_mod, ONLY: iso_verif_init
     89IMPLICIT NONE
     90
     91 ! C Risi: vérifier compatibilité des options isotopiques entre
     92 ! dyn3dmem et physiq
     93#ifdef ISO
     94    write(*,*) 'ok_isotopes,ntraciso,niso=',niso>0,ntraciso,niso
     95    IF(niso  <= 0) CALL abort_physic('init_isotopes','options iso incompatibles',1)
     96#ifdef ISOTRAC
     97    IF(nzone <= 0) CALL abort_physic('init_isotopes','options isotrac incompatibles',1)
     98#else
     99    IF(nzone  > 0) CALL abort_physic('init_isotopes','options isotrac incompatibles',1)
     100#endif
     101#else
     102    if(niso   > 0) CALL abort_physic('init_isotopes','options iso incompatibles',1)
     103#endif
     104
     105#ifdef ISO
     106        ! initialisations isotopiques
     107#ifdef ISOVERIF
     108           write(*,*) 'ok_isotopes=',niso > 0
     109#endif
     110        if (niso > 0) call iso_init()
     111#ifdef ISOTRAC
     112IF(nzone > 0) then
     113        call iso_traceurs_init()
     114endif
     115#endif
     116#ifdef ISOVERIF
     117        call iso_verif_init()
     118#endif
     119#endif
     120
     121END SUBROUTINE init_isotopes 
     122
    81123END MODULE inifis_mod
  • LMDZ6/branches/ICOLMDZISO/libf/phylmd/pbl_surface_mod.F90

    r5171 r5592  
    226226
    227227    ALLOCATE(xtsnow(niso,klon,nbsrf), stat=ierr)
    228     IF (ierr /= 0) CALL abort_gcm('pbl_surface_init', 'pb in allocation',1)
     228    IF (ierr /= 0) CALL abort_physic('pbl_surface_init', 'pb in allocation',1)
    229229
    230230    ALLOCATE(Rland_ice(niso,klon), stat=ierr)
    231     IF (ierr /= 0) CALL abort_gcm('pbl_surface_init', 'pb in allocation',1)
     231    IF (ierr /= 0) CALL abort_physic('pbl_surface_init', 'pb in allocation',1)
    232232
    233233    ALLOCATE(Roce(niso,klon), stat=ierr)
    234     IF (ierr /= 0) CALL abort_gcm('pbl_surface_init', 'pb in allocation',1)
     234    IF (ierr /= 0) CALL abort_physic('pbl_surface_init', 'pb in allocation',1)
    235235
    236236    xtsnow(:,:,:)  = xtsnow_rst(:,:,:)
     
    22652265       ELSE IF (iflag_split .ge. 1) THEN
    22662266#ifdef ISO
    2267         call abort_gcm('pbl_surface_mod 2149','isos pas encore dans iflag_split=1',1)
     2267        call abort_physic('pbl_surface_mod 2149','isos pas encore dans iflag_split=1',1)
    22682268#endif
    22692269
     
    27492749       IF (iflag_split .GE. 1) THEN
    27502750#ifdef ISO
    2751         call abort_gcm('pbl_surface_mod 2607','isos pas encore dans iflag_split=1',1)
     2751        call abort_physic('pbl_surface_mod 2607','isos pas encore dans iflag_split=1',1)
    27522752#endif
    27532753!
  • LMDZ6/branches/ICOLMDZISO/libf/phylmd/surf_land_mod.F90

    r5022 r5592  
    229229
    230230#ifdef ISO
    231       CALL abort_gcm('surf_land_mod 220','isos pas prevus dans orchidee',1)
     231      CALL abort_physic('surf_land_mod 220','isos pas prevus dans orchidee',1)
    232232#endif
    233233       ! temporary for keeping same results using lwdown_m instead of lwdown
  • LMDZ6/branches/ICOLMDZISO/libf/phylmd/surf_landice_mod.F90

    r5196 r5592  
    268268
    269269#ifdef ISO
    270         CALL abort_gcm('surf_landice 235','isotopes pas dans INLANDSIS',1)
     270        CALL abort_physic('surf_landice 235','isotopes pas dans INLANDSIS',1)
    271271#endif
    272272
  • LMDZ6/branches/ICOLMDZISO/libf/phylmdiso/cv3_routines.F90

    r4776 r5592  
    16941694  IF (icvflag_Tpa == 2) THEN
    16951695#ifdef ISO
    1696         CALL abort_gcm('cv3_routines 1813','isos pas prevus ici',1)
     1696        CALL abort_physic('cv3_routines 1813','isos pas prevus ici',1)
    16971697#endif
    16981698!
     
    18081808!
    18091809#ifdef ISO
    1810         CALL abort_gcm('cv3_routines 1813','isos pas prevus ici',1)
     1810        CALL abort_physic('cv3_routines 1813','isos pas prevus ici',1)
    18111811#endif
    18121812    DO k = minorig + 1, nl
     
    39813981    IF (cvflag_prec_eject) THEN
    39823982#ifdef ISO
    3983       CALL abort_gcm('cv3_routines 4037','isos pas prevus ici',1)
     3983      CALL abort_physic('cv3_routines 4037','isos pas prevus ici',1)
    39843984#endif
    39853985!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  • LMDZ6/branches/ICOLMDZISO/libf/phylmdiso/isotopes_mod.F90

    r5214 r5592  
    143143!$OMP THREADPRIVATE(lat_nucl, lon_nucl, zmin_nucl, zmax_nucl, HTO_nucl)
    144144 
    145  
     145   LOGICAL, SAVE :: using_iso = .FALSE.   !--- TRUE isotope version is used
     146!$OMP THREADPRIVATE(using_iso)
     147   
    146148CONTAINS
    147149
     
    165167   INTEGER :: iessai
    166168
     169   using_iso=.TRUE.
     170   
    167171   modname = 'iso_init'
    168172   CALL msg('219: entree', modname)
  • LMDZ6/branches/ICOLMDZISO/libf/phylmdiso/isotopes_verif_mod.F90

    r4982 r5592  
    1 
    2 #ifdef ISOVERIF
    31! $Id: $
    42
     
    27792777END MODULE isotopes_verif_mod
    27802778
    2781 #endif         
    2782 ! endif ISOVERIF
    2783 
  • LMDZ6/branches/ICOLMDZISO/libf/phylmdiso/isotrac_mod.F90

    r5199 r5592  
    1 #ifdef ISO
    2 #ifdef ISOTRAC
    3 
    41MODULE isotrac_mod
    52  USE infotrac_phy, ONLY: niso, ntiso, nzone, delPhase
     
    673670
    674671END MODULE isotrac_mod
    675 #endif
    676 #endif
  • LMDZ6/branches/ICOLMDZISO/libf/phylmdiso/limit_read_mod.F90

    r5084 r5592  
    517517             IF ((iso_HTO.gt.0).and.(ok_prod_nucl_tritium)) THEN
    518518               ierr = NF90_INQ_VARID(nid, 'TUOCE', nvarid)
    519                IF (ierr /= NF90_NOERR) CALL abort_gcm(modname,'Le champ <TUOCE> est absent',1)
     519               IF (ierr /= NF90_NOERR) CALL abort_physic(modname,'Le champ <TUOCE> est absent',1)
    520520
    521521               ierr = NF90_GET_VAR(nid,nvarid,tuoce_glo,start,epais)
    522                IF (ierr /= NF90_NOERR) CALL abort_gcm(modname,'Lecture echouee pour <TUOCE>',1)
     522               IF (ierr /= NF90_NOERR) CALL abort_physic(modname,'Lecture echouee pour <TUOCE>',1)
    523523             END IF
    524524#ifdef ISOVERIF
  • LMDZ6/branches/ICOLMDZISO/libf/phylmdiso/physiq_mod.F90

    r5209 r5592  
    17721772       itapwk = 0
    17731773
    1774 ! C Risi: vérifier compatibilité des options isotopiques entre
    1775 ! dyn3dmem et physiq
    1776 #ifdef ISO
    1777     write(*,*) 'physiq 1846a: ok_isotopes,ntraciso,niso=',niso>0,ntraciso,niso
    1778     IF(niso  <= 0) CALL abort_gcm('physiq 1756','options iso incompatibles',1)
    1779 #ifdef ISOTRAC
    1780     IF(nzone <= 0) CALL abort_gcm('physiq 1758','options isotrac incompatibles',1)
    1781 #else
    1782     IF(nzone  > 0) CALL abort_gcm('physiq 1762','options isotrac incompatibles',1)
    1783 #endif
    1784 #else
    1785     if(niso   > 0) CALL abort_gcm('physiq 1772','options iso incompatibles',1)
    1786 #endif
    1787 
    1788 #ifdef ISO
    1789         ! initialisations isotopiques
    1790 #ifdef ISOVERIF
    1791            write(*,*) 'physiq 1366: call iso_init'
    1792            write(*,*) 'ok_isotopes=',niso > 0
    1793 #endif
    1794         if (niso > 0) call iso_init()
    1795 #ifdef ISOTRAC
    1796 IF(nzone > 0) then
    1797         write(*,*) 'physiq 1416: call iso_traceurs_init'
    1798         call iso_traceurs_init()
    1799 endif
    1800 #endif
     1774
     1775!!ym for displaced in iniphysic for early initialization
     1776
     1777!! C Risi: vérifier compatibilité des options isotopiques entre
     1778!! dyn3dmem et physiq
     1779!#ifdef ISO
     1780!    write(*,*) 'physiq 1846a: ok_isotopes,ntraciso,niso=',niso>0,ntraciso,niso
     1781!    IF(niso  <= 0) CALL abort_physic('physiq 1756','options iso incompatibles',1)
     1782!#ifdef ISOTRAC
     1783!    IF(nzone <= 0) CALL abort_physic('physiq 1758','options isotrac incompatibles',1)
     1784!#else
     1785!    IF(nzone  > 0) CALL abort_physic('physiq 1762','options isotrac incompatibles',1)
     1786!#endif
     1787!#else
     1788!    if(niso   > 0) CALL abort_physic('physiq 1772','options iso incompatibles',1)
     1789!#endif
     1790!
     1791!#ifdef ISO
     1792!        ! initialisations isotopiques
     1793!#ifdef ISOVERIF
     1794!           write(*,*) 'physiq 1366: call iso_init'
     1795!           write(*,*) 'ok_isotopes=',niso > 0
     1796!#endif
     1797!        if (niso > 0) call iso_init()
     1798!#ifdef ISOTRAC
     1799!IF(nzone > 0) then
     1800!        write(*,*) 'physiq 1416: call iso_traceurs_init'
     1801!        call iso_traceurs_init()
     1802!endif
     1803!#endif
    18011804!write(*,*) 'gcm 265: ntraciso=',ntraciso
    1802 #ifdef ISOVERIF
    1803         write(*,*) 'physiq 1421: call iso_verif_init'
    1804         call iso_verif_init()
    1805 #endif
    1806 #endif
     1805!#ifdef ISOVERIF
     1806!        write(*,*) 'physiq 1421: call iso_verif_init'
     1807!        call iso_verif_init()
     1808!#endif
     1809!#endif
    18071810
    18081811
     
    36753678    ELSE IF (iflag_con.EQ.2) THEN
    36763679#ifdef ISO
    3677       CALL abort_gcm('physiq 2770','isos pas prevus ici',1)
     3680      CALL abort_physic('physiq 2770','isos pas prevus ici',1)
    36783681#endif
    36793682       CALL conflx(phys_tstep, paprs, pplay, t_seri, q_seri, &
     
    70127015    IF (mass_fixer) THEN
    70137016#ifdef ISO
    7014       CALL abort_gcm('physiq 6936','isos pas prevus dans le mass fixer',1)
     7017      CALL abort_physic('physiq 6936','isos pas prevus dans le mass fixer',1)
    70157018      ! Camille Risi mai 2024: on attend d'avoir la 4e dimension qui rendra tout plus simple.
    70167019#endif
Note: See TracChangeset for help on using the changeset viewer.