[1071] | 1 | MODULE trcctl_lobster |
---|
| 2 | !!====================================================================== |
---|
| 3 | !! *** trcctl_lobster.F90 *** |
---|
| 4 | !! TOP : Control of LOBSTER biological model |
---|
| 5 | !!====================================================================== |
---|
| 6 | !!---------------------------------------------------------------------- |
---|
| 7 | !! History : 1.0 ! 2000-12 (E. Kestenare) assign a parameter to name individual tracers |
---|
| 8 | !!---------------------------------------------------------------------- |
---|
| 9 | |
---|
| 10 | #if defined key_lobster |
---|
| 11 | |
---|
| 12 | USE oce_trc |
---|
| 13 | USE trc |
---|
| 14 | |
---|
| 15 | |
---|
| 16 | IMPLICIT NONE |
---|
| 17 | PRIVATE |
---|
| 18 | |
---|
| 19 | PUBLIC trc_ctl_lobster ! called by ??? |
---|
| 20 | |
---|
| 21 | !!---------------------------------------------------------------------- |
---|
| 22 | !! NEMO/TOP 1.0 , LOCEAN-IPSL (2005) |
---|
| 23 | !! $Id: trcctl.lobster1.h90 764 2007-12-14 06:32:58Z gm $ |
---|
| 24 | !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) |
---|
| 25 | !!---------------------------------------------------------------------- |
---|
| 26 | |
---|
| 27 | CONTAINS |
---|
| 28 | |
---|
| 29 | SUBROUTINE trc_ctl_lobster |
---|
| 30 | !!---------------------------------------------------------------------- |
---|
| 31 | !! *** ROUTINE trc_ctl_lobster *** |
---|
| 32 | !! |
---|
| 33 | !! ** Purpose : control the cpp options, namelist and files |
---|
| 34 | !!---------------------------------------------------------------------- |
---|
| 35 | INTEGER :: jn |
---|
| 36 | |
---|
| 37 | IF(lwp) WRITE(numout,*) |
---|
| 38 | IF(lwp) WRITE(numout,*) ' use LOBSTER biological model ' |
---|
| 39 | |
---|
| 40 | ! Check number of tracers |
---|
| 41 | ! ----------------------- |
---|
| 42 | IF (jp_lobster /= 6) THEN |
---|
| 43 | IF (lwp) THEN |
---|
| 44 | WRITE (numout,*) ' ===>>>> : w a r n i n g ' |
---|
| 45 | WRITE (numout,*) ' ======= ============= ' |
---|
| 46 | WRITE (numout,*) & |
---|
| 47 | & ' STOP, change jp_lobster to 6 in ' & |
---|
| 48 | & ,'par_lobster.F90 ' |
---|
| 49 | END IF |
---|
| 50 | STOP 'TRC_CTL' |
---|
| 51 | END IF |
---|
| 52 | |
---|
| 53 | ! Check tracer names |
---|
| 54 | ! ------------------ |
---|
| 55 | IF( ctrcnm(jpdet) /= 'DET' .OR. ctrcnm(jpzoo) /= 'ZOO' .OR. & |
---|
| 56 | & ctrcnm(jpphy) /= 'PHY' .OR. ctrcnm(jpno3) /= 'NO3' .OR. & |
---|
| 57 | & ctrcnm(jpnh4) /= 'NH4' .OR. ctrcnm(jpdom) /= 'DOM' .OR. & |
---|
| 58 | & ctrcnl(jpdet) /= 'Detritus' .OR. & |
---|
| 59 | & ctrcnl(jpzoo) /= 'Zooplankton concentration' .OR. & |
---|
| 60 | & ctrcnl(jpphy) /= 'Phytoplankton concentration' .OR. & |
---|
| 61 | & ctrcnl(jpno3) /= 'Nitrate concentration' .OR. & |
---|
| 62 | & ctrcnl(jpnh4) /= 'Ammonium concentration' .OR. & |
---|
| 63 | & ctrcnl(jpdom) /= 'Dissolved organic matter' ) THEN |
---|
| 64 | ctrcnm(jpdet)='DET' |
---|
| 65 | ctrcnl(jpdet)='Detritus' |
---|
| 66 | ctrcnm(jpzoo)='ZOO' |
---|
| 67 | ctrcnl(jpzoo)='Zooplankton concentration' |
---|
| 68 | ctrcnm(jpphy)='PHY' |
---|
| 69 | ctrcnl(jpphy)='Phytoplankton concentration' |
---|
| 70 | ctrcnm(jpno3)='NO3' |
---|
| 71 | ctrcnl(jpno3)='Nitrate concentration' |
---|
| 72 | ctrcnm(jpnh4)='NH4' |
---|
| 73 | ctrcnl(jpnh4)='Ammonium concentration' |
---|
| 74 | ctrcnm(jpdom)='DOM' |
---|
| 75 | ctrcnl(jpdom)='Dissolved organic matter' |
---|
| 76 | IF(lwp) THEN |
---|
| 77 | WRITE (numout,*) ' ===>>>> : w a r n i n g ' |
---|
| 78 | WRITE (numout,*) ' ======= ============= ' |
---|
| 79 | WRITE (numout,*) ' we force tracer names' |
---|
| 80 | DO jn = jp_lob0, jp_lob1 |
---|
| 81 | WRITE(numout,*) ' tracer nb: ',jn,' name = ',ctrcnm(jn), ctrcnl(jn) |
---|
| 82 | END DO |
---|
| 83 | WRITE(numout,*) ' ' |
---|
| 84 | ENDIF |
---|
| 85 | ENDIF |
---|
| 86 | |
---|
| 87 | ! Check tracer units |
---|
| 88 | DO jn = jp_lob0, jp_lob1 |
---|
| 89 | IF( ctrcun(jn) /= 'mmole-N/m3') THEN |
---|
| 90 | ctrcun(jn) = 'mmole-N/m3' |
---|
| 91 | IF(lwp) THEN |
---|
| 92 | WRITE (numout,*) ' ===>>>> : w a r n i n g ' |
---|
| 93 | WRITE (numout,*) ' ======= ============= ' |
---|
| 94 | WRITE (numout,*) ' we force tracer unit' |
---|
| 95 | WRITE(numout,*) ' tracer ',ctrcnm(jn), 'UNIT= ',ctrcun(jn) |
---|
| 96 | ENDIF |
---|
| 97 | ENDIF |
---|
| 98 | END DO |
---|
| 99 | END SUBROUTINE trc_ctl_lobster |
---|
| 100 | |
---|
| 101 | #else |
---|
| 102 | !!---------------------------------------------------------------------- |
---|
| 103 | !! Empty module : No LOBSTER |
---|
| 104 | !!---------------------------------------------------------------------- |
---|
| 105 | CONTAINS |
---|
| 106 | SUBROUTINE trc_ctl_lobster ! Dummy routine |
---|
| 107 | END SUBROUTINE trc_ctl_lobster |
---|
| 108 | #endif |
---|
| 109 | |
---|
| 110 | !!====================================================================== |
---|
| 111 | END MODULE trcctl_lobster |
---|