Ignore:
Timestamp:
Mar 29, 2023, 3:14:27 PM (21 months ago)
Author:
lguez
Message:

Sync latest trunk changes to branch LMDZ_ECRad

Location:
LMDZ6/branches/LMDZ_ECRad
Files:
22 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/LMDZ_ECRad

  • LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/advtrac_loc.F90

    r4143 r4482  
    161161         !--------------------------------------------------------------------
    162162!           WRITE(*,*) 'advtrac 248: iq,q(1721,19,:)=',iq,q(1721,19,:)
    163             STOP 'advtrac : appel a vlspltqs :schema non parallelise'
     163            CALL abort_gcm("advtrac","appel a vlspltqs :schema non parallelise",1)
    164164!LF         CALL vlspltqs_p(q(1,1,1),2.,massem,wg,pbarug,pbarvg,dtvr,p,pk,teta )
    165165
     
    167167         CASE(12)  !--- Schema de Frederic Hourdin
    168168         !--------------------------------------------------------------------
    169             STOP 'advtrac : appel a vlspltqs :schema non parallelise'
     169            CALL abort_gcm("advtrac","appel a vlspltqs :schema non parallelise",1)
    170170            CALL adaptdt(iadv,dtbon,n,pbarug,massem)   ! pas de temps adaptatif
    171171            IF(n > 1) WRITE(*,*) 'WARNING horizontal dt=',dtbon,'dtvr=',dtvr,'n=',n
     
    177177         CASE(13)  !--- Pas de temps adaptatif
    178178         !--------------------------------------------------------------------
    179             STOP 'advtrac : schema non parallelise'
     179            CALL abort_gcm("advtrac","schema non parallelise",1)
    180180            CALL adaptdt(iadv,dtbon,n,pbarug,massem)
    181181            IF(n > 1) WRITE(*,*) 'WARNING horizontal dt=',dtbon,'dtvr=',dtvr,'n=',n
     
    187187         CASE(20)  !--- Schema de pente SLOPES
    188188         !--------------------------------------------------------------------
    189             STOP 'advtrac : schema non parallelise'
     189            CALL abort_gcm("advtrac","schema SLOPES non parallelise",1)
    190190            CALL pentes_ini (q(1,1,iq),wg,massem,pbarug,pbarvg,0)
    191191
     
    193193         CASE(30)  !--- Schema de Prather
    194194         !--------------------------------------------------------------------
    195             STOP 'advtrac : schema non parallelise'
     195            CALL abort_gcm("advtrac","schema prather non parallelise",1)
    196196            ! Pas de temps adaptatif
    197197            CALL adaptdt(iadv,dtbon,n,pbarug,massem)
     
    202202         CASE(11,16,17,18)   !--- Schemas PPM Lin et Rood
    203203         !--------------------------------------------------------------------
    204             STOP 'advtrac : schema non parallelise'
     204            CALL abort_gcm("advtrac","schema PPM non parallelise",1)
    205205            ! Test sur le flux horizontal
    206206            CALL adaptdt(iadv,dtbon,n,pbarug,massem)   ! pas de temps adaptatif
  • LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/bilan_dyn_loc.F

    r2601 r4482  
    231231           WRITE(lunout,*)'dt_app=',dt_app
    232232           WRITE(lunout,*)'dt_cum=',dt_cum
    233            stop
     233           CALL abort_gcm("conf_gcmbilan_dyn_loc","stopped",1)
    234234        endif
    235235
  • LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/check_isotopes_loc.F90

    r4143 r4482  
    33   USE strings_mod, ONLY: maxlen, msg, strIdx, strStack, int2str, real2str
    44   USE infotrac,    ONLY: nqtot, niso, nphas, isotope, isoCheck, iqIsoPha, isoSelect, &
    5                           ntiso, iH2O, nzone, tracers, isoName,  itZonIso, tnat
     5                          ntiso, iH2O, nzone, tracers, isoName,  itZonIso, getKey
    66   IMPLICIT NONE
    77   include "dimensions.h"
     
    1111   CHARACTER(LEN=maxlen) :: modname, msg1, nm(2)
    1212   INTEGER :: ixt, ipha, k, i, iq, iiso, izon, ieau, iqeau, iqpar
    13    INTEGER, ALLOCATABLE :: ix(:)
     13   INTEGER, ALLOCATABLE ::   ix(:)
     14   REAL,    ALLOCATABLE, SAVE :: tnat(:)         !--- OpenMP shared variable
    1415   REAL    :: xtractot, xiiso, deltaD, q1, q2
    1516   REAL, PARAMETER :: borne     = 1e19,  &
     
    3132   IF(first) THEN
    3233!$OMP MASTER
    33       iso_eau = strIdx(isoName,'H2[16]O')
    34       iso_HDO = strIdx(isoName,'H[2]HO')
    35       iso_O18 = strIdx(isoName,'H2[18]O')
    36       iso_O17 = strIdx(isoName,'H2[17]O')
    37       iso_HTO = strIdx(isoName,'H[3]HO')
     34      iso_eau = strIdx(isoName,'H216O')
     35      iso_HDO = strIdx(isoName,'HDO')
     36      iso_O18 = strIdx(isoName,'H218O')
     37      iso_O17 = strIdx(isoName,'H217O')
     38      iso_HTO = strIdx(isoName,'HTO')
     39      IF(getKey('tnat', tnat)) CALL abort_gcm(modname, 'missing isotopic parameter', 1)
    3840!$OMP END MASTER
    3941!$OMP BARRIER
  • LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/conf_gcm.F90

    r4146 r4482  
    453453        write(lunout,*)'conf_gcm: La valeur de clat passee par run.def', &
    454454             ' est differente de celle lue sur le fichier  start '
    455         STOP
     455        CALL abort_gcm("conf_gcm","stopped",1)
    456456     ENDIF
    457457
     
    467467        write(lunout,*)'conf_gcm: La valeur de grossismx passee par ', &
    468468             'run.def est differente de celle lue sur le fichier  start '
    469         STOP
    470      ENDIF
     469        CALL abort_gcm("conf_gcm","stopped",1)
     470      ENDIF
    471471
    472472     !Config  Key  = grossismy
     
    481481        write(lunout,*)'conf_gcm: La valeur de grossismy passee par ', &
    482482             'run.def est differente de celle lue sur le fichier  start '
    483         STOP
     483        CALL abort_gcm("conf_gcm","stopped",1)
    484484     ENDIF
    485485
     
    487487        write(lunout,*) &
    488488             'conf_gcm: ***  ATTENTION !! grossismx < 1 .   *** '
    489         STOP
     489        CALL abort_gcm("conf_gcm","stopped",1)
    490490     ELSE
    491491        alphax = 1. - 1./ grossismx
     
    495495        write(lunout,*) &
    496496             'conf_gcm: ***  ATTENTION !! grossismy < 1 .   *** '
    497         STOP
     497        CALL abort_gcm("conf_gcm","stopped",1)
    498498     ELSE
    499499        alphay = 1. - 1./ grossismy
     
    517517           write(lunout,*)' *** fxyhypb lu sur le fichier start est ', &
    518518                'F alors  qu il est  T  sur  run.def  ***'
    519            STOP
     519           CALL abort_gcm("conf_gcm","stopped",1)
    520520        ENDIF
    521521     ELSE
     
    524524           write(lunout,*)' ***  fxyhypb lu sur le fichier start est ', &
    525525                'T alors  qu il est  F  sur  run.def  ****  '
    526            STOP
     526           CALL abort_gcm("conf_gcm","stopped",1)
    527527        ENDIF
    528528     ENDIF
     
    540540           write(lunout,*)'conf_gcm: La valeur de dzoomx passee par ', &
    541541                'run.def est differente de celle lue sur le fichier  start '
    542            STOP
     542           CALL abort_gcm("conf_gcm","stopped",1)
    543543        ENDIF
    544544     ENDIF
     
    556556           write(lunout,*)'conf_gcm: La valeur de dzoomy passee par ', &
    557557                'run.def est differente de celle lue sur le fichier  start '
    558            STOP
     558           CALL abort_gcm("conf_gcm","stopped",1)
    559559        ENDIF
    560560     ENDIF
     
    571571           write(lunout,*)'conf_gcm: La valeur de taux passee par ', &
    572572                'run.def est differente de celle lue sur le fichier  start '
    573            STOP
     573           CALL abort_gcm("conf_gcm","stopped",1)
    574574        ENDIF
    575575     ENDIF
     
    586586           write(lunout,*)'conf_gcm: La valeur de tauy passee par ', &
    587587                'run.def est differente de celle lue sur le fichier  start '
    588            STOP
     588        CALL abort_gcm("conf_gcm","stopped",1)
    589589        ENDIF
    590590     ENDIF
     
    607607              write(lunout,*)' *** ysinus lu sur le fichier start est F', &
    608608                   ' alors  qu il est  T  sur  run.def  ***'
    609               STOP
     609              CALL abort_gcm("conf_gcm","stopped",1)
    610610           ENDIF
    611611        ELSE
     
    614614              write(lunout,*)' *** ysinus lu sur le fichier start est T', &
    615615                   ' alors  qu il est  F  sur  run.def  ****  '
    616               STOP
     616              CALL abort_gcm("conf_gcm","stopped",1)
    617617           ENDIF
    618618        ENDIF
     
    644644     type_trac = 'lmdz'
    645645     CALL getin('type_trac',type_trac)
    646 
    647      !Config  Key  = config_inca
    648      !Config  Desc = Choix de configuration de INCA
    649      !Config  Def  = none
    650      !Config  Help = Choix de configuration de INCA :
    651      !Config         'none' = sans INCA
    652      !Config         'chem' = INCA avec calcul de chemie
    653      !Config         'aero' = INCA avec calcul des aerosols
    654      config_inca = 'none'
    655      CALL getin('config_inca',config_inca)
    656646
    657647     !Config  Key  = ok_dynzon
     
    725715     write(lunout,*)' offline = ', offline
    726716     write(lunout,*)' type_trac = ', type_trac
    727      write(lunout,*)' config_inca = ', config_inca
    728717     write(lunout,*)' ok_dynzon = ', ok_dynzon
    729718     write(lunout,*)' ok_dyn_ins = ', ok_dyn_ins
     
    765754     IF( grossismx.LT.1. )  THEN
    766755        write(lunout,*) 'conf_gcm: ***ATTENTION !! grossismx < 1 . *** '
    767         STOP
     756        CALL abort_gcm("conf_gcm","stopped",1)
    768757     ELSE
    769758        alphax = 1. - 1./ grossismx
     
    772761     IF( grossismy.LT.1. )  THEN
    773762        write(lunout,*) 'conf_gcm: ***ATTENTION !! grossismy < 1 . *** '
    774         STOP
     763        CALL abort_gcm("conf_gcm","stopped",1)
    775764     ELSE
    776765        alphay = 1. - 1./ grossismy
     
    855844     type_trac = 'lmdz'
    856845     CALL getin('type_trac',type_trac)
    857 
    858      !Config  Key  = config_inca
    859      !Config  Desc = Choix de configuration de INCA
    860      !Config  Def  = none
    861      !Config  Help = Choix de configuration de INCA :
    862      !Config         'none' = sans INCA
    863      !Config         'chem' = INCA avec calcul de chemie
    864      !Config         'aero' = INCA avec calcul des aerosols
    865      config_inca = 'none'
    866      CALL getin('config_inca',config_inca)
    867846
    868847     !Config  Key  = ok_dynzon
     
    1006985     write(lunout,*)' offline = ', offline
    1007986     write(lunout,*)' type_trac = ', type_trac
    1008      write(lunout,*)' config_inca = ', config_inca
    1009987     write(lunout,*)' ok_dynzon = ', ok_dynzon
    1010988     write(lunout,*)' ok_dyn_ins = ', ok_dyn_ins
  • LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/dynetat0_loc.F90

    r4143 r4482  
    77!-------------------------------------------------------------------------------
    88  USE parallel_lmdz
    9   USE infotrac,    ONLY: nqtot, tracers, niso, iqIsoPha, tnat, alpha_ideal, iH2O
    10   USE strings_mod, ONLY: maxlen, msg, strStack, real2str
     9  USE infotrac,    ONLY: nqtot, tracers, niso, iqIsoPha, iH2O, isoName
     10  USE strings_mod, ONLY: maxlen, msg, strStack, real2str, int2str, strIdx
    1111  USE netcdf,      ONLY: NF90_OPEN,  NF90_NOWRITE, NF90_INQUIRE_DIMENSION, NF90_INQ_VARID, &
    1212                         NF90_CLOSE, NF90_GET_VAR, NF90_INQUIRE_VARIABLE,  NF90_NoErr
    13   USE readTracFiles_mod, ONLY: new2oldName
     13  USE readTracFiles_mod, ONLY: new2oldH2O, newHNO3, oldHNO3, getKey
    1414  USE control_mod, ONLY: planet_type
    1515  USE assert_eq_m, ONLY: assert_eq
     
    4141  CHARACTER(LEN=maxlen) :: mesg, var, modname, oldVar
    4242  INTEGER, PARAMETER :: length=100
    43   INTEGER :: iq, fID, vID, idecal, ierr, iqParent, iName, iZone, iPhase
    44   REAL    :: time, tab_cntrl(length)               !--- RUN PARAMS TABLE
     43  INTEGER :: iq, fID, vID, idecal, ierr, iqParent, iName, iZone, iPhase, ix
     44  REAL    :: time, tnat, alpha_ideal, tab_cntrl(length)    !--- RUN PARAMS TABLE
    4545  REAL,             ALLOCATABLE :: vcov_glo(:,:),masse_glo(:,:),   ps_glo(:)
    4646  REAL,             ALLOCATABLE :: ucov_glo(:,:),    q_glo(:,:), phis_glo(:)
    4747  REAL,             ALLOCATABLE :: teta_glo(:,:)
     48  LOGICAL :: lSkip, ll
    4849!-------------------------------------------------------------------------------
    4950  modname="dynetat0_loc"
     
    151152!--- Tracers
    152153  ALLOCATE(q_glo(ip1jmp1,llm))
     154  ll = .FALSE.
     155#ifdef REPROBUS
     156  ll = NF90_INQ_VARID(fID, 'HNO3tot', vID) /= NF90_NoErr                                 !--- DETECT OLD REPRO start.nc FILE
     157#endif
    153158  DO iq=1,nqtot
    154159    var = tracers(iq)%name
    155     oldVar = new2oldName(var)
    156     !--------------------------------------------------------------------------------------------------------------------------
    157     IF(NF90_INQ_VARID(fID, var, vID) == NF90_NoErr) THEN                                 !=== REGULAR CASE
     160    oldVar = new2oldH2O(var)
     161    lSkip = ll .AND. var == 'HNO3'                                                       !--- FORCE "HNO3_g" READING FOR "HNO3"
     162#ifdef REPROBUS
     163    ix = strIdx(newHNO3, var); IF(ix /= 0) oldVar = oldHNO3(ix)                          !--- REPROBUS HNO3 exceptions
     164#endif
     165#ifdef INCA
     166    IF(var == 'O3') oldVar = 'OX'                                                        !--- DEAL WITH INCA OZONE EXCEPTION
     167#endif
     168    !--------------------------------------------------------------------------------------------------------------------------
     169    IF(NF90_INQ_VARID(fID, var, vID) == NF90_NoErr .AND. .NOT.lSkip) THEN                !=== REGULAR CASE: AVAILABLE VARIABLE
    158170      CALL get_var2(var,q_glo); q(ijb_u:ije_u,:,iq)=q_glo(ijb_u:ije_u,:)
    159171    !--------------------------------------------------------------------------------------------------------------------------
    160     ELSE IF(NF90_INQ_VARID(fID, oldVar, vID) == NF90_NoErr) THEN                         !=== OLD NAME
     172    ELSE IF(NF90_INQ_VARID(fID, oldVar, vID) == NF90_NoErr) THEN                         !=== TRY WITH ALTERNATE NAME
    161173      CALL msg('Tracer <'//TRIM(var)//'> is missing => initialized to <'//TRIM(oldVar)//'>', modname)
    162174      CALL get_var2(oldVar, q_glo); q(ijb_u:ije_u,:,iq)=q_glo(ijb_u:ije_u,:)
    163175    !--------------------------------------------------------------------------------------------------------------------------
    164 #ifdef INCA
    165     ELSE IF(NF90_INQ_VARID(fID, 'OX',   vID) == NF90_NoErr .AND. var == 'O3') THEN       !=== INCA: OX INSTEAD OF O3
    166       CALL msg('Tracer <O3> is missing => initialized to <OX>', modname)
    167       CALL get_var2( 'OX' , q_glo); q(ijb_u:ije_u,:,iq)=q_glo(ijb_u:ije_u,:)
    168     !--------------------------------------------------------------------------------------------------------------------------
    169 #endif
    170176    ELSE IF(tracers(iq)%iso_iGroup == iH2O .AND. niso > 0) THEN                          !=== WATER ISOTOPES
    171177      iName    = tracers(iq)%iso_iName
     
    173179      iqParent = tracers(iq)%iqParent
    174180      IF(tracers(iq)%iso_iZone == 0) THEN
     181         IF(getKey('tnat', tnat, isoName(iName)) .OR. getKey('alpha', alpha_ideal, isoName(iName))) &
     182            CALL abort_gcm(TRIM(modname), 'missing isotopic parameters', 1)
    175183         CALL msg('Tracer <'//TRIM(var)//'> is missing => initialized with a simplified Rayleigh distillation law.', modname)
    176          q(ijb_u:ije_u,:,iq)= q(ijb_u:ije_u,:,iqParent)*tnat(iName)*(q(ijb_u:ije_u,:,iqParent)/30.e-3)**(alpha_ideal(iName)-1.)
     184         q(ijb_u:ije_u,:,iq) = q(ijb_u:ije_u,:,iqParent)*tnat*(q(ijb_u:ije_u,:,iqParent)/30.e-3)**(alpha_ideal-1.)
    177185      ELSE
    178186         CALL msg('Tracer <'//TRIM(var)//'> is missing => initialized to its parent isotope concentration.', modname)
     
    199207  CHARACTER(LEN=*), INTENT(IN) :: str1, str2
    200208  CHARACTER(LEN=maxlen) :: s1, s2
    201   IF(n1/=n2) THEN
    202     s1='value of '//TRIM(str1)//' ='
    203     s2=' read in starting file differs from parametrized '//TRIM(str2)//' ='
    204     WRITE(mesg,'(10x,a,i4,2x,a,i4)')TRIM(ADJUSTL(s1)),n1,TRIM(ADJUSTL(s2)),n2
    205     CALL ABORT_gcm(TRIM(modname),TRIM(mesg),1)
    206   END IF
     209  IF(n1/=n2) CALL abort_gcm(TRIM(modname), 'value of "'//TRIM(str1)//'" = '//TRIM(int2str(n1))// &
     210   ' read in starting file differs from gcm value of "'//TRIM(str2)//'" = '//TRIM(int2str(n2)), 1)
    207211END SUBROUTINE check_dim
    208212
  • LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/dynredem_loc.F90

    r4172 r4482  
    176176  USE mod_hallo
    177177  USE strings_mod, ONLY: maxlen
    178   USE infotrac, ONLY: nqtot, tracers, types_trac
     178  USE infotrac, ONLY: nqtot, tracers, type_trac
    179179  USE control_mod
    180180  USE netcdf,   ONLY: NF90_OPEN,  NF90_NOWRITE, NF90_GET_VAR, NF90_INQ_VARID,  &
     
    243243!$OMP MASTER
    244244  fil="start_trac.nc"
    245   IF(ANY(types_trac=='inca') .OR. ANY(types_trac=='inco')) INQUIRE(FILE=fil,EXIST=lread_inca)
     245  IF(ANY(type_trac == ['inca','inco'])) INQUIRE(FILE=fil,EXIST=lread_inca)
    246246  IF(lread_inca) CALL err(NF90_OPEN(fil,NF90_NOWRITE,nid_trac),"open")
    247247!$OMP END MASTER
  • LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/filtreg_p.F

    r1907 r4482  
    9999c-------------------------------------------------------c
    100100
    101       IF(ifiltre.EQ.1.or.ifiltre.EQ.-1)
    102      &     STOP'Pas de transformee simple dans cette version'
     101      IF(ifiltre.EQ.1.or.ifiltre.EQ.-1)
     102     & CALL abort_gcm("fitreg_p","Pas de transformee simple
     103     &dans cette version",1)
    103104     
    104105      IF( iter.EQ. 2 )  THEN
    105106         PRINT *,' Pas d iteration du filtre dans cette version !'
    106107     &        , ' Utiliser old_filtreg et repasser !'
    107          STOP
     108         CALL abort_gcm("fitreg_p","stopped",1)
    108109      ENDIF
    109110
     
    111112         PRINT *,' Cette routine ne calcule le filtre inverse que '
    112113     &        , ' sur la grille des scalaires !'
    113          STOP
     114         CALL abort_gcm("fitreg_p","stopped",1)
    114115      ENDIF
    115116
     
    117118         PRINT *,' Probleme dans filtreg car ifiltre NE 2 et NE -2'
    118119     &        , ' corriger et repasser !'
    119          STOP
    120       ENDIF
     120         CALL abort_gcm("fitreg_p","stopped",1)
     121       ENDIF
    121122c
    122123
     
    127128      IF( griscal )   THEN
    128129         IF( nlat. NE. jjp1 )  THEN
    129             PRINT  1111
    130             STOP
     130            CALL abort_gcm("fitreg_p","nlat. NE. jjp1",1)
    131131         ELSE
    132132c     
     
    146146      ELSE
    147147         IF( nlat.NE.jjm )  THEN
    148             PRINT  2222
    149             STOP
     148            CALL abort_gcm("fitreg_p","nlat. NE. jjm",1)
    150149         ELSE
    151150c
  • LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/gcm.F90

    r4146 r4482  
    1111  USE mod_const_mpi, ONLY: init_const_mpi
    1212  USE parallel_lmdz
    13   USE infotrac, ONLY: nqtot, infotrac_init
     13  USE infotrac, ONLY: nqtot, init_infotrac
    1414!#ifdef CPP_PHYS
    1515!  USE mod_interface_dyn_phys, ONLY: init_interface_dyn_phys
     
    182182#ifdef CPP_IOIPSL
    183183  if (calend == 'earth_360d') then
    184      call ioconf_calendar('360d')
     184     call ioconf_calendar('360_day')
    185185     write(lunout,*)'CALENDRIER CHOISI: Terrestre a 360 jours/an'
    186186     xios_cal_type='d360'
     
    205205  !  Choix du nombre de traceurs et du schema pour l'advection
    206206  !  dans fichier traceur.def, par default ou via INCA
    207   call infotrac_init
     207  call init_infotrac
    208208
    209209  ! Allocation de la tableau q : champs advectes   
  • LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/guide_loc_mod.F90

    r4054 r4482  
    4040  REAL, PRIVATE, SAVE     :: lon_min_g,lon_max_g
    4141  REAL, PRIVATE, SAVE     :: tau_lon,tau_lat
     42
     43  REAL, PRIVATE, SAVE     :: plim_guide_BL
    4244
    4345  REAL, ALLOCATABLE, DIMENSION(:), PRIVATE, SAVE     :: alpha_u,alpha_v
     
    118120    CALL getpar('gamma4',.false.,gamma4,'Zone sans rappel elargie')
    119121    CALL getpar('guide_BL',.true.,guide_BL,'guidage dans C.Lim')
    120    
     122    CALL getpar('plim_guide_BL',85000.,plim_guide_BL,'BL top presnivs value')
     123
    121124! Sauvegarde du for�age
    122125    CALL getpar('guide_sav',.false.,guide_sav,'sauvegarde guidage')
     
    453456        else
    454457            do l=1,llm
    455                 alpha_pcor(l)=(1.+tanh((0.85-presnivs(l)/preff)/0.05))/2.
     458                alpha_pcor(l)=(1.+tanh(((plim_guide_BL-presnivs(l))/preff)/0.05))/2.
    456459            enddo
    457460        endif
     
    499502            write(*,*)trim(modname)//' second pass in advreel at itau=',&
    500503            itau
    501             stop
     504            CALL abort_gcm("guide_loc_lod","stopped",1)
    502505          ELSE
    503506!$OMP MASTER
     
    15261529              if (gamma.lt.1.e-5) then
    15271530                write(*,*)trim(modname)//' gamma =',gamma,'<1e-5'
    1528                 stop
     1531                CALL abort_gcm("guide_loc_mod","stopped",1)
    15291532              endif
    15301533              gamma=log(0.5)/log(gamma)
  • LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/iniacademic_loc.F90

    r4143 r4482  
    55
    66  USE filtreg_mod, ONLY: inifilr
    7   USE infotrac,    ONLY: nqtot, niso, tnat, alpha_ideal, iqIsoPha, tracers
     7  USE infotrac,    ONLY: nqtot, niso, iqIsoPha, tracers, getKey, isoName
    88  USE control_mod, ONLY: day_step,planet_type
    99  use exner_hyb_m, only: exner_hyb
     
    1919  USE comconst_mod, ONLY: cpp, kappa, g, daysec, dtvr, pi, im, jm
    2020  USE logic_mod, ONLY: iflag_phys, read_start
    21   USE comvert_mod, ONLY: ap, bp, preff, presnivs, pressure_exner
     21  USE comvert_mod, ONLY: ap, bp, preff, pa, presnivs, pressure_exner
    2222  USE temps_mod, ONLY: annee_ref, day_ini, day_ref
    2323  USE ener_mod, ONLY: etot0,ptot0,ztot0,stot0,ang0
    2424  USE readTracFiles_mod, ONLY: addPhase
     25  use netcdf, only : NF90_NOWRITE,NF90_OPEN,NF90_NOERR,NF90_INQ_VARID
     26  use netcdf, only : NF90_CLOSE, NF90_GET_VAR
     27
    2528
    2629  !   Author:    Frederic Hourdin      original: 15/01/93
     
    6871  INTEGER i,j,l,lsup,ij, iq, iName, iPhase, iqParent
    6972
     73  integer :: nid_relief,varid,ierr
     74  real, dimension(iip1,jjp1) :: relief
     75
     76
    7077  REAL teta0,ttp,delt_y,delt_z,eps ! Constantes pour profil de T
    7178  REAL k_f,k_c_a,k_c_s         ! Constantes de rappel
     
    7784  integer idum
    7885
    79   REAL zdtvr
     86  REAL zdtvr, tnat, alpha_ideal
    8087 
    8188  character(len=*),parameter :: modname="iniacademic"
     
    126133    ! allocate global fields:
    127134!    allocate(vcov_glo(ip1jm,llm))
     135
    128136    allocate(ucov_glo(ip1jmp1,llm))
    129137    allocate(teta_glo(ip1jmp1,llm))
     
    133141
    134142     ! surface pressure
    135      if (iflag_phys>2) then
    136         ! specific value for CMIP5 aqua/terra planets
    137         ! "Specify the initial dry mass to be equivalent to
    138         !  a global mean surface pressure (101325 minus 245) Pa."
    139         ps_glo(:)=101080. 
    140      else
    141         ! use reference surface pressure
    142         ps_glo(:)=preff
     143     ps_glo(:)=preff
     144
     145     !------------------------------------------------------------------
     146     ! Lecture eventuelle d'un fichier de relief interpollee sur la grille
     147     ! du modele.
     148     ! On suppose que le fichier relief_in.nc est stoké sur une grille
     149     ! iim*jjp1
     150     ! Facile a créer à partir de la commande
     151     ! cdo remapcon,fichier_output_phys.nc Relief.nc relief_in.nc
     152     !------------------------------------------------------------------
     153
     154     relief=0.
     155     ierr = NF90_OPEN ('relief_in.nc', NF90_NOWRITE,nid_relief)
     156     if (ierr.EQ.NF90_NOERR) THEN
     157         ierr=NF90_INQ_VARID(nid_relief,'RELIEF',varid)
     158         if (ierr==NF90_NOERR) THEN
     159              ierr=NF90_GET_VAR(nid_relief,varid,relief(1:iim,1:jjp1))
     160              relief(iip1,:)=relief(1,:)
     161         else
     162              CALL abort_gcm ('iniacademic','variable RELIEF pas la',1)
     163         endif
    143164     endif
    144 
    145      ! ground geopotential
    146      phis_glo(:)=0.
     165     ierr = NF90_CLOSE (nid_relief)
     166
     167
     168     !------------------------------------------------------------------
     169     ! Initialisation du geopotentiel au sol et de la pression
     170     !------------------------------------------------------------------
     171
     172     print*,'relief=',minval(relief),maxval(relief),'g=',g
     173     do j=1,jjp1
     174        do i=1,iip1
     175           phis_glo((j-1)*iip1+i)=g*relief(i,j)
     176        enddo
     177     enddo
     178     print*,'phis=',minval(phis),maxval(phis),'g=',g
     179
    147180     CALL pression ( ip1jmp1, ap, bp, ps_glo, p       )
    148181     if (pressure_exner) then
     
    290323              iqParent = tracers(iq)%iqParent
    291324              IF(tracers(iq)%iso_iZone == 0) THEN
    292                  q(ijb_u:ije_u,:,iq) = q(ijb_u:ije_u,:,iqParent)*tnat(iName) &
    293                                      *(q(ijb_u:ije_u,:,iqParent)/30.e-3)**(alpha_ideal(iName)-1.)
     325                 IF(getKey('tnat', tnat, isoName(iName)) .OR. getKey('alpha', alpha_ideal, isoName(iName))) &
     326                    CALL abort_gcm(TRIM(modname), 'missing isotopic parameters', 1)
     327                 q(ijb_u:ije_u,:,iq) = q(ijb_u:ije_u,:,iqParent)*tnat*(q(ijb_u:ije_u,:,iqParent)/30.e-3)**(alpha_ideal-1.)
    294328              ELSE
    295329                 q(ijb_u:ije_u,:,iq) = q(ijb_u:ije_u,:,iqIsoPha(iName,iPhase))
  • LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/leapfrog_loc.F

    r4203 r4482  
    15191519
    15201520#ifdef INCA
    1521          if (ANY(types_trac == 'inca') .OR.
    1522      &       ANY(types_trac == 'inco')) CALL finalize_inca
     1521         if (ANY(type_trac == ['inca','inco'])) CALL finalize_inca
    15231522#endif
    15241523#ifdef REPROBUS
    1525          if (ANY(types_trac == 'repr')) CALL finalize_reprobus
     1524         if (type_trac == 'repr') CALL finalize_reprobus
    15261525#endif
    15271526
     
    15691568
    15701569#ifdef INCA
    1571               if (ANY(types_trac == 'inca') .OR.
    1572      &            ANY(types_trac == 'inco')) CALL finalize_inca
     1570              if (ANY(type_trac == ['inca','inco'])) CALL finalize_inca
    15731571#endif
    15741572#ifdef REPROBUS
    1575               if (ANY(types_trac == 'repr')) CALL finalize_reprobus
     1573              if (type_trac == 'repr') CALL finalize_reprobus
    15761574#endif
    15771575
     
    17371735
    17381736#ifdef INCA
    1739                  if (ANY(types_trac == 'inca') .OR.
    1740      &               ANY(types_trac == 'inco')) CALL finalize_inca
     1737              if (ANY(type_trac == ['inca','inco'])) CALL finalize_inca
    17411738#endif
    17421739#ifdef REPROBUS
    1743                  if (ANY(types_trac == 'repr')) CALL finalize_reprobus
     1740                 if (type_trac == 'repr') CALL finalize_reprobus
    17441741#endif
    17451742
     
    18451842
    18461843#ifdef INCA
    1847       if (ANY(types_trac == 'inca') .OR.
    1848      &    ANY(types_trac == 'inco')) CALL finalize_inca
     1844      if (ANY(type_trac == ['inca','inco'])) CALL finalize_inca
    18491845#endif
    18501846#ifdef REPROBUS
    1851       if (ANY(types_trac == 'repr')) CALL finalize_reprobus
     1847      if (type_trac == 'repr') CALL finalize_reprobus
    18521848#endif
    18531849
  • LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/mod_filtreg_p.F

    r2125 r4482  
    8585
    8686      INTEGER :: sdd1_type, sdd2_type
     87      CHARACTER (LEN=132) :: abort_message
    8788
    8889      IF (first) THEN
     
    103104
    104105      IF(ifiltre.EQ.1.or.ifiltre.EQ.-1)
    105      &     STOP'Pas de transformee simple dans cette version'
     106     &  CALL abort_gcm("mod_filtreg_p",'Pas de transformee
     107     &simple dans cette version',1)
    106108     
    107109      IF( iter.EQ. 2 )  THEN
    108110         PRINT *,' Pas d iteration du filtre dans cette version !'
    109111     &        , ' Utiliser old_filtreg et repasser !'
    110          STOP
     112         CALL abort_gcm("mod_filtreg_p","stopped",1)
    111113      ENDIF
    112114
     
    114116         PRINT *,' Cette routine ne calcule le filtre inverse que '
    115117     &        , ' sur la grille des scalaires !'
    116          STOP
     118         CALL abort_gcm("mod_filtreg_p","stopped",1)
    117119      ENDIF
    118120
     
    120122         PRINT *,' Probleme dans filtreg car ifiltre NE 2 et NE -2'
    121123     &        , ' corriger et repasser !'
    122          STOP
     124         CALL abort_gcm("mod_filtreg_p","stopped",1)
    123125      ENDIF
    124126c
     
    130132      IF( griscal )   THEN
    131133         IF( nlat. NE. jjp1 )  THEN
    132             PRINT  1111
    133             STOP
     134            CALL abort_gcm("mod_filtreg_p"," nlat. NE. jjp1",1)
    134135         ELSE
    135136c     
     
    149150      ELSE
    150151         IF( nlat.NE.jjm )  THEN
    151             PRINT  2222
    152             STOP
     152            CALL abort_gcm("mod_filtreg_p"," nlat. NE. jjm",1)
    153153         ELSE
    154154c
  • LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/mod_hallo.F90

    r2620 r4482  
    154154    if (Buffer_pos(Index_pos)+Size>MaxBufferSize) then
    155155      print *,'STOP :: La taille de MaxBufferSize dans mod_hallo.F90 est trop petite !!!!'
    156       stop
     156      CALL abort_gcm("mod_hallo","stopped",1)
    157157    endif
    158158   
    159159    if (Index_pos>=ListSize) then
    160160      print *,'STOP :: La taille de ListSize dans mod_hallo.F90 est trop petite !!!!'
    161       stop
     161      CALL abort_gcm("mod_hallo","stopped",1)
    162162    endif
    163163     
     
    14161416         IF (.NOT.using_mpi) THEN
    14171417           PRINT *,'Erreur, echange MPI en mode sequentiel !!!'
    1418            STOP
     1418           CALL abort_gcm("mod_hallo","stopped",1)
    14191419         ENDIF
    14201420!         PRINT *,"-------------------------------------------------------------------"
     
    14591459             IF (.NOT.using_mpi) THEN
    14601460               PRINT *,'Erreur, echange MPI en mode sequentiel !!!'
    1461                STOP
     1461               CALL abort_gcm("mod_hallo","stopped",1)
    14621462             ENDIF
    14631463
  • LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/mod_xios_dyn3dmem.F90

    r4146 r4482  
    2929     MODULE PROCEDURE writefield_dyn1d_v, writefield_dyn2d_v
    3030  END INTERFACE writefield_dyn_v
     31
     32     REAL, ALLOCATABLE, SAVE :: NewField_U(:,:,:), NewField_V(:,:,:)
    3133 
    3234
     
    6365! 0 Initialisations
    6466     pi = 4. * ATAN (1.)
     67! allocation of fields passed to xios
     68!$OMP BARRIER
     69!$OMP MASTER
     70     allocate(NewField_U(iip1, jj_begin:jj_end, llm))
     71     allocate(NewField_V(iip1, jj_begin:jj_end, llm))     
     72!$OMP END MASTER
     73!$OMP BARRIER
    6574
    6675! 1 Context initialisation
     
    151160     CHARACTER(LEN=*)   :: name
    152161     REAL, DIMENSION(ij_begin:ij_end,llm) :: Field
    153      REAL, DIMENSION(iip1, jj_begin:jj_end,llm) :: NewField
     162!     REAL, ALLOCATABLE, SAVE :: NewField(:,:,:)
    154163     INTEGER :: i,j,l, count
    155164
    156 !$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
     165!!!!!$OMP BARRIER
     166!!!!!$OMP MASTER
     167!!!!     allocate(NewField(iip1, jj_begin:jj_end, llm))
     168!!!!!$OMP END MASTER
     169!!!!!$OMP BARRIER
     170
     171
     172!$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
    157173     DO l = 1, llm
    158        NewField(:,jj_begin:jj_end,l)=reshape(Field(ij_begin:ij_end,l),(/iip1,jj_nb/))
     174       NewField_U(:,jj_begin:jj_end,l)=reshape(Field(ij_begin:ij_end,l),(/iip1,jj_nb/))
    159175     ENDDO
    160176!$OMP ENDDO
     
    162178
    163179!$OMP MASTER
    164 !!     write(14,*)'iip1,ij_begin,ij_end,llm,jj_begin,jj_end,jj_nb ',iip1,ij_begin,ij_end,llm,jj_begin,jj_end,jj_nb
    165 
    166      CALL xios_send_field(name, NewField)
    167 !$OMP END MASTER   
     180     CALL xios_send_field(name, NewField_U)
     181!!!!     DEALLOCATE(NewField)
     182!$OMP END MASTER   
     183!$OMP BARRIER
    168184 
    169185   END SUBROUTINE  writefield_dyn2d_u
     
    207223     CHARACTER(LEN=*)   :: name
    208224     REAL, DIMENSION(ij_begin:ij_end,llm) :: Field
    209      REAL, DIMENSION(iip1,  jj_begin:jj_end,llm) :: NewField
     225!!!!     REAL, ALLOCATABLE, SAVE :: NewField(:,:,:)
    210226     INTEGER :: l, jje, ije, jjn
     227
     228!!!!!$OMP BARRIER
     229!!!!!$OMP MASTER
     230!!!!     allocate(NewField(iip1,  jj_begin:jj_end,llm))
     231!!!!!$OMP END MASTER
     232!!!!!$OMP BARRIER
    211233
    212234     IF (pole_sud) THEN
     
    223245!$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
    224246     DO l = 1, llm
    225         NewField(:,jj_begin:jje,l)=reshape(Field(ij_begin:ije,l),(/iip1,jjn/))
     247        NewField_V(:,jj_begin:jje,l)=reshape(Field(ij_begin:ije,l),(/iip1,jjn/))
    226248     ENDDO
    227249!$OMP ENDDO
    228 
    229250!$OMP BARRIER       
    230 !$OMP MASTER
    231      CALL xios_send_field(name, NewField(:,jj_begin:jje,:))
    232 !$OMP END MASTER   
     251
     252!$OMP MASTER
     253     CALL xios_send_field(name, NewField_V(:,jj_begin:jje,:))
     254!!!!     DEALLOCATE(NewField)
     255!$OMP END MASTER   
     256!$OMP BARRIER
    233257 
    234258   END SUBROUTINE  writefield_dyn2d_v
  • LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/parallel_lmdz.F90

    r3995 r4482  
    676676        else
    677677           write(lunout,*)ij 
    678         stop 'erreur dans Gather_Field'
     678        CALL abort_gcm("parallel_lmdz","erreur dans Gather_Field",1)
    679679        endif
    680680       
     
    690690              Recv_count(i)=(min(jj_end_para(i),jjm)-jj_begin_para(i)+1)*ll*iip1
    691691            else
    692               stop 'erreur dans Gather_Field'
     692              CALL abort_gcm("parallel_lmdz","erreur dans Gather_Field",1)
    693693            endif
    694694                   
  • LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/qminimum_loc.F

    r4143 r4482  
    5555c
    5656
     57c$OMP BARRIER
     58
    5759      !write(lunout,*) 'qminimum 52: entree'
    5860      IF(first) THEN
     
    6668      ije=ij_end
    6769
    68       zx_defau_diag(ijb:ije,:,:)=0.0
    69       q_follow(ijb:ije,:,1:2)=q(ijb:ije,:,1:2) 
     70      DO k = 1, llm
     71c$OMP DO SCHEDULE(STATIC)
     72        DO i = ijb, ije
     73          zx_defau_diag(i,k,1)=0.0
     74          zx_defau_diag(i,k,2)=0.0
     75          q_follow(i,k,1)=q(i,k,1)
     76          q_follow(i,k,2)=q(i,k,2)
     77        ENDDO
     78c$OMP END DO NOWAIT
     79      ENDDO
    7080
    7181      !write(lunout,*) 'qminimum 57'
    72 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)       
    7382      DO 1000 k = 1, llm
     83c$OMP DO SCHEDULE(STATIC)       
    7484      DO 1040 i = ijb, ije
    7585            if (seuil_liq - q(i,k,iq_liq) .gt. 0.d0 ) then
     
    8292            endif
    8393 1040 CONTINUE
     94c$OMP END DO NOWAIT
    8495 1000 CONTINUE
    85 c$OMP END DO NOWAIT
    86 c$OMP BARRIER
    87 c --->  SYNCHRO OPENMP ICI
    88 
    8996
    9097c
     
    113120c$OMP END DO NOWAIT
    114121      ENDDO
    115 c$OMP BARRIER
    116122
    117123c
     
    130136         ENDIF
    131137      ENDDO
    132 c$OMP END DO
     138c$OMP END DO NOWAIT
    133139!      pompe = SSUM(ije-ijb+1,zx_pump(ijb),1)
    134140
     
    162168        endif !if (zx_pump(i).gt.0.0) then
    163169      enddo !DO i = ijb, ije 
    164 c$OMP END DO
     170c$OMP END DO NOWAIT
    165171
    166172      ! 2) transfert de vap vers les couches plus hautes
     
    206212                   write(*,*) 'q(i,k-1,iqIsoPha(ixt,iq_vap))=',
    207213     :                   q(i,k-1,iqIsoPha(ixt,iq_vap))
    208                    stop
     214                CALL abort_gcm("qminimum_loc","stopped",1)
    209215                endif
    210216              endif
     
    231237                   write(*,*) 'q(i,k-1,iqIsoPha(ixt,iq_vap))=',
    232238     :                   q(i,k-1,iqIsoPha(ixt,iq_vap))
    233                    stop
     239                   CALL abort_gcm("qminimum_loc","stopped",1)
    234240                endif
    235241              endif
     
    243249          endif !if (zx_defau_diag(i,k,iq_vap).gt.0.0) then
    244250        enddo !DO i = 1, ip1jmp1       
    245 c$OMP END DO
     251c$OMP END DO NOWAIT
    246252        enddo !do k=2,llm
    247253
     
    272278          endif !if (zx_defau_diag(i,k,iq_vap).gt.0.0) then
    273279        enddo !DO i = ijb, ije
    274 c$OMP END DO        
     280c$OMP END DO NOWAIT       
    275281       enddo !do k=2,llm 
    276282
     
    279285      endif !if (niso > 0) then
    280286      !write(*,*) 'qminimum 188'
     287c$OMP BARRIER
     288
    281289c
    282290      RETURN
  • LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/times.F90

    r1907 r4482  
    5555   
    5656      if (timer_state(no_timer)/=stopped) then
    57         stop 'start_timer :: timer is already running or suspended'
     57        CALL abort_gcm("times","start_timer :: timer is already running or suspended",1)
    5858      else
    5959        timer_state(no_timer)=running
     
    7373    if (AllTimer_IsActive) then   
    7474      if (timer_state(no_timer)/=running) then
    75         stop 'suspend_timer :: timer is not running'
     75         CALL abort_gcm("times","suspend_timer :: timer is not running",1)
    7676      else
    7777        timer_state(no_timer)=suspended
     
    9090    if (AllTimer_IsActive) then   
    9191      if (timer_state(no_timer)/=suspended) then
    92         stop 'resume_timer :: timer is not suspended'
     92        CALL abort_gcm("times","resume_timer :: timer is not suspended",1)
    9393      else
    9494        timer_state(no_timer)=running
     
    110110       
    111111      if (timer_state(no_timer)/=running) then
    112         stop 'stop_timer :: timer is not running'
     112        CALL abort_gcm("times","stop_timer :: timer is not running",1)
    113113      else
    114114        timer_state(no_timer)=stopped
  • LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/vlsplt_loc.F

    r4143 r4482  
    210210c$OMP END DO NOWAIT
    211211#endif
    212 c       stop
    213212
    214213c       go to 9999
     
    351350c$OMP END DO NOWAIT
    352351      enddo !do ifils=1,tracers(iq)%nqDescen
    353       do ifils=1,tracers(iq)%nqChilds
     352      do ifils=1,tracers(iq)%nqChildren
    354353        iq2=tracers(iq)%iqDescen(ifils)
    355354        call vlx_loc(Ratio,pente_max,masse,u_mq,ijb_x,ije_x,iq2)
     
    726725! CRisi: appel récursif de l'advection sur les fils.
    727726! Il faut faire ça avant d'avoir mis à jour q et masse
    728       !write(*,*) 'vly 689: iq,nqChilds(iq)=',iq,tracers(iq)%nqChilds
     727!     write(*,*)'vly 689: iq,nqChildren(iq)=',iq,tracers(iq)%nqChildren
    729728
    730729      ijb=ij_begin-2*iip1
     
    761760      enddo
    762761
    763       do ifils=1,tracers(iq)%nqChilds
     762      do ifils=1,tracers(iq)%nqChildren
    764763        iq2=tracers(iq)%iqDescen(ifils)
    765764        call vly_loc(Ratio,pente_max,masse,qbyv,iq2)
     
    11481147! CRisi: appel récursif de l'advection sur les fils.
    11491148! Il faut faire ça avant d'avoir mis à jour q et masse
    1150       !write(*,*) 'vlsplt 942: iq,nqChilds(iq)=',iq,tracers(iq)%nqChilds
     1149!     write(*,*)'vlsplt 942: iq,nqChildren(iq)=',iq,tracers(iq)%nqChildren
    11511150      do ifils=1,tracers(iq)%nqDescen
    11521151        iq2=tracers(iq)%iqDescen(ifils)
     
    11691168c$OMP BARRIER
    11701169
    1171       do ifils=1,tracers(iq)%nqChilds
     1170      do ifils=1,tracers(iq)%nqChildren
    11721171        iq2=tracers(iq)%iqDescen(ifils)
    11731172        call vlz_loc(Ratio,pente_max,masse,w,ijb_x,ije_x,iq2)
  • LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/vlspltgen_loc.F

    r4143 r4482  
    1 !
     1
     2!     
    23! $Header$
    34!
     
    259260c$OMP END MASTER
    260261          CASE DEFAULT
    261           stop 'vlspltgen_p : schema non parallelise'
    262      
     262             CALL abort_gcm("vlspltgen_loc","schema non parallelise",1)
    263263        END SELECT
    264264     
     
    302302#endif   
    303303          CASE DEFAULT
    304           stop 'vlspltgen_p : schema non parallelise'
    305      
     304          CALL abort_gcm("vlspltgen_p","schema non parallelise",1)
    306305        END SELECT
    307306     
     
    346345          CASE(14); call vlyqs_loc(zq,pente_max,zm,mv,qsat,iq)
    347346          CASE DEFAULT
    348           stop 'vlspltgen_p : schema non parallelise'
     347          CALL abort_gcm("vlspltgen_p","schema non parallelise",1)
    349348        END SELECT
    350349       
     
    392391c$OMP BARRIER
    393392          CASE DEFAULT
    394           stop 'vlspltgen_p : schema non parallelise'
    395      
    396         END SELECT
     393           
     394            CALL abort_gcm("vlspltgen_p","schema non parallelise",1)
     395         END SELECT
    397396     
    398397      enddo
     
    429428c$OMP BARRIER       
    430429          CASE DEFAULT
    431           stop 'vlspltgen_p : schema non parallelise'
     430          CALL abort_gcm("vlspltgen_p","schema non parallelise",1)
    432431        END SELECT
    433432     
     
    466465          CASE(10); call   vly_loc(zq,pente_max,zm,mv,     iq)
    467466          CASE(14); call vlyqs_loc(zq,pente_max,zm,mv,qsat,iq)
    468           CASE DEFAULT; stop 'vlspltgen_p : schema non parallelise'
     467          CASE DEFAULT
     468             CALL abort_gcm("vlspltgen_p","schema non parallelise",1)
    469469        END SELECT
    470470       
     
    486486          CASE(14); call vlxqs_loc(zq,pente_max,zm,mu,
    487487     &                 qsat, ij_begin,ij_end,iq)
    488           CASE DEFAULT; stop 'vlspltgen_p : schema non parallelise'
     488          CASE DEFAULT
     489          CALL abort_gcm("vlspltgen_p","schema non parallelise",1)
    489490        END SELECT
    490491       
  • LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/vlspltqs_loc.F

    r4143 r4482  
    7474            DO ij=ijb,ije-1
    7575               dxqu(ij)=q(ij+1,l,iq)-q(ij,l,iq)
    76 c              IF(u_m(ij,l).lt.0.) stop'limx n admet pas les U<0'
    77 c              sigu(ij)=u_m(ij,l)/masse(ij,l,iq)
    7876            ENDDO
    7977            DO ij=ijb+iip1-1,ije,iip1
     
    337335! CRisi: appel recursif de l'advection sur les fils.
    338336! Il faut faire ca avant d'avoir mis a jour q et masse
    339       !write(*,*) 'vlspltqs 336: iq,ijb_x,nqChilds(iq)=',
    340 !     &     iq,ijb_x,tracers(iq)%nqChilds
     337      !write(*,*) 'vlspltqs 336: iq,ijb_x,nqChildren(iq)=',
     338!     &     iq,ijb_x,tracers(iq)%nqChildren
    341339
    342340      do ifils=1,tracers(iq)%nqDescen
     
    356354c$OMP END DO NOWAIT
    357355      enddo
    358       do ifils=1,tracers(iq)%nqChilds
     356      do ifils=1,tracers(iq)%nqChildren
    359357        iq2=tracers(iq)%iqDescen(ifils)
    360358        !write(*,*) 'vlxqs 349: on appelle vlx pour iq2=',iq2
     
    729727! CRisi: appel recursif de l'advection sur les fils.
    730728! Il faut faire ca avant d'avoir mis a jour q et masse
    731       !write(*,*) 'vlyqs 689: iq,nqChilds(iq)=',iq,tracers(iq)%nqChilds
     729!     write(*,*)'vlyqs 689: iq,nqChildren(iq)=',iq,
     730!    &             tracers(iq)%nqChildren
    732731     
    733732      ijb=ij_begin-2*iip1
     
    767766c$OMP END DO NOWAIT
    768767      enddo
    769       do ifils=1,tracers(iq)%nqChilds
     768      do ifils=1,tracers(iq)%nqChildren
    770769        iq2=tracers(iq)%iqDescen(ifils)
    771770        !write(lunout,*) 'vly: appel recursiv vly iq2=',iq2
  • LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/wrgrads.F

    r1907 r4482  
    7676           print*,'nvar  ',nvar(if)
    7777           print*,'vars ',(var(iv,if),iv=1,nvar(if))
    78 
    79            stop
     78           CALL abort_gcm("wrgrads","problem",1)
    8079         endif
    8180      endif
Note: See TracChangeset for help on using the changeset viewer.