Changeset 5654 for LMDZ6/trunk


Ignore:
Timestamp:
May 15, 2025, 4:20:14 PM (3 weeks ago)
Author:
acozic
Message:

Add possibility to send N2O from atm chemistry (with Inca model - but definition for oasis is done in LMDZ) to NEMO

Location:
LMDZ6/trunk/libf/phylmd
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/phylmd/cpl_mod.F90

    r5394 r5654  
    363363       CALL histdef(nidct, 'tmp_lat','tmp_lat', &
    364364            "-",nbp_lon,nbp_lat, nhoridct, 1, 1, 1, -99, 32, "inst", dtime,dtime)
    365        DO jf=1,maxsend
     365       DO jf=1,maxsend_phys
    366366         IF (infosend(i)%action) THEN
    367367             CALL histdef(nidct, infosend(i)%name ,infosend(i)%name , &
     
    12801280    REAL, DIMENSION(nbp_lon, jj_nb)                          :: tmp_calv
    12811281! Table with all fields to send to coupler
    1282     REAL, DIMENSION(nbp_lon, jj_nb, maxsend)                 :: tab_flds
     1282    REAL, DIMENSION(nbp_lon, jj_nb, maxsend_phys)            :: tab_flds
    12831283    REAL, DIMENSION(klon_mpi)                                :: rlon_mpi, rlat_mpi
    12841284    REAL  :: calving(nb_zone_calving)
     
    15101510!*************************************************************************************
    15111511    IF (is_sequential) THEN
    1512         DO j=1,maxsend
     1512        DO j=1,maxsend_phys
    15131513          IF (infosend(j)%action) CALL histwrite(nidct,infosend(j)%name, itau_w, &
    15141514             tab_flds(:,:,j),nbp_lon*(nbp_lat),ndexct)
  • LMDZ6/trunk/libf/phylmd/oasis.F90

    r5582 r5654  
    6161  INTEGER, PARAMETER :: ids_delta_sst = 30, ids_delta_sal = 31, ids_dter = 32, &
    6262       ids_dser = 33, ids_dt_ds = 34
     63  INTEGER, PARAMETER :: ids_atmn2o = 35
    6364 
    64   INTEGER, PARAMETER :: maxsend    = 34  ! Maximum number of fields to send
    65  
     65  INTEGER, PARAMETER :: maxsend    = 35  ! Maximum number of fields to send
     66  INTEGER, PARAMETER :: maxsend_phys = 34 ! Maximum number of fields to send in LMDZ phys - the last one will be send by Inca
     67
    6668  ! Id for fields received from ocean
    6769
     
    227229            infosend(ids_atmco2)%action = .TRUE. ; infosend(ids_atmco2)%name = 'COATMCO2'
    228230        ENDIF
     231        IF (n2o_cycle_cpl) THEN
     232            infosend(ids_atmn2o)%action = .TRUE. ; infosend(ids_atmn2o)%name = 'COATMN2O'
     233        ENDIF
    229234        infosend(ids_qraioc)%action = .TRUE. ; infosend(ids_qraioc)%name = 'COQRAIOC'
    230235        infosend(ids_qsnooc)%action = .TRUE. ; infosend(ids_qsnooc)%name = 'COQSNOOC'
     
    358363    END DO
    359364
    360 
    361 IF (CPPKEY_INCA) THEN
    362     IF (dms_cycle_cpl .OR. n2o_cycle_cpl) THEN
    363        CALL init_inca_oasis(inforecv(idr_ocedms:idr_ocen2o))
    364     ENDIF
    365 END IF
    366365 
    367366!************************************************************************************
     
    396395       WRITE(lunout,*) 'inicma : endef psmile ok '
    397396    ENDIF
     397
     398
     399IF (CPPKEY_INCA) THEN
     400    IF (dms_cycle_cpl .OR. n2o_cycle_cpl) THEN
     401       CALL init_inca_oasis(inforecv(idr_ocedms:idr_ocen2o),infosend(ids_atmn2o:ids_atmn2o))
     402    ENDIF
     403END IF
    398404
    399405!$OMP END MASTER
     
    479485    INTEGER, INTENT(IN)                              :: ktime
    480486    LOGICAL, INTENT(IN)                              :: last
    481     REAL, DIMENSION(nbp_lon, jj_nb, maxsend), INTENT(IN) :: tab_put
     487    REAL, DIMENSION(nbp_lon, jj_nb, maxsend_phys), INTENT(IN) :: tab_put
    482488
    483489! Local variables
     
    513519       IF (is_south_pole_dyn) wend=iend-nbp_lon+1
    514520       
    515        DO i = 1, maxsend
     521       DO i = 1, maxsend_phys
    516522          IF (infosend(i)%action) THEN
    517523             field = RESHAPE(tab_put(:,:,i),(/nbp_lon*jj_nb/))
     
    525531!************************************************************************************
    526532
    527     DO i = 1, maxsend
     533    DO i = 1, maxsend_phys
    528534      IF (infosend(i)%action .AND. infosend(i)%nid .NE. -1 ) THEN
    529535          field = RESHAPE(tab_put(:,:,i),(/nbp_lon*jj_nb/))
Note: See TracChangeset for help on using the changeset viewer.