Changeset 822 for LMDZ4/trunk


Ignore:
Timestamp:
Jul 25, 2007, 3:33:44 PM (17 years ago)
Author:
lsce
Message:

ACo : ajout pour la prise en compte de traceurs non nuls lors de la creation des fichiers start pour lmdz-inca

Location:
LMDZ4/trunk/libf/dyn3d
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/trunk/libf/dyn3d/create_etat0_limit.F

    r773 r822  
    2828#include "paramet.h"
    2929#include "indicesol.h"
     30#include "advtrac.h"
    3031cym#include "dimphy.h"
    3132      REAL :: masque(iip1,jjp1)
    3233      REAL :: pctsrf(iim*(jjm-1)+2, nbsrf)
     34
     35c initialisation traceurs
     36      hadv_flg(:) = 0.
     37      vadv_flg(:) = 0.
     38      conv_flg(:) = 0.
     39      pbl_flg(:)  = 0.
     40      tracnam(:)  = '        '
     41      nprath = 1
     42      nbtrac = 0
     43      mmt_adj(:,:,:,:) = 1
     44
     45#ifdef INCA
     46      call init_const_lmdz(nbtrac,anneeref,dayref,iphysiq,day_step,nday)
     47      print *, 'nbtrac =' , nbtrac
     48#endif
    3349
    3450      CALL Init_Phys_lmdz(iim,jjp1,llm,nqmx-2,1,(jjm-1)*iim+2)
  • LMDZ4/trunk/libf/dyn3d/dynredem.F

    r690 r822  
    530530     
    531531      REAL time
    532       INTEGER nid, nvarid
    533       INTEGER ierr
     532      INTEGER nid, nvarid, nid_trac, nvarid_trac
     533      REAL trac_tmp(ip1jmp1,llm)     
     534      INTEGER ierr, ierr_file
    534535      INTEGER iq
    535536      INTEGER length
     
    622623#endif
    623624
     625#ifdef INCA
     626! Ajout Anne pour lecture valeurs traceurs dans un fichier start_trac.nc
     627      ierr_file = NF_OPEN ("start_trac.nc", NF_NOWRITE,nid_trac)
     628      IF (ierr_file .NE.NF_NOERR) THEN
     629        write(6,*)' Pb d''ouverture du fichier start_trac.nc'
     630        write(6,*)' ierr = ', ierr_file
     631      ENDIF
     632#endif
     633
    624634      IF(nq.GE.1) THEN
    625        do iq=1,nq   
     635       do iq=1,nq
     636#ifdef INCA
     637! lecture de la valeur du traceur dans start_trac.nc
     638         if (ierr_file .ne. 2) then
     639            ierr = NF_INQ_VARID (nid_trac, tname(iq), nvarid_trac)
     640            IF (ierr .NE. NF_NOERR) THEN
     641               PRINT*, tname(iq),"est absent de start_trac.nc"
     642               ierr = NF_INQ_VARID(nid, tname(iq), nvarid)
     643               IF (ierr .NE. NF_NOERR) THEN
     644                  PRINT*, "Variable ", tname(iq)," n est pas definie"
     645                  CALL abort
     646               ENDIF
     647#ifdef NC_DOUBLE
     648               ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,q(1,1,iq))
     649#else
     650               ierr = NF_PUT_VAR_REAL (nid,nvarid,q(1,1,iq))
     651#endif
     652
     653            ELSE
     654               PRINT*, tname(iq), "est present dans start_trac.nc"
     655#ifdef NC_DOUBLE
     656               ierr = NF_GET_VAR_DOUBLE(nid_trac, nvarid_trac, trac_tmp)
     657#else
     658               ierr = NF_GET_VAR_REAL(nid_trac, nvarid_trac, trac_tmp)
     659#endif
     660               IF (ierr .NE. NF_NOERR) THEN
     661                  PRINT*, "Lecture echouee pour", tname(iq)
     662                  CALL abort
     663               ENDIF
     664               ierr = NF_INQ_VARID(nid, tname(iq), nvarid)
     665               IF (ierr .NE. NF_NOERR) THEN
     666                  PRINT*, "Variable ", tname(iq)," n est pas definie"
     667                  CALL abort
     668               ENDIF
     669#ifdef NC_DOUBLE
     670               ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,trac_tmp)
     671#else
     672               ierr = NF_PUT_VAR_REAL (nid,nvarid,trac_tmp)
     673#endif
     674
     675          ENDIF
     676! fin lecture du traceur
     677          ELSE  ! si il n'y a pas de fichier start_trac.nc
     678!             print *, 'il n y a pas de fichier start_trac'
     679             ierr = NF_INQ_VARID(nid, tname(iq), nvarid)
     680             IF (ierr .NE. NF_NOERR) THEN
     681                PRINT*, "Variable  tname(iq) n est pas definie"
     682                CALL abort
     683             ENDIF
     684#ifdef NC_DOUBLE
     685             ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,q(1,1,iq))
     686#else
     687             ierr = NF_PUT_VAR_REAL (nid,nvarid,q(1,1,iq))
     688#endif
     689          ENDIF
     690! endif ifdef INCA
     691#endif
     692         
     693#ifndef INCA
    626694        ierr = NF_INQ_VARID(nid, tname(iq), nvarid)
    627695        IF (ierr .NE. NF_NOERR) THEN
     
    634702          ierr = NF_PUT_VAR_REAL (nid,nvarid,q(1,1,iq))
    635703#endif
     704! endif ifndef INCA
     705#endif
    636706      ENDDO
    637707      ENDIF
Note: See TracChangeset for help on using the changeset viewer.